Java 使用iText将html源代码转换为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或其他东西在工作中有更深层次的问题?我看到您正在

我有一个html文件,它是由我的站点作为响应生成的。 在我的浏览器中打开html文件时,所有图像和其他元素都正确显示。此外,我想把这个html文件转换成pdf文件。 因此,我使用iTextAPI生成pdf文件。 在html文件中,图像和文本位于水平位置

但在生成的pdf输出中,图像是垂直显示的

代码

如何生成与html UI外观完全相同的pdf?
此外,在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;
    }