简体   繁体   English

HTML 到 PDF 转换,Base64 图像标签未在 ZBCD1B68617759B1DFCZ0403A6B5A8D1 中显示图像

[英]HTML to PDF conversion, Base64 image tag is not displaying image in PDF

Trying to convert html content to pdf in java using dependencies core renderer.jar, itext-2.0.8.jar and itextpdf-5.5.13.1.jar.I'm not getting image content but other contents of HTML can able to view in PDF. Trying to convert html content to pdf in java using dependencies core renderer.jar, itext-2.0.8.jar and itextpdf-5.5.13.1.jar.I'm not getting image content but other contents of HTML can able to view in PDF .

The html file contains an image tag with base64 encoded html 文件包含一个带有 base64 编码的图像标签

< img style = "width = 10px; height = 10px;" < img 样式 = "宽度 = 10 像素;高度 = 10 像素;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARMAAAC3CAMAAAAGjUrGAAAAk1BMV...g==" /> src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAARMAAAC3CAMAAAAGjUrGAAAAk1BMV...g==" />

creating pdf using java function which accepts the html content in string buffer as input and creates the PDF file. creating pdf using java function which accepts the html content in string buffer as input and creates the PDF file.

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();
        }
    }

This works for me with flying-saucer 9.1.20 and iText 2.1.7.这适用于我的飞碟 9.1.20 和 iText 2.1.7。 You should update your dependencies and/or check your base64 string.您应该更新您的依赖项和/或检查您的 base64 字符串。

The jar was added through maven: jar 通过 maven 添加:

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

Maven dependencies 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 Part 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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM