IText 自html tag 转为 pdf 用java 实现,实例完整。拿出来共享,谢谢。 博客分类: java htmlitextpdfjavajar
程序员文章站
2024-03-21 19:28:58
...
这东西搞得我头都大了,望各位高手指点。
说明:
(这个类运行环境 myeclipse6.6 jdk1.5 windows7)
需要jar包:(三个)
itextpdf-5.1.2.jar
bcprov-jdk15-146.jar
iTextAsian.jar
使用和生成的 pdf html 去 本人的资源列表下载
存在问题:生成的pdf 里面的table 只有border 没有内容,请教各位高手。(还有html格式转换为pdf后 不够细腻)
下面两个链接是我上传到csdn资源的链接附件。
待转换的html
http://download.csdn.net/detail/qq540061627/3594776
生成的pdf
http://download.csdn.net/detail/qq540061627/3594774
说明:
(这个类运行环境 myeclipse6.6 jdk1.5 windows7)
需要jar包:(三个)
itextpdf-5.1.2.jar
bcprov-jdk15-146.jar
iTextAsian.jar
使用和生成的 pdf html 去 本人的资源列表下载
存在问题:生成的pdf 里面的table 只有border 没有内容,请教各位高手。(还有html格式转换为pdf后 不够细腻)
下面两个链接是我上传到csdn资源的链接附件。
待转换的html
http://download.csdn.net/detail/qq540061627/3594776
生成的pdf
http://download.csdn.net/detail/qq540061627/3594774
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.StringReader; import java.util.List; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Font; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.html.simpleparser.HTMLWorker; import com.itextpdf.text.html.simpleparser.StyleSheet; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfWriter; public class testPDF { public static String path = System.getProperty("user.dir") + "/WebRoot/"; public static String outputFile = path + "fistdoc.pdf"; public static String outputFile2 = path + "fistdoc2.pdf"; public void test() throws DocumentException, IOException { //-----加载 html 流 开始 BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(path + "hetong2.html"))); String data=null; StringBuffer b = new StringBuffer(); while ((data = br.readLine()) != null) { System.out.println(data); b.append(data); } br.close(); //----- 加载 html 流 结束 //-----输出 pdf 流 开始 OutputStream os = new FileOutputStream(outputFile2); //-----输出 pdf 流 结束 Document doc = new Document(); //-----中文过滤 开始 BaseFont baseFontChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font fontChinese = new Font(baseFontChinese, 12, Font.NORMAL); //-----中文过滤 结束 //-----创建监听器 PdfWriter writer = PdfWriter.getInstance(doc, os); //-----加权限 开始 writer.setPdfVersion(writer.PDF_VERSION_1_7); int perssion = writer.ALLOW_PRINTING | writer.HideMenubar | writer.HideToolbar | writer.HideWindowUI | writer.ALLOW_FILL_IN; writer.setEncryption(null, null, perssion, writer.STANDARD_ENCRYPTION_40); //-----加权限 结束 //----- html 流 加入document 开始 Paragraph context = new Paragraph(); StyleSheet ss = new StyleSheet(); List htmlList = HTMLWorker.parseToList(new StringReader(b.toString()), ss); for (int i = 0; i < htmlList.size(); i++) { Element e = (Element) htmlList.get(i); context.setFont(fontChinese); context.add(e); } //----- html 流 加入document 结束 //----- 打开document doc.open(); //加入html 流 动作 doc.add(context); //----- 关闭document doc.close(); } public static void main(String[] args) throws DocumentException, IOException { testPDF f = new testPDF(); f.test(); } }