如果对格式有更高对要求建议阅读这篇文章:https://blog.csdn.net/weixin_39530695/article/details/96638328

package nachuan;import java.awt.Insets;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringReader;
import java.security.InvalidParameterException;import org.zefer.pd4ml.PD4Constants;
import org.zefer.pd4ml.PD4ML;
import org.zefer.pd4ml.PD4PageMark;
/*** * @author nachuan**/
public class PdfUtils{/**
* 通过html得到一个pdf
* @param strReader  String读取
* @param filePath  生成文件的目标路径
* @param ysignpicurl  第一个加页脚的图片地址
* @param bsignpicurl  第二个加页脚图片地址
* @param pagehead  //页眉要加的文字
* @param pagefoot  //页脚要加的文字
* @return
*/
public static byte[] generatePDF( StringReader strReader,String filePath,String ysignpicurl,String bsignpicurl,String pagehead,String pagefoot) {    try {  FileOutputStream fos = new FileOutputStream(filePath);    ByteArrayOutputStream os = new ByteArrayOutputStream();  PD4ML pd4ml = new PD4ML();    pd4ml.setPageSize(PD4Constants.A4);  // A4竖向显示  pd4ml.changePageOrientation(PD4Constants.A4)横向显示  pd4ml.useTTF("java:fonts", true);    //fonts.jar的配置文件中的值,用于中文乱码  pd4ml.setDefaultTTFs("SimSun","SimHei", "YouYuan" );  //设置默认的字体pd4ml.enableDebugInfo();    //页眉页脚开始----------如果不需要页面页脚的这段可以跳过---------------//页面边距  上下左右int topValue = 10;  int leftValue = 10;  int rightValue = 10;  int bottomValue = 10;String unitsValue = "mm";  int userSpaceWidth = 780;  if (unitsValue.equals("mm")) {  pd4ml.setPageInsetsMM(new Insets(topValue, leftValue,  bottomValue,rightValue));  } else {  pd4ml.setPageInsets(new Insets(topValue, leftValue, bottomValue,rightValue));  }  //页面宽度pd4ml.setHtmlWidth(userSpaceWidth);  StringBuilder sbhead = new StringBuilder();sbhead.append("<html><span style=\"font-family:SimSun; \">" + pagehead);sbhead.append("</span><hr/></html>");String pageHeader = sbhead.toString() ;  StringBuilder sb = new StringBuilder();sb.append("<html><head> <meta charset=\"UTF-8\"> </head><body>");sb.append("<div  ><span style=\"font-family:SimSun; font-size:28px ;font-weight: 500;\">a:</span> <img  style=\"width: 90px; height: 40px;background-color:beige;  \" src=\"" + ysignpicurl);sb.append("\" /> ");sb.append("<span style=\"font-family:SimSun; font-size:28px ; font-weight: 500;\">b:</span><img  style=\"width: 90px; height: 40px;background-color:beige;  \" src=\"" + bsignpicurl);sb.append("\" /></div> ");sb.append("<hr/><span>" + pagefoot);sb.append("</span >");sb.append("&nbsp;");sb.append("&nbsp;");sb.append("&nbsp;");// $[page] 当前页数                     $[total] 总页数  这个找了好长时间才找到sb.append("页数$[page]/$[total]</body></html>");System.out.println("pagefooter:" + sb.toString());String pageFooter = sb.toString();if (null != pageHeader && !"".equals(pageHeader.trim())) {  PD4PageMark headerMark = new PD4PageMark();  headerMark.setAreaHeight(30);  //页眉高度headerMark.setInitialPageNumber(1);   //页眉初始化页面页数//     headerMark.setPagesToSkip(0);    //页眉跳过前几页if (pageHeader.toUpperCase().startsWith("<HTML>") && pageHeader.toUpperCase().endsWith("</HTML>")) {  //need page header and is HTML format  headerMark.setHtmlTemplate(pageHeader);  } else {  //need page header and is text format  headerMark.setTitleTemplate(pageHeader);  }  pd4ml.setPageHeader(headerMark);  } if (null != pageFooter && !"".equals(pageFooter.trim())) {  PD4PageMark footerMark = new PD4PageMark();  footerMark.setAreaHeight(70);   //页脚高度footerMark.setInitialPageNumber(1);
//               footerMark.setPagesToSkip(1);  footerMark.setPageNumberAlignment(1);if (pageFooter.toUpperCase().startsWith("<HTML>") && pageFooter.toUpperCase().endsWith("</HTML>")) {  //need page header and is HTML format  footerMark.setHtmlTemplate(pageFooter);  } else {  //need page header and is text format  footerMark.setTitleAlignment(PD4PageMark.RIGHT_ALIGN);  footerMark.setTitleTemplate(pageFooter);  }  footerMark.setPagesToSkip(0);  pd4ml.setPageFooter(footerMark);  }  //=============页眉页脚结束 =========================================pd4ml.render(strReader, fos);return os.toByteArray();  } catch (FileNotFoundException e) {  e.printStackTrace();  } catch (InvalidParameterException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  }  return null;  }
public static void main(String[] args) {String pdfhtml =  "<!DOCTYPE html> <html> <head>   </head> <body > <div id=\"\">"+ "<div class=\"content\"><div style=\"margin:0 0 20px; text-align:center;\"></div><p>文/婉约</p>                                                                                                                                                                                                                                                                                                                                                                               "+ "<p>“自在飞花轻似<a href=\"http://meng.sanwen8.cn/\" target=\"_blank\">梦</a>,无边丝<a href=\"http://www.sanwen.net/sanwen/yu/\" target=\"_blank\">雨</a>细如愁。”<a href=\"http://www.sanwen.net/\" target=\"_blank\">文人</a>墨客的心里,总<a href=\"http://www.sanwen8.cn/sanwen/love/\" target=\"_blank\">爱</a>将万千思绪和绵绵丝雨联系在一起,剪不断,理还乱之时,雨,便成了<a href=\"http://www.sanwen.net/sanwen/xinqing/\" target=\"_blank\">情感</a>唯一的突破口。也让后来的我们,学会了借雨<a href=\"http://www.sanwen.net/sanwen/shuqing/\" target=\"_blank\">抒情</a>,借雨疗伤。</p>                            "+ "<p>或许,天生就是一个善感的人,极易被某种事物触动,从而使<a href=\"http://xiangxinziji.sanwen8.cn/\" target=\"_blank\">自己</a>陷入情绪的沼泽而不能自拔。那不期而遇的雨,便如同知己一般,贴近我的内心,总是在最需要倾诉的时候,陪伴于无声。</p>                                                                                                                                                                                                                                                                                                                                                                           "+ "<p>已经记不清,从何时起喜欢上的雨,也不知从何时起,习惯了在这样一个又一个下着雨的<a href=\"http://ye.sanwen8.cn/\" target=\"_blank\">夜</a>晚,一个人站在窗前,认真地听雨。</p>                                                                                                                                                                                                                                                                                                                                                                                                                "+ "<p>雨夜听雨,除了享受无边的诗意以外,也是一个<a href=\"http://xinling.sanwen8.cn/\" target=\"_blank\">心灵</a>被洗涤与净化的过程。在渐深渐浓的<a href=\"http://ye.sanwen8.cn/\" target=\"_blank\">夜色</a>里,在渐急渐密的雨声里,在渐进渐退的思绪里,倾听内心的声音,享受<a href=\"http://sinian.sanwen8.cn/\" target=\"_blank\">思念</a>的自由,这片刻的清宁,与<a href=\"http://jimo.sanwen8.cn/\" target=\"_blank\">孤独</a>同在,恰恰好。</p>                                                                                                                                                                                     "+ "<p>说到孤独,龙应台在写给《亲爱的安德烈》中这样说:那推推挤挤同唱同乐的群体情感,那无忧无虑无猜忌的同行深情,在人的一生中也只有<a href=\"http://tongnian.sanwen8.cn/\" target=\"_blank\">少年</a>时期有。离开这段<a href=\"http://chunjie.sanwen8.cn/\" target=\"_blank\">纯洁</a>而明亮的阶段,路其实可能愈走愈<a href=\"http://jimo.sanwen8.cn/\" target=\"_blank\">孤单</a>。<span style=\"position:relative;left:-100000px;\">( <a href=\"http://www.sanwen.net/\" target=\"_blank\">文章</a><a href=\"http://www.sanwen.net/\" target=\"_blank\">阅读</a>网:www.sanwen.net )</span></p>                                            "+ "<p>确实如此,<a href=\"http://rensheng.sanwen.net/\" target=\"_blank\">人生</a>就象是一条从宽阔的草原走进森林的路,在越走越狭窄的空间,在越走越严苛的现实面前,许多人开始自顾着自赶路,许多人在寻求余生的突破,于是,许多的<a href=\"http://tonghua.sanwen.net/\" target=\"_blank\">故事</a>告一段落,许多的情义毁于一旦,在有意与无意之间,结伴同行的暖,渐变成过眼的云烟。</p>                                                                                                                                                                                                                                                                              "+ "<p>渴望热烈又惧怕热烈,享受<a href=\"http://jimo.sanwen8.cn/\" target=\"_blank\">寂寞</a>又不甘寂寞,在焦虑和犹疑中彷徨,总也走不出心的囹圄,这是<a href=\"http://www.sanwen.net/shige/xiandai/\" target=\"_blank\">现代</a>人的通病。尤其是在孤独无依之时,更象是走在了单行道上,前不见古人,后不见来者,念天地之悠悠,独怆然而涕下。</p>                                                                                                                                                                                                                                                                                              "+ "<p>为了合群,我们不知浪费了多少<a href=\"http://shijian.sanwen8.cn/\" target=\"_blank\">时间</a>,为了同行,我们不知耗费了多少精力,殊不知,越长大越孤单,越到后来,越发现理想与现实的差距。真心诚意换不来地久天长,踮起脚尖,你依然无法触摸到天边的彩虹。</p>                                                                                                                                                                                                                                                                                                                                                                      "+ "<p>有人说,人之所以<a href=\"http://tongku.sanwen8.cn/\" target=\"_blank\">痛苦</a>,是因为追求的太多,人之所以烦恼,是因为想要的太多,人之所以不<a href=\"http://zuowen.sanwen.net/z/219426-kuaile\" target=\"_blank\">快乐</a>,是因为计较的太多。我不知道我的烦恼,到底属于哪一种,但总有些时光,是知音少,弦断有谁听的<a href=\"http://www.sanwen.net/sanwen/shanggan/\" target=\"_blank\">悲伤</a>,总有些时光,是沉思往事立残阳的黯然。</p>                                                                                                                                                                                                   "+ "<p>生而为人,没有谁不孤单。或许,只有在寂寞中学会与自己相处,才能够完全地成为自己,只有在孤独中学会与<a href=\"http://www.sanwen.net/suibi/shenghuo/\" target=\"_blank\">生活</a>讲和,才能够真正地寻觅到<a href=\"http://xingfu.sanwen8.cn/\" target=\"_blank\">幸福</a>,只有在遍尝苦痛之后,才能够知晓甜蜜的滋味。</p>                                                                                                                                                                                                                                                                                                     "+ "<p>一盏清茶,听风数雨,这,何尝不是一种生活的方式。</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "+ "<p>总爱在落雨的黄昏,为自己沏一杯茶,然后在清澈的茶汤里,放进十几粒采自石练山中的野菊米,让茶的清香,融进菊的芬芳。看一片片绿叶在沸水中舒展,看细小的菊米如一粒粒黄玉滚动其间,万千思绪,便随着水气氤氲,泊进袅袅的茶香里。</p>                                                                                                                                                                                                                                                                                                                                                                                                                    "+ "<p>茶,似乎是男人的专利,可如我这样的<a href=\"http://nvren.sanwen8.cn/\" target=\"_blank\">女子</a>,也爱茶。尤其是雨丝飘坠的<a href=\"http://ye.sanwen8.cn/\" target=\"_blank\">夜晚</a>,一杯清茶在握,便觉分外的暖。通过掌心的温度,轻嗅茶与菊的芬芳,这醇香的味道,多像是他乡遇故知,在恰好的时间,有恰好的温度。</p>                                                                                                                                                                                                                                                                                                             "+ "<p>这,让我很容易想到了一个词:<a href=\"http://yikaoziji.sanwen8.cn/\" target=\"_blank\">依赖</a>,当习惯成为了自然,依赖便自在其中。人生,若能多一些如此依赖,少一些无<a href=\"http://youshang.sanwen8.cn/\" target=\"_blank\">情伤</a>害,一如这给予温暖的茶,这涤尽烦恼的雨,那么纵然时光暗淡,又有何惧。</p>                                                                                                                                                                                                                                                                                                            "+ "<p>雨夜听雨,听雨的旋律在雨夜里奏响,在茶与菊的痴缠里,在袅袅升腾的水气里,一些事慢慢忆,一些人渐渐忘……</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                             "+ "<p>微信公众号:wy</p><p>首发散文网:<a href=\"https://www.sanwen.net/sanwen/vjlvrkqf.html\">https://www.sanwen.net/sanwen/vjlvrkqf.html</a></p></div>                                                                                                                                                                                                                                                                                                                                                                                              "+ " </div> </body></html>";String  pdfstart = pdfhtml.substring(0,pdfhtml.lastIndexOf("</p>"));
String pdfend= pdfhtml.substring(pdfhtml.lastIndexOf("</p>"));
//整个pdf内容
pdfhtml = pdfstart  + pdfend;
pdfhtml = pdfhtml.replaceAll("sans-serif", "SimSun") ;
int begin = pdfhtml.indexOf("<head>");//如果对于获取到没有<meta charset=\"utf-8\"/> 的页面需要添加,否则会乱码或者字体不受控制
pdfhtml  = pdfhtml.substring(begin)+"<meta charset=\"utf-8\"/>"+ pdfhtml.substring(begin);
StringReader stringReader = new StringReader(pdfhtml);String path = "f:/targetfile.pdf";String headPageUrl = "http://pic29.photophoto.cn/20131204/0034034499213463_b.jpg";
String footPageUrl = "http://pic153.nipic.com/file/20180117/26360097_152544240000_2.jpg";
generatePDF(stringReader,path,headPageUrl,footPageUrl,"页眉","页脚");}}

demo下载地址:https://download.csdn.net/download/weixin_39530695/10434460

通过PD4ML把html转pdf(包含显示页眉页脚,插入图片,显示页数)相关推荐

  1. html图片在wps中不显示文字大小,WPS文字插入图片显示不全怎么办 WPS文字插入图片显示不完整的解决方法...

    在wps文字编辑文档时,如果我们在使用时插入图片显示不全,这种情况我们该怎么解决呢?想必有不少的用户遇到过这种问题,下面教程之家网为大家带来WPS文字插入图片显示不完整的解决方法,不知道怎么解决的朋友 ...

  2. word中图片为嵌入式格式时显示不全_word嵌入图片显示不全,教您word插入图片显示不全怎么办...

    相信大家在使用Word进行编辑文档过程中,经常都会遇到需要插入图片情况吧.然后有些时候是不是还会遇到图片显示不全或只显示图片一部分的,或者只显示图片的边框之类的情况呢?所以今天小编将给讲讲word插入 ...

  3. java中生成pdf,插入图片,页眉、页脚、表格

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java中生成pdf,插入图片,页眉.页脚.表格 import com.lowagie.text.*; import com.lowagie.te ...

  4. word文档里插入图片显示不完整,只显示一半,怎么处理?

    word文档里插入图片显示不完整,只显示一半,怎么处理? 目录 word文档里插入图片显示不完整,只显示一半,怎么处理? 1.把鼠标光标放置图片的末尾,然后点击鼠标右键,选择[段落]选项 2.在[缩进 ...

  5. word文档中插入图片显示不全解决办法

    在windows下写word文档,正常情况下,我们应该不会遇到插入图片显示不全的问题,好像是如果在已有的文档中插入图片,比如文档中间插入,图片没办法自动扩展空间,这就导致了显示不全的问题. 这个问题也 ...

  6. wps office word 插入图片显示异常 只显示一个长条

    wps office word插入图片显示异常 只显示一个长条 如图: 原因: 可能是网络复制文字的时候含有了某些格式. 建议复制的文字, 复制到网页的地址框里, 再复制到word文档里,可以很好的消 ...

  7. word 插入图片显示不全

    word插入图片显示不全: 解决方案: 选中图片-段落-行距-选择单倍.或者多倍行距都可以.即可.

  8. 【word 应用篇】word如何插入页码以及word插入图片显示不全的解决方法

    文章目录 word如何插入页码.word插入图片显示不全的问题 1.word如何在某一页开始设置页码 2.word中插入图片时,图片会显示不全的解决方法 word如何插入页码.word插入图片显示不全 ...

  9. WORD插入图片显示不正常 只显示底部一部分

    在WORD里插入图片后,选择嵌入式发现插入的图片显示不正常,只能显示底部一部分.图片上面有文字,还能输入文字和回车.好像图片在文字下面一样,就露出了一个底部.但如果把图形的版式设置为"浮于文 ...

  10. Word文档插入图片显示不全调整

    在Word中插入图片,如果图片大小正常,但是仅能显示一行高度的内容,其他内容均无法显示,例如图中所示 选中图片,点击图片边缘阴影处,选择段落,在段落中选择行距,设置行距倍数. 即可解决插入图片显示不全 ...

最新文章

  1. 禅道设置bug模板_一款热度很高的项目管理和bug工具,免费使用,可在公司推广哦...
  2. KL 损失的边界框回归
  3. hdu 1272 小希的迷宫 (并查集)
  4. python json 不好用_Python之json使用
  5. react学习(40)----react中的jsx简介
  6. 2020 年开发者生态报告:Python超越Java,Go、Kotlin强势崛起
  7. python数据库连接代码_python 连接各类主流数据库的实例代码
  8. HTTP404错误原因
  9. 语音学习笔记(四)【传统声学模型】
  10. 关于SqlServer导入access数据库,十进制字段的精度过小的问题
  11. php最难,那个PHP中号称最难的‘递归函数’
  12. ef codefirst字段类型与sqlserver表字段类型对应概要
  13. 苹果手机型号对应表及尺寸
  14. 分享12个黑科技网站,每个都是十分良心
  15. latex附录中放python代码_LaTeX 里「添加程序代码」的完美解决方案
  16. matlab 模态,用matlab做模态分析
  17. 教你开发一个JS代码加密工具
  18. 【NLP】keras实现IMDB电影评论分类
  19. iOS 音乐播放器之锁屏歌词+歌词解析+锁屏效果
  20. 丝裂原活化蛋白激酶TaMPK3抑制植物对ABA的反应

热门文章

  1. Python函数必须先定义、后调用(函数调用函数例外)
  2. HTML5期末大作业:个人网站设计——简单响应式个人博客HTML模板(8页面) HTML+CSS+JavaScript...
  3. java环境配好后jar文件打开闪退,无打开方式,无反应
  4. 基于粒子群算法的微电网优化调度应用研究(六、总结与展望)
  5. 无根树的计数——prufer序列
  6. 如何快速查询手机号码归属地和运营商
  7. MATLAB中.m文件命名规则
  8. uni-app 图片上传组件 canvas压缩
  9. 各位大佬,别再拿人工智能当春药了!
  10. 1.1 第一课:操作示范 [Ps教程]