如何在html2pdf中使用PDFTron呈现bootstrap css(XSL Java)
问题描述:
我在java中使用PDFtron.jar我的应用程序将html转换为pdf每个东西都工作正常,除了bootstrap css转换时不呈现(PDFTron不明白引导程序css转换成pdf),例如下面的代码pdftron不理解,我得到我的PDF格式的两个div。如何在html2pdf中使用PDFTron呈现bootstrap css(XSL Java)
<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>
答
如果没记错,HTML2PDF不能抢外部资源。您需要将引导程序CSS文件和字体CSS文件的内容嵌入一些<style>
标记
我正在使用java,那么php将在此处工作? – pise
啊,我的不好。当我看到问题时,我以为我在PHP标签中。只需使用Java的equivilent代码 - https://stackoverflow.com/questions/2586975/how-to-use-curl-in-java – Scoots
对不起,但我没有提到这种风格是写在XSL文件 – pise