我正在尝试生成第三方 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();
}
有小费吗?如果它们可以正常使用,我接受其他库。提前谢谢。