首页 文章

使用 iText 将 html 转换为 pdf 时应用 css

提问于
浏览
3

我试图将 html 转换为 pdf。我正在使用 iText 来实现这一目标。我成功地进行了转换,但我遇到了必须应用外部 CSS 文件将此 HTML 转换为 PDF 的情况。我搜索了 iText 邮件列表,谷歌已经有一段时间了。我所理解的是,无法应用外部 css 文件。

如果我错了,有人可以纠正我吗?或者有没有办法应用外部 CSS 来动态转换 HTML 到 PDF 格式?任何关于如何进行的提示将不胜感激。

2 回答

  • 1

    您无法直接加载外部 css 文件,但可以使用 iText 库中的“StyleSheet”类定义样式表中指定的样式。请参考以下 URL。

    http://itextpdf.com/examples/iia.php?id=56

  • 0

    您可以使用外部 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();
    }
    

相关问题