摘要: 最近正好项目有用到 ITEXT ,在网络上搜索了一番,发现了不少方案,可是都是显示中文有问题,本文提供一种最便捷的方式来实现,不须要任何额外 JAR 包。html
引用一句另一我的提出解决方式的一句话 java
一段可运行的代码比说不少废话强得多网络
找了很是多的方法就是不显示中文,终于在贴吧一位兄弟提醒了我.字体
最重要的一点是 html 必定要设置字体 ui
<body style = "font-family: SimSun;" > url
对html的规范要求极高,例如:页面中<mate></mate>必须闭合,必须: <br />spa
ITEXT 的功能和简介这里就很少说了,直接带你们作一遍:.net
这四个包htm
package com.uitl;get
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;
}
}
但愿能帮到你们