利用itext导出HTML到PDF,解决中文不显示和中文不换行的问题
2017-10-16 18:59
3575 查看
Java导出PDF用的最广的还是itext,itext导出PDF的方式有很多种,今天我介绍的是导出HTML到PDF,在我做这个功能的时候遇到过中文不显示,中文过长不会自动换行的问题,最后还是通过修改源码包解决了中文不换行的问题,不容易啊!!需要说明的是我是直接在后台查的数据并拼接成的HTML。
首先要引入三个jar包,jar包的下载地址为:http://download.csdn.net/download/beaacmen/10024666;此jar包已经是修改过的,亲测可用,下面直接贴代码
首先要引入三个jar包,jar包的下载地址为:http://download.csdn.net/download/beaacmen/10024666;此jar包已经是修改过的,亲测可用,下面直接贴代码
public void exportTopdf() throws Exception { int fileNum = new Random().nextInt(1000000) + 1;//生成一个随机数作为pdf的名称 String fileUrl = "E:\\" + fileNum + ".pdf";//设置导出路径 OutputStream os = new FileOutputStream(fileUrl); ITextRenderer renderer = new ITextRenderer(); ITextFontResolver font = renderer.getFontResolver();
font.addFont("C:/WINDOWS/Fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//添加中文识别,这里是设置的宋体,Linux下要换成对应的字体 StringBuffer html = new StringBuffer(); // DOCTYPE 必需写否则类似于 这样的字符解析会出现错误 html.append("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN/' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>"); html.append("<html xmlns='http://www.w3.org/1999/xhtml'>"); html.append("<head><style>body{font-family:SimSun;font-size:14px;}</style> ");//此处一定要加,不然字体也不会显示,不要加line-height属性 html.append("<title>" + "无标题文档" + "</title>"); html.append("</head>"); html.append("<body>"); html.append("<div>此处添加需要导出的HTML代码</div>")//这里根据实际情况替换成你的HTML代码就OK了 html.append("</body></html>"); renderer.setDocumentFromString(html.toString()); // 解决图片的相对路径问题 renderer.getSharedContext().setBaseURL("http://localhost:8080");//导出到服务器 renderer.layout(); renderer.createPDF(os); renderer.finishPDF(); }到此为止这个功能就算做完了,需要注意的是,这里是将PDF文件导出到了你服务器的E盘下,而不是本地,如果要导出到本地还需要将这个文件从服务器上写下来,关于如何从服务器下载文件到本地,此后我会介绍
相关文章推荐
- 使用itext将html生成pdf中文换行问题解决方案2
- 使用itext将html生成pdf中文换行问题解决方案
- ITEXT5.5.8转html为pdf文档解决linux不显示中文问题
- jasperreport6 导出pdf中文不显示问题解决方式
- Itext 导出PDF(中文解决,HTML转PDF)
- java 用itext-asian解决itext pdf中文不显示问题
- iText7 生成 PDF 文件,解决各种操作系统中文问题,控制指定位置显示图片、文字、图文混排
- [ASP.net MVC] 将HTML转成PDF档案,使用iTextSharp套件的XMLWorkerHelper (附上解决显示中文问题)
- xhtmlrenderer进行HTML转PDF【解决中文、数字、英文过长自动换行问题】
- iText+Flying Saucer生成pdf文档,中文不显示和不自动换行问题
- itext2.0.8把html转换为pdf及解决中文不显示办法
- ssh三大框架简单整合,struts2整合JasperReport报表、图表,解决HTML显示图片不出来,PDF中文不显示的问题
- dokuwiki + dw2pdf 插件,解决导出pdf文件中文乱码(字体问题,显示小方块)
- 利用jasperreports报表生成pdf文档中文不能显示问题解决方法
- IText 导出PDF 中文问题解决
- jasperreports和Ireport导出PDF文件中文不显示问题(最新解决方法)
- 通过swagger2markup+asciidoctorj生成html和pdf文档并解决asciidoctorj生成的pdf文件中文显示不全问题(maven方式及java代码方式)
- springMVC中itext生成PDF,根本上解决中文乱码以及不显示问题
- [已解决]MSTR报表以PDF格式导出后中文汉字不能显示
- eXtremeTable导出数据为XLS和PDF时的中文问题解决办法