利用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