0

我正在尝试生成第三方 HTML 的 PDF 版本(实际上它是一个 HTM 文件)。这个 HTML 将来可能会改变,我完全无法控制它。我想做的就是将其转换为PDF。

我已经尝试了 2 个解决方案:iText(使用 XmlWorker)和 Flying-Saucer,但到目前为止还没有成功。

我的问题是 HTML 文件非常不符合默认模式。例子:

    <link rel=File-List href="040602_inds_files/filelist.xml">

    <meta http-equiv=Content-Type content="text/html; charset=windows-1252">

第一个没有关闭标签(iText 崩溃),第二个在“http-equiv”值上没有双引号(飞碟崩溃)。

我发现了很多关于这个问题的帖子,但他们都在处理自己的 HTML,所以他们可以修复它并重试。但我不能这样做。

是我要转换的页面。

这是我的 iText 转换方法:

        public static void convert(PdfWriter writer, Document document, String siteUrl) throws MalformedURLException, IOException {
            XMLWorkerHelper.getInstance().parseXHtml(writer, document,
                    new BufferedReader(new InputStreamReader(new URL(siteUrl).openStream())));
        }

这是我的飞碟转换方法:

        public static void convertFS(String siteUrl, String fileName) throws com.lowagie.text.DocumentException, IOException {
            OutputStream os = new FileOutputStream(fileName);
            ITextRenderer renderer = new ITextRenderer();
            renderer.setDocument(siteUrl);
            renderer.layout();
            renderer.createPDF(os);

            os.close();
        }

有小费吗?如果它们可以正常使用,我接受其他库。提前谢谢。

4

1 回答 1

0

你可以先通过jsoup解析HTML文件,然后将内容转换成标准的HTML文件,最后就可以使用iText生成PDF了

于 2014-04-16T16:04:25.053 回答