我试图将 html 转换为 pdf。我正在使用 iText 来实现这一目标。我成功地进行了转换,但我遇到了必须应用外部 CSS 文件将此 HTML 转换为 PDF 的情况。我搜索了 iText 邮件列表,谷歌已经有一段时间了。我所理解的是,无法应用外部 css 文件。
如果我错了,有人可以纠正我吗?或者有没有办法应用外部 CSS 来动态转换 HTML 到 PDF 格式?任何关于如何进行的提示将不胜感激。
您无法直接加载外部 css 文件,但可以使用 iText 库中的“StyleSheet”类定义样式表中指定的样式。请参考以下 URL。
http://itextpdf.com/examples/iia.php?id=56
您可以使用外部 StyleSheet 作为内部样式表进行测试,如果一切正常,请使用此方法
public void generatePDFDesdeDoc() { Document document = new Document(); PdfWriter writer; String lsPath = Environment.getExternalStorageDirectory().getPath(); try { writer = PdfWriter.getInstance(document, new FileOutputStream( lsPath + getResources().getString(R.string.path_pdf))); document.open(); try { XMLWorkerHelper.getInstance().parseXHtml(writer, document , new FileInputStream(lsPath + getResources().getString(R.string.path_html)) , new FileInputStream(lsPath + getResources().getString(R.string.path_css)) ); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (NotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (DocumentException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } document.close(); }
2 回答
您无法直接加载外部 css 文件,但可以使用 iText 库中的“StyleSheet”类定义样式表中指定的样式。请参考以下 URL。
http://itextpdf.com/examples/iia.php?id=56
您可以使用外部 StyleSheet 作为内部样式表进行测试,如果一切正常,请使用此方法