Java 使用iText将html源代码转换为pdf
我有一个html文件,它是由我的站点作为响应生成的。 在我的浏览器中打开html文件时,所有图像和其他元素都正确显示。此外,我想把这个html文件转换成pdf文件。 因此,我使用iTextAPI生成pdf文件。 在html文件中,图像和文本位于水平位置 但在生成的pdf输出中,图像是垂直显示的 代码 如何生成与html UI外观完全相同的pdf?Java 使用iText将html源代码转换为pdf,java,itext,itextpdf,Java,Itext,Itextpdf,我有一个html文件,它是由我的站点作为响应生成的。 在我的浏览器中打开html文件时,所有图像和其他元素都正确显示。此外,我想把这个html文件转换成pdf文件。 因此,我使用iTextAPI生成pdf文件。 在html文件中,图像和文本位于水平位置 但在生成的pdf输出中,图像是垂直显示的 代码 如何生成与html UI外观完全相同的pdf? 此外,在jFIDLE中,html页面没有正确显示。我错过了什么?是我的HTML有问题,还是JFIDLE或其他东西在工作中有更深层次的问题?我看到您正在
此外,在jFIDLE中,html页面没有正确显示。我错过了什么?是我的HTML有问题,还是JFIDLE或其他东西在工作中有更深层次的问题?我看到您正在使用
HTMLWorker
。如果已弃用,则应使用XMLWorker
。另外,您使用的是哪个版本的iText?我试过使用itextpdf 5.5.4和iText 5.4.2,但xmlworker也有相同的输出,所以您仍然应该使用xmlworker
。并尝试使用iText 5.5.9。或者iText 7.0.0。好的,我将尝试使用该版本并让您知道。我看到您正在使用HTMLWorker
。如果已弃用,则应使用XMLWorker
。另外,您使用的是哪个版本的iText?我试过使用itextpdf 5.5.4和iText 5.4.2,但xmlworker也有相同的输出,所以您仍然应该使用xmlworker
。并尝试使用iText 5.5.9。或者iText 7.0.0。好的,我将尝试使用该版本并让您知道。
String k = convertString();
OutputStream file = new FileOutputStream(new File("f:\\Test.pdf"));
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, file);
document.open();
InputStream is = new ByteArrayInputStream(k.getBytes());
XMLWorkerHelper.getInstance().parseXHtml(writer, document, is);
document.close();
file.close();
private static String convertString() {
StringBuilder contentBuilder = new StringBuilder();
try {
BufferedReader in = new BufferedReader(new FileReader("f://testPage.html"));
String str;
while ((str = in.readLine()) != null) {
contentBuilder.append(str);
}
in.close();
} catch (IOException e) {
}
String content = contentBuilder.toString();
return content;
}