如何在Java中使用iTextPDF 5.5.13将html图像添加到pdf?

时间:2019-08-21 19:54:45

标签: java image pdf itext xmlworker

我正在从另一种方法获取HTML字符串,其中一些字符串包含指向图像的链接。这些图像没有出现在PDF中,但不会引发任何错误。

我正在使用的图像以base64编码的图像形式出现。我以为也许是问题所在,但尝试使用本地图像和链接中的图像后,仍然无法正常工作。与图像的解析方式有关吗?我可以使用iText的XMLWorkerHelper打印这些图像吗?

public static void main(String[] args) throws Exception {

        String str1 = "<p>Red Dot</p><img src=\"data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\" alt=\"Red dot\" />";
        String str2 = "<p>W3 Logo</p><img src=\"https://www.w3schools.com/images/w3schools_green.jpg\" alt=\"W3Schools.com\" style=\"width:104px;height:142px;\">";
        String str3 = "<p>Cow</p><img src=\"cow.jpg\" alt=\"Cow\">";

        System.out.println("Open File");
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("test.pdf"));
        document.open();

        System.out.println("Write To File");
        InputStream is = new ByteArrayInputStream(str3.getBytes());
        XMLWorkerHelper.getInstance().parseXHtml(writer, document, is);

        System.out.println("Close File");
        document.close();
    }

pdf始终是在图像前的文本生成的,但是图像从未打印过。实际实例要比这复杂得多,因此我需要一个保留html字符串原始格式的解决方案。任何帮助将不胜感激!

0 个答案:

没有答案