public static void main(String[] args) throwsException{String htmlFile= "D:/Demo.html";String pdfFile= "D:/test/Pdf.pdf";InputStream htmlFileStream= newFileInputStream(htmlFile);//创建一个document对象实例com.itextpdf.text.Document document = newcom.itextpdf.text.Document();//为该Document创建一个Writer实例PdfWriter pdfwriter =PdfWriter.getInstance(document,newFileOutputStream(pdfFile));pdfwriter.setViewerPreferences(PdfWriter.HideToolbar);//打开当前的document
document.open();BaseFont baseFont= BaseFont.createFont("C:/Windows/Fonts/Simsunb.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);Font font= newFont(baseFont);    document.add(new Paragraph("解决中文问题了!",font)); InputStreamReader isr= new InputStreamReader(htmlFileStream, "UTF-8");XMLWorkerHelper.getInstance().parseXHtml(pdfwriter, document, isr);document.close();
}

 public static void main(String[] args)throwsException {String inputFile= "E:/workspace/PDF/WebContent/WEB-INF/signfileInfo.html";String outputFile= "E:/workspace/PDF/WebContent/WEB-INF/signfileInfo.pdf";OutputStream os= newFileOutputStream(outputFile);       ITextRenderer renderer= newITextRenderer();       String url= newFile(inputFile).toURI().toURL().toString();   renderer.setDocument(url);//解决中文支持问题ITextFontResolver fontResolver =renderer.getFontResolver();      fontResolver.addFont("C:/Windows/Fonts/SIMSUN.TTC", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//解决图片的相对路径问题renderer.getSharedContext().setBaseURL("file:///E:/workspace/PDF/WebContent/WEB-INF/");  renderer.layout();      renderer.createPDF(os);    os.flush();  os.close();  System.out.println("转换完成!");}

html代码需要严格规范,所有标签都要有对应的/>进行关闭 
记得用html包围, 
开始的时候没有用这个,导致了一个麻烦的问题,还查了好久才发现。 
为了支持中文,不仅要在java代码中引入字体文件,还需要在html中引用 
body { 
font-family: SimSun; 

原先的core-renderer.jar不支持中文换行功能,有人修改了源码 
中文换行包 
所用的其他几个jar包分别为: 
iText-2.0.8.jar (必需是2.0.8版本)
iTextAsian.jar 
iTextAsianCmaps.jar

转载于:https://www.cnblogs.com/Yusco/p/9448889.html

html to pdf相关推荐

  1. php批量导出pdf文件大小,php完美导出pdf,pdf合并批量导出

    使用到的工具 pdftk      https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/      pdf合并工具 wkhtmltopdf      ...

  2. html 实现动态在线预览word、excel、pdf等文件

    word+excle+pdf表格在线浏览 通过iframe直接引用微软提供的方法 <iframe src='https://view.officeapps.live.com/op/view.as ...

  3. 如何将模糊的扫描版pdf转为清晰的pdf或word_pdf问题小结

    20220109 pdf拆分 不要点提取页面为单独文件 这样会提取出完整的一个文件 而如果选了的话会全部拆分成一页一页 20220107 # code=utf-8 import os import t ...

  4. snagit屏幕截图转pdf

    滚动截取无限的屏幕形成pdf.点击 capture 然后画出要截取的屏幕范围 如果一次截取的数据多 要等个几分钟 编辑器才会出现 然后通过save as 保存为pdf 而且保存也要等很久 还是一次少截 ...

  5. Java使用itext生成Pdf

    Java使用itext生成Pdf 背景 所需依赖 解决jpedal-lgpl jar包问题 示例代码 生成带图片的PDF(使用本地文件系统图片) 生成带图片的PDF(使用网络图片) 背景 在某些业务场 ...

  6. (八)pdf的构成之文件体(page属性)

    资源(Resources) 类型:字典 属性: Font :一个字典,内部是该资源包含的各个字体的名称(字体名称F开头) ProcSet :该资源中使用图画还是文字,可选 /PDF /Text /Im ...

  7. JS导出PDF插件(支持中文、图片使用路径)

    JS导出PDF插件(支持中文.图片使用路径) 原文:JS导出PDF插件(支持中文.图片使用路径) 在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfma ...

  8. Pandoc PDF 中文

    最近终于又决定(^_^)使用reStructuredText写文档了,输出PDF时的中文问题必须要解决下. 安装环境 sudo apt install texlive texlive-latex-ex ...

  9. pdfh5.js 基于pdf.js和jQuery,web/h5/移动端PDF预览手势缩放插件。

    pdfh5.js 基于pdf.js和jQuery,web/h5/移动端PDF预览手势缩放插件. 注意:本地绝对路径地址不能加载,跨域问题用代理或者服务端解决. svg模式渲染存在缺陷,只能渲染普通pd ...

  10. python批量pdf转word,python批量实现Word文件转换为PDF文件

    本文为大家分享了python批量转换Word文件为PDF文件的具体方法,供大家参考,具体内容如下 1.目的 通过万能的Python把一个目录下的所有Word文件转换为PDF文件. 2.遍历目录 作者总 ...

最新文章

  1. 这些编程语言程序员工资最高!Java才第四
  2. SQL Server 2012 安全新特性:包含数据库
  3. centos7无法使用ifconfig且无法上网
  4. 解决windows 2003无法远端登录windows 2008
  5. 评论:互联网的冬天还有多远?
  6. nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(一)
  7. Apache Log4j任意代码执行漏洞安全风险通告第三次更新
  8. 1.5万字详述 | 全开源:python写小游戏+AI强化学习与传统DFS/BFS控制分别实现
  9. 游侠原创:VMware ESXi 5安装图文教程
  10. MobaSSH SSH server for Windows - Download Home Edition
  11. 怎么把qq音乐flac改成mp3格式
  12. 手机软件测试普通话准确吗,语音输入法到底谁最准?我花了3天时间做了12项对比,评测结果你一定想不到!...
  13. 生存分析 R语言(六)—— Extended and Stratified Cox
  14. c35是什么意思_什么是C35混凝土?
  15. 超级码力在线编程大赛初赛 第3场 1.最大公倍数
  16. 色阶的中间调调节原理之一
  17. python爬虫精选11集(selenium进阶总结【selenium的cookies处理、ip代理、useragent替换】)
  18. CSS的overflow属性简析
  19. 信贷违约风险评估预测-kaggle项目
  20. Python 猴子吃桃问题

热门文章

  1. 14、 Integer 与 int 的区别
  2. 使用SCVMM2008 R2管理Hyper-V之3-使用模板部署虚拟机
  3. es 测试数据进行 增删查改
  4. 使用redis作为缓存,数据还需要存入数据库中吗?
  5. hive启动报错 java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7B
  6. 百度开源超级链技术方案!
  7. 真会玩!竟然可以这样用IDEA通过数据库生成lombok版的POJO...
  8. 又整理了一批可以拿去做副业的开源项目...
  9. 吃透这套架构演化图,从零搭建Web网站也不难!
  10. Android 11 Meetup 上海站!来了!