有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java HTML到PDF转换,Base64图像标记未在PDF中显示图像

正在尝试使用依赖项核心呈现程序在java中将html内容转换为pdf。jar,itext-2.0.8。jar和itextpdf-5.5.13.1。罐子我没有得到图像内容,但HTML的其他内容可以在PDF中查看

html文件包含base64编码的图像标记

<img style=“宽度=10px;高度=10px;”src=“data:image/png;base64,IVBORW0KGGOAAAANSUHEUGAAARMAAC3CAMAAAGJURGAAAK1BMV…g=”/>

使用java函数创建pdf,该函数接受字符串缓冲区中的html内容作为输入,并创建pdf文件

public void createReport(StringBuffer sb) {
        try {
            
              String tempfile = outputPath + File.separator + "outputPdf.pdf";

              PrintWriter writer = new PrintWriter(inputPath, StandardCharsets.UTF_8);
              writer.println(sb.toString());
              writer.close();
            
              String url = new File(inputPath).toURI().toURL().toString(); 
              OutputStream os = new FileOutputStream(new File(tempfile)); 
              ITextRenderer renderer = new ITextRenderer(); 
              ITextFontResolver resolver = renderer.getFontResolver();
              resolver.addFont("C:\\Users\\DELL\\AppData\\Local\\Microsoft\\Windows\\Fonts\\ANGSA.ttf",BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 
              renderer.setDocument(url); 
              renderer.layout(); 
              renderer.createPDF(os);
              os.close();
             

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

共 (2) 个答案

  1. # 2 楼答案

    这对我来说适用于飞碟9.1.20和iText 2.1.7。 您应该更新依赖项和/或检查base64字符串

    这个罐子是通过maven添加的:

    <dependency>
        <groupId>org.xhtmlrenderer</groupId>
        <artifactId>flying-saucer-pdf</artifactId>
        <version>9.1.20</version>
    </dependency>
    

    Maven依赖关系

    [INFO]             < org.example:SO-temp >            
    [INFO] Building SO-temp 1.0-SNAPSHOT
    [INFO]                 [ jar ]                -
    [INFO]
    [INFO]  - maven-dependency-plugin:2.8:list (default-cli) @ SO-temp  -
    [INFO]
    [INFO] The following files have been resolved:
    [INFO]    org.bouncycastle:bctsp-jdk14:jar:1.46:compile
    [INFO]    org.xhtmlrenderer:flying-saucer-pdf:jar:9.1.20:compile
    [INFO]    org.xhtmlrenderer:flying-saucer-core:jar:9.1.20:compile
    [INFO]    com.lowagie:itext:jar:2.1.7:compile
    [INFO]    org.bouncycastle:bcmail-jdk14:jar:1.64:compile
    [INFO]    org.bouncycastle:bcpkix-jdk14:jar:1.64:compile
    [INFO]    org.bouncycastle:bcprov-jdk14:jar:1.64:compile
    

    HTML部分

    <html>
    <head>
    </head>
    <body>
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kHFQ83FkONzqIAAAPVSURBVDjLhZVfiFVVFMZ/a58/994Z/0zqWNRLZVReH7LGyLDymhIE0dvpqZGguBGDBNJLD8HxpYgES4UYaUYdLewMPQQ1FIZXkPAhgwyu9CAImY3BiIbjjOM953w9nHOvGpFnsznrnL33t76199rfQsIAk0AJIMGUQEK0EKUtUKsYrgskIcr/3TllQ1OQEBWDAtr1YkILFIMa9L7bpdNuq5drRIwQiaAp0DlIROFNpyBSyfZfXSpAb7IRKEJNiGkgYUjGicrDKPKE/GIeQhJJb2lyGzO1bjJFDYYvltFJnlDwbsIge6s/MXqfODX0lCT2twCdKpnG6hE9LfjoNJzvhVsYwxdBTUzIR6pycs0GDi+/wJgvJvpU3cdGpKriEpMkuhk6MSLqglldWGFHXSduFAVLjrKePSsvMLZMfOYyxvvTJyZYzah8CQARqbeHVSF/vxhIRE0olMqDagKSIVWXHGU9nyz/k3FPjPcrHEMc6ntDooLk0AsFYCRoF+ABeuZBDq74mt393/MFzws5xVhMo9iCk2s2sGflBcY9MYE4sFRM9L8m5GJkktAoOIDERP0s3mbZSg79+g2duZepho2+jM0mzJZtC2M1PPt2YC2//D7JwMy95MENMh9m//6Q4WtHAG+jTMcxeFP4JpwMTT9E5djHi59kIHiEIM3pEM5dqzwt2+HB7mwwtLUzbtEUXj7Igp/hwoD5u8ZeHJl+f8q0AGiE4mkDDrbrFZl7DjIueauodBzZgsPLoOqv2qXYs2PhYzN5/3f4GqQ2B2EIndrnemt6ZMo0vw8wFYDt0nY6vkuTKDtLpMqqK22uz+XkEmRwfWFw+96Bdzgb/kBgi9E1yJZCHhxR86/m5BlkyY58WiZhmAkzIQwTCUYEyZmQq+uG6Nw4gZffIFxWozMLXiBS5XgLHm5RSs0m9enlrTuON4i1k4R1afQz2Lri0gAZZkWOmkCG2QerN3LPH8dI5zNU86kJLIWFACoVyPJEP15+lbcxqyuXkRIbxEXiWvFCVmbF/ZgBxuvrfyO1jMA5PEEKzFZyLMyZDw9v23p5KxUca5Rq2hzQAwVMZsgMAB/gWYAh81qDzGzKqlcI0hVU+uDq7HX6vCqd9D1tyXdiygzLWzK3CXWQEQP1M1hUR0ZSXjmDuN0VIlyM3KMHGGJ86XkODoh97hIjd29GVBTjhByRPCRfXXmV/rP3pLFRyJ01hSdR5csHtvDV44vQS96QsNFCfKzUlKI4xP8DLAmSiJYAxYVunAMRgZLeFvYWxI1btFp3YFyWGNS6vczoVoEvSoq6Z3UH8H8ADlDIyRt9lL4AAAAASUVORK5CYII=" />
    </body>
    </html>