Как отобразить загрузочную CSS в html2pdf с использованием PDFTron (XSL Java)

Я использую PDFtron.jar в java, мое приложение для преобразования html в pdf, все работает нормально, за исключением того, что при начальной загрузке CSS не выполняет рендеринг во время преобразования (PDFTron не понимает начальной загрузки CSS при преобразовании в PDF), например, приведенный ниже код не понимается pdftron и Я получаю оба div в моем pdf.

<div class="col-xs-12 info-details visible-xs">Visible for xs screen</div>
<div class="col-xs-12 info-details hidden-xs">Visible for non xs screen</div>

Ниже приведен код для преобразования htmlToPdf

    if (System.getProperty("java.library.path").indexOf(support.config.getTomcatHome() + File.separator + "lib") == -1)
            {
                System.setProperty("java.library.path", System.getProperty("java.library.path") + File.pathSeparatorChar + support.config.getTomcatHome() + File.separator
                        + "lib" + File.pathSeparatorChar + support.config.getTomcatHome() + File.separator
                        +  "lib"  + File.separator + "PDFNet.jar");
                java.lang.reflect.Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
                fieldSysPath.setAccessible(true);
                fieldSysPath.set(null, null);
                Util.Log("PDFNet.jar loaded");
            }

            OS = System.getProperty("os.name").toLowerCase();
            PdfViewerLicense.initialize();
            PDFNet.setTempPath(pdfFolderPath+File.separator);
            doc = new PDFDoc();
            converter = new HTML2PDF();
            if(OS.indexOf("win") < 0)
            {
                HTML2PDF.setModulePath(support.config.getTomcatHome() + File.separator + "lib"  + File.separator +"html2pdf.so" ); 
            }
            converter.setLandscape(false);
            converter.setPaperSize(PrinterMode.e_A4);
            converter.insertFromHtmlString(html);
            if (converter.convert(doc)){
                doc.save(output_pdf_path, SDFDoc.e_linearized, null);
                result = true;
            }else {
                Util.Log("PDFTron Conversion failed. HTTP Code: " + converter.getHTTPErrorCode() + "\n" + converter.getLog());
            }
        } 

Мой XSL HTML голова

  <HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://fonts.googleapis.com/css?family=Lato:400,400i,700" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro" rel="stylesheet">
    <TITLE> PDFTron </TITLE>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  </HEAD>

1 ответ

Если память служит, html2pdf не может захватить внешние ресурсы. Вам нужно будет вставить содержимое файла начальной загрузки CSS и файлы шрифтов CSS в некоторые <style> теги

Другие вопросы по тегам