ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

html转pdf

2022-01-11 15:02:59  阅读:166  来源: 互联网

标签:String BaseFont PDF html renderer import pdf


使用的springboot,引入maven依赖。

一、准备工作:

1,检查需要转换的html文件声明是否正规:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

 

2,检查标签是否全部闭合

img,meta等元素必须要全部闭合,</meta></img>

 

3,检查自己是否有simsun字体放在c:windows/fonts下

 下载字体链接:https://files.cnblogs.com/files/lumc5/simsun.rar

4,在需要转换的html文件的body标签里添加字体

加了这个字体样式转pdf时候才能看到中文

style = "font-family: SimSun;"

加完是这样的:
<body  style = "font-family: SimSun;">

二、使用

1,pom引入依赖

<!-- url转pdf -->
        <dependency>
            <groupId>org.xhtmlrenderer</groupId>
            <artifactId>flying-saucer-pdf-itext5</artifactId>
            <version>9.0.3</version>
        </dependency>

2,工具类

import java.io.FileOutputStream;
import java.io.OutputStream;

import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;

import com.itextpdf.text.pdf.BaseFont;

public class UrlToPdfUtil {

    //private static final String OUT_PUT_PDF_PATH = "/home/data/pdf/"; //pdf文件的存放路径(Linux)
    private static final String OUT_PUT_PDF_PATH = "C:/Users/Administrator/Desktop/pdf/"; //pdf文件的存放路径(windows)

    /**
     * @Title 网页转存为PDF文件
     * @param url 链接地址
     * @param outputFileName 转存的PDF文件名
     */
    public static void urlToPdf(String url, String outputFileName) {
        try {
            String folder = outputFileName.substring(0, 6);
            String outputFile = OUT_PUT_PDF_PATH + folder +"/"+ outputFileName;
            java.io.File targetFile = new java.io.File(outputFile);
            if (!targetFile.getParentFile().exists()) {
                targetFile.getParentFile().mkdirs(); // 创建父级文件路径
            }
            OutputStream os = new FileOutputStream(outputFile);
            ITextRenderer renderer = new ITextRenderer();
            renderer.setDocument(url);
            ITextFontResolver fontResolver = renderer.getFontResolver();
            //fontResolver.addFont("/usr/share/fonts/chinese/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); //Linux
            fontResolver.addFont("c:/Windows/Fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //windows
            renderer.layout();
            renderer.createPDF(os);
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

 

3,在controller里调用

  @RequestMapping(value = "pdfDownload")
    public String pdfDownload()  {
        String title="住房协议"+System.currentTimeMillis ()+".pdf";
        String url="http://127.0.0.1:8888/UserFangyuanOrderAgreement";
        UrlToPdfUtil.urlToPdf( url,title);
        return "redirect:UserFangyuanOrderAgreement";
    }

 

学习链接:Java 根据URL,将网页转存为PDF文件 - JAVA - 刘锐芬博客 | LiuR_Fun | lrfun

标签:String,BaseFont,PDF,html,renderer,import,pdf
来源: https://www.cnblogs.com/lumc5/p/15788319.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有