java html 转pdf 中文可显示
2017-04-27 00:00
309 查看
摘要: 最近正好项目有用到 ITEXT ,在网络上搜索了一番,发现了很多方案,但是都是显示中文有问题,本文提供一种最便捷的方式来实现,不需要任何额外 JAR 包。
引用一句另外一个人提出解决方式的一句话
一段可运行的代码比说很多废话强得多
找了非常多的方法就是不显示中文,终于在贴吧一位兄弟提醒了我.
最重要的一点是 html 一定要设置字体
<body style = "font-family: SimSun;" >
对html的规范要求极高,例如:页面中<mate></mate>必须闭合,必须: <br />
ITEXT 的功能和简介这里就不多说了,直接带大家做一遍:
这四个包
package com.uitl;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.pdf.BaseFont;
/**
*
* @author 赖兴隆
*/
public class htmlToPdf {
public static void main(String[] args) throws Exception {
htmlToPdf("/Users/max/Documents/workspace/temp/w3.pdf","/Users/max/Documents/workspace/temp/w.html");
}
public static boolean htmlToPdf(String outputFile, String url)throws Exception {
File outFile = new File(outputFile);
if (!outFile.exists()) {
outFile.getParentFile().mkdirs();
}
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("SIMSUN.TTC", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
renderer.layout();
renderer.createPDF(os);
os.flush();
os.close();
return true;
}
}
希望能帮到大家
引用一句另外一个人提出解决方式的一句话
一段可运行的代码比说很多废话强得多
找了非常多的方法就是不显示中文,终于在贴吧一位兄弟提醒了我.
最重要的一点是 html 一定要设置字体
<body style = "font-family: SimSun;" >
对html的规范要求极高,例如:页面中<mate></mate>必须闭合,必须: <br />
ITEXT 的功能和简介这里就不多说了,直接带大家做一遍:
这四个包
package com.uitl;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.pdf.BaseFont;
/**
*
* @author 赖兴隆
*/
public class htmlToPdf {
public static void main(String[] args) throws Exception {
htmlToPdf("/Users/max/Documents/workspace/temp/w3.pdf","/Users/max/Documents/workspace/temp/w.html");
}
public static boolean htmlToPdf(String outputFile, String url)throws Exception {
File outFile = new File(outputFile);
if (!outFile.exists()) {
outFile.getParentFile().mkdirs();
}
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("SIMSUN.TTC", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
renderer.layout();
renderer.createPDF(os);
os.flush();
os.close();
return true;
}
}
希望能帮到大家
相关文章推荐
- 通过swagger2markup+asciidoctorj生成html和pdf文档并解决asciidoctorj生成的pdf文件中文显示不全问题(maven方式及java代码方式)
- java实现html转pdf,支持中文,css以及中文换行
- 使用XMLWorkerHelper.getInstance().parseXHtml生成PDF时中文不显示或乱码问题
- itext2.0.8把html转换为pdf及解决中文不显示办法
- java html转pdf 中文乱码
- jasper报表通过Java生成pdf中文不显示的一种解决方案
- [ASP.net MVC] 将HTML转成PDF档案,使用iTextSharp套件的XMLWorkerHelper (附上解决显示中文问题)
- ITEXT5.5.8转html为pdf文档解决linux不显示中文问题
- Java生成PDF例子(能显示中文的.......)
- java 用itext-asian解决itext pdf中文不显示问题
- 利用itext导出HTML到PDF,解决中文不显示和中文不换行的问题
- java pdf写入中文时不显示,如何解决。
- ssh三大框架简单整合,struts2整合JasperReport报表、图表,解决HTML显示图片不出来,PDF中文不显示的问题
- 用itext生成带表格的PDF,并显示中文问题
- Java 应用程序的中文显示及中文输入问题
- 让Java Swing显示中文更美观
- 用iReport2.0.2输出PDF中文问题(续)--解决昨天设置中文后的版面显示问题
- Java写的GUI程序在Gnome下显示中文乱码,不显示菜单等问题
- 让Java Swing显示中文更美观
- Neoshine linux 3.0中JAVA中文显示环境的配置