java将远程url页面转换到本地的pdf文件

将远程url页面转换到本地的pdf文件

maven引入包:
<dependency>
    <groupId>org.xhtmlrenderer</groupId>
    <artifactId>flying-saucer-pdf</artifactId>
    <version>9.1.6</version>
</dependency>

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.7</version>
</dependency>
图片先转换成base64编码:
直接写到img的src中标签要封闭,<img src="data:image..." />

html页面头部:

<html xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html"
      xmlns="http://www.w3.org/1999/html">
public boolean convertHtmlToPdf(String url, String outputFile)
            throws Exception {

        OutputStream os = new FileOutputStream(outputFile);
        ITextRenderer renderer = new ITextRenderer();
        InputStream inputStream = new ByteArrayInputStream(Jsoup.connect(url).get().html().getBytes());
        String urlStr = IOUtils.toString(inputStream);
        renderer.setDocumentFromString(urlStr);

//        // 解决中文支持问题
        ITextFontResolver fontResolver = renderer.getFontResolver();
        fontResolver.addFont(SystemConstant.local_dir + "/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        //解决图片的相对路径问题,绝对路径不需要写
//        renderer.getSharedContext().setBaseURL("file:/D:/");
        renderer.layout();
        renderer.createPDF(os);

        os.flush();
        os.close();
        return true;
    }

猜你喜欢

转载自blog.csdn.net/qingdaoxdd/article/details/82145114
今日推荐