Java HTML2PDF文档的解决方案

1、IText实现html2pdf,速度快,纠错能力差,支持中文(要求HTML使用unicode编码),但中支持一种中文字体,开源。

 

2、Flying Sauser实现html2pdf,纠错能力差,支持多种中文字体(部分样式不能识别),开源。

 

3、PD4ML实现html2pdf,速度快,纠错能力强,支持多种中文字体,商业。


这里只介绍 PD4ML

PD4ML

        官网下载:http://pd4ml.com/downloads.htm

        依赖jar包:pd4ml_demo.jar、pd4ml__css2.jar、fonts.jar

       下面只是一个小的测试案例,如果项目中使用到了该组件可以参考API完成项目组中相应的功能!

      

[java]  view plain  copy
  1. import java.awt.Insets;  
  2. import java.io.File;  
  3. import java.io.FileOutputStream;  
  4. import java.io.StringReader;  
  5.   
  6. import org.zefer.pd4ml.PD4Constants;  
  7. import org.zefer.pd4ml.PD4ML;  
  8.   
  9. public class Converter {  
  10.     public static void main(String[] args) throws Exception {  
  11.         Converter converter = new Converter();  
  12.         converter.generatePDF_2(new File("D:/Test/demo_ch_pd4ml_a.pdf"), "D:/Test/a.htm");  
  13.         File pdfFile = new File("D:/Test/demo_ch_pd4ml.pdf");  
  14.         StringBuffer html = new StringBuffer();  
  15.         html.append("<html>")  
  16.             .append("<head>")  
  17.             .append("<meta http-equiv=/"Content-Type/" content=/"text/html; charset=UTF-8/" />")  
  18.             .append("</head>")  
  19.             .append("<body>")  
  20.             .append("<font face=/"KaiTi_GB2312/">")  
  21.             .append("<font color='red' size=22>显示中文</font>")  
  22.             .append("</font>")  
  23.             .append("</body></html>");  
  24.         StringReader strReader = new StringReader(html.toString());  
  25.         converter.generatePDF_1(pdfFile, strReader);  
  26.     }  
  27.     // 手动构造HTML代码  
  28.     public void generatePDF_1(File outputPDFFile, StringReader strReader) throws Exception {  
  29.         FileOutputStream fos = new FileOutputStream(outputPDFFile);  
  30.         PD4ML pd4ml = new PD4ML();  
  31.         pd4ml.setPageInsets(new Insets(20101010));  
  32.         pd4ml.setHtmlWidth(950);  
  33.         pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4));  
  34.         pd4ml.useTTF("java:fonts"true);  
  35.         pd4ml.setDefaultTTFs("KaiTi_GB2312""KaiTi_GB2312""KaiTi_GB2312");  
  36.         pd4ml.enableDebugInfo();  
  37.         pd4ml.render(strReader, fos);  
  38.     }  
  39.   
  40.     // HTML代码来自于HTML文件  
  41.     public void generatePDF_2(File outputPDFFile, String inputHTMLFileName) throws Exception {  
  42.         FileOutputStream fos = new FileOutputStream(outputPDFFile);  
  43.         PD4ML pd4ml = new PD4ML();  
  44.         pd4ml.setPageInsets(new Insets(20101010));  
  45.         pd4ml.setHtmlWidth(950);  
  46.         pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4));  
  47.         pd4ml.useTTF("java:fonts"true);  
  48.         pd4ml.setDefaultTTFs("KaiTi_GB2312""KaiTi_GB2312""KaiTi_GB2312");  
  49.         pd4ml.enableDebugInfo();  
  50.         pd4ml.render("file:" + inputHTMLFileName, fos);  
  51.     }  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的Word文档转换为PDF格式,可以通过使用各种开源库和工具来实现。以下是一个可能的解决方案: 1. Apache POI:Apache POI是一个用于读取和写入Microsoft Office格式文件的Java库。使用Apache POI可以读取Word文档的内容,并将其内容逐个写入PDF文件。 2. iText库:iText是一个功能强大的开源库,可用于创建和操作PDF文档。可以使用iText将Java中的Word文档转换为PDF,它提供了许多处理PDF文件的功能,如添加文本、图像、表格等。 3. 使用Microsoft Office并调用COM接口:如果您的Java应用程序运行在Windows操作系统上,并且安装了Microsoft Office,您可以通过调用Office的COM接口来实现将Word文档转换为PDF文件。这种方法需要您具备一定的COM编程知识,并且可能不适用于跨平台应用程序。 无论您选择哪种方法,都需要考虑以下几个步骤来完成转换过程: 1. 读取Word文档:使用适当的库或工具读取Word文档的内容。如果使用Apache POI,您可以使用XWPFDocument类来读取Word文档。 2. 创建PDF文档:使用相应的库或工具创建一个空的PDF文档。 3. 将Word文档内容写入PDF:根据您选择的库或工具,将Word文档的内容逐个写入PDF文档。这可能涉及到转换文本、添加图像、创建表格等操作。 4. 保存PDF文档:在完成写入操作后,将PDF文档保存到目标文件中,以完成转换过程。 总之,通过使用适当的库或工具,您可以轻松将Java中的Word文档转换为PDF格式。根据您的具体需求和平台限制选择最适合的解决方案,并遵循相应的步骤来实现转换过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值