1.首先导入依赖

com.itextpdf

itextpdf

5.5.11

com.itextpdf

itext-asian

5.2.0

org.xhtmlrenderer

flying-saucer-pdf

9.0.7

2.代码部分

package com.pdf.util;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.OutputStream;

import org.jsoup.Jsoup;

import org.xhtmlrenderer.pdf.ITextFontResolver;

import org.xhtmlrenderer.pdf.ITextRenderer;

import com.lowagie.text.pdf.BaseFont;

/**

* 转换html为pdf

* @author Uncle Liu

*

*/

public class Html2pdf {

/**

* 将HTML转成PD格式的文件。html文件的格式比较严格

* @param htmlFile

* @param pdfFile

* @throws Exception

*/

//

public static void html2pdf(String htmlFile, String pdfFile) throws Exception {

// step 1

String url = new File(htmlFile).toURI().toURL().toString();

System.out.println(url);

// step 2

OutputStream os = new FileOutputStream(pdfFile);

ITextRenderer renderer = new ITextRenderer();

renderer.setDocument(url);

// step 3 解决中文支持

ITextFontResolver fontResolver = renderer.getFontResolver();

if("linux".equals(getCurrentOperatingSystem())){

fontResolver.addFont("/usr/share/fonts/chiness/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

}else{

fontResolver.addFont("C:\\Windows\\WinSxS\\amd64_microsoft-windows-font-truetype-simsun_31bf3856ad364e35_10.0.17134.1_none_e089ab61d8d9374e\\simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

}

renderer.layout();

renderer.createPDF(os);

os.close();

System.out.println("create pdf done!!");

}

public static String getCurrentOperatingSystem(){

String os = System.getProperty("os.name").toLowerCase();

System.out.println("---------当前操作系统是-----------" + os);

return os;

}

public static void main(String[] args) {

String htmlFile = "D:\\WorkSpace\\IdeaProjects\\pdf\\src\\main\\resources\\templates\\u.html";

String pdfFile = "c:/test.pdf";

try {

Html2pdf.html2pdf(htmlFile, pdfFile);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

}

}

3.html页面

注意:html格式非常严格,图片地址这里用的是绝对路径(file:///D:/WorkSpace/IdeaProjects/pdf/src/main/resources/static/images/1.jpg)

如果是相对路径要在后台设置

Title

/*没有background-color生产的pdf会是空白*/

body{ text-align:center;border: 0px;margin: 0px;background-color:#FFFFFF;}

.div{ margin:0 auto; width:1188px; height:auto;}

body {

/*中文支持*/

font-family:SimSun;

}

123我

eE额33 eE额33
eE额33 eE额33
eE额33 eE额33
eE额33 eE额33

4.生成pdf

超出页面长度时会自动分页

itext html转换pdf,itext转换html成pdf(支持中文、图片)相关推荐

  1. .NET(C#) 使用Aspose.Pdf将HTML转成PDF

    .NET(C#) 中将HTML转成PDF的方法比较多,可以使用Aspose.Pdf.PuppeteerSharp.EO.PDF 和 HtmlRenderer.PDFSharp等,本文主要使用Aspos ...

  2. 【Java】SpringBoot后端格式转换:把Word转成PDF再按页转成图片在前端展示(Linux)

    ConvertUtil 1. word2pdf 1.1 aspose-word插件 1.2 word转pdf 1.2.1 添加license文件 1.2.2 具体实现 2. pdf2imgByPage ...

  3. 文档格式转换(Office文档转成PDF或XPS)

    最近在做微信云打印服务器,云服务器与微信云服务器通信己经OK,现在有一个很核心的功能需要实现,就是服务器端文档的格式转换 目标:将office.txt.图片格式的文档转成PDF 查阅了一些资料,格式转 ...

  4. html转换成pdf代码,HTML转成PDF的4个方法介绍(附代码)

    本篇文章给大家带来的内容是关于把HTML转成PDF的4个方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在本文中,我将展示如何使用 Node.js.Puppetee ...

  5. 二进制转pdf. java_二进制字符转成pdf

    /** * @Description:Base64转换成pdf * @param pdfBase64St 二进制字符串r * @param filepath 保存路径 */ public static ...

  6. html转成pdf java,html转成pdf java

    html转成pdf java [2021-02-01 01:58:15]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  7. wps转换压缩ppt,转成pdf和图片

    目标: 所有ppt文件6M以内: 所有pdf文件3M以内: 图片无水印,且单张图片不超过150KB. 所用工具:WPS_Office_2016_专业增强版_v10.8.2.6613_官方版.exe 实 ...

  8. php base64互转pdf 将base64解析成pdf

    /*  * base64转pdf  */ function base642pdf($formTxt,$toPdf) {     $file = file_get_contents($formTxt); ...

  9. Markdown Preview Enhanced 打印PDF。解决打印成PDF/HTML时,CSS样式无法显示的问题

    Markdown Preview Enhanced 插件默认设置成打印github样式的,坑爹啊 解决: 打开 settings.json ,加入这一段代码 "markdown-previe ...

  10. ppt在线转换成pdf

    ppt在线转换成pdf 目前,国内朋友用ppt的不是很多,至今比较冷门,可办公中我们总是要处理各式各样棘手的ppt文件.有没有把ppt转换成pdf的软件呢?有把ppt直接生成pdf文档的在线转换软件吗 ...

最新文章

  1. knn 进行手写数字识别
  2. python 、example
  3. leetcode 167 Two Sum II - Input array is sorted
  4. dll文件的c++制作
  5. 豆瓣评分9分+,每一部看完不禁感慨!这里是神州大地!
  6. mysql 工时统计_有如下数据,要统计1月3号工时不足8小时的员工姓名及总工时,该sql语句该怎么写(用的mysql哈)...
  7. 2014——我们都任性过
  8. html支持图片文字的控件_[小工具][爬虫]一键完整备份你的Csdn博客文章(支持Markdown,HTML,文中图片)...
  9. ubuntu MySQL的卸载
  10. 【2021-11】4 个 Anaconda 国内开源镜像站
  11. git push :unable to write sha1 filename ./bojects/xxxx:权限不够
  12. MPC5744-LINFlexD
  13. 【小程序源码】uni-app云开发的网盘助手抓取网盘资源
  14. GO学习笔记1.5:第一个GO项目常见问题
  15. jupyter notebook 前面书写后面内容消失
  16. 【JDK7】新特性(1) 概述
  17. 《我在这里爱你》(聂鲁达)
  18. shell判断命令是否执行成功
  19. [世界杯] 意大利 VS 捷克 2:0 (据说是本届世界杯最有看头的一场)
  20. 在应用中安装其他应用程序

热门文章

  1. VMware ESXi中的虚拟机启用鼠标侧键/其他功能键
  2. ANSYS fluent模拟飞行器受力情况(三维模拟)
  3. FLOW-3D中警告问题
  4. 【历史上的今天】3 月 23 日:网景创始人出生;FORMAC 语言的开发者诞生;PRMan 非商业版发布
  5. 关于2023年度陕西省职称评审申报发表论文的相关规定
  6. Labview通讯三菱Q PLC,Labvew TCP通讯三菱PLC ,MCTCP,三菱PLC连接LabVIEW,LabVIEW和三菱PLC 通讯
  7. 【立创开源】N32G430C8L7最小系统板
  8. 贝壳、安居客、天猫好房的数字化博弈
  9. VESA--1080P时序代码
  10. 【考研复试】某985考研复试英语面试问题汇总(综合面试+英语口语面试)