利用itext2.0.8老版本对html生成pdf,支持中英文
By:Roy.LiuLast updated:2017-08-07
为什么要用itext-2.x版本,现在不是已经很高版本了吗?原因在于授权问题,在2.x版本的时候才是真正意义上的开源免费,而且可以商业应用,后来的都是要许可的。所以用了老版本测试,其实很多年前以前我用过 itext 的api直接生成过很多PDF, 其实也还蛮好用。但对于开发人员来说,更好的做法应该是通过HTML页面直接生成PDF. 至于HTML页面的生成,你可以利用freemarker 等都可以,这不是今天记录的重点。 今天重点是记录把html生成PDF, 并且还要支持中英文. 文章是参考别人来的,自己只是下载测试了一下而已。

利用itext,将html生成pdf源码下载:
itext-html-pdf-source-code
另外还可以参考这篇文章 http://www.yihaomen.com/article/java/490.htm

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.pdf.BaseFont;
public class App {
public void createPdf() throws Exception {
// step 1
String inputFile = "Real.html";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = "Real.pdf";
System.out.println(url);
// step 2
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
// step 3 解决中文支持, linux 下可以复制字体到 linux 字体目录下。
String osName = System.getProperty("os.name").toLowerCase();
org.xhtmlrenderer.pdf.ITextFontResolver fontResolver = renderer.getFontResolver();
if (osName.startsWith("win")) {
fontResolver.addFont("c:/Windows/Fonts/simsun.ttc", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
} else {
fontResolver.addFont("linux 下的路径", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
}
renderer.layout();
renderer.createPDF(os);
os.close();
System.out.println("create pdf done!!");
}
public static void main(String[] args) throws Exception {
App app = new App();
app.createPdf();
}
}
利用itext,将html生成pdf源码下载:
itext-html-pdf-source-code
另外还可以参考这篇文章 http://www.yihaomen.com/article/java/490.htm
From:一号门
Previous:用pdfbox 读取pdf文档
Next:Django开发注意事项,新手必看(转)

COMMENTS