赛迪网 > IT技术 Java > Java开源
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

[总结]Word,Excel,图片向pdf的转换及合成操作

发布时间:2006.03.15 18:58     来源:Matrix    作者:iceaugust

    前段时间因为公司项目需求,需要将wordexcel,图片等合成pdf文档。经过本版斑主clelverpig以及另一位网友的帮助,终于实现了,虽然不是很完善,但已经可以满足一般的的业务需要。现在将实现过程总结一下,希望对有需要的人能有一定的帮助。若有不妥之处请指出,谢谢!   

总体上分为以下4步:

1.  利用jacobjava编程实现对word文档向pdf文档的转换。

2.  利用vb6.0实现excelpdf的转换。(用此途径是由于jacob暂时无法实现excelpdf的转换)

3.  利用开源jaritext实现图片向pdf的间接转换。

4.  利用开源jaritext实现多个pdf文件的合成,并相应按照单个文件生成书签。

 

源代码在文章结尾处有下载

 

以下就分别对以上步骤进行详细说明:

 

1. 利用vb6.0实现excelpdf的转换。说明:

    这一步,斑主clelverpig所发表的文章上已经说得很详细,这里就不再缀述了。http://www.matrix.org.cn/resource/article/43/43923_jacob_word_PDF.html

当然只要能用word程序正常打开的文件都可以用这个方法实现转换,如txt,rtf,htm,html等文件。

2利用vb6.0实现excelpdf的转换。说明:

    1)、建工程时,需要要引用下面的两个库:Acrobat Distiller和Microsoft Excel 11.0 Object Library;vb工程源代码见文章下方的下载;

    2)、该小程序共有2个方法,GetCommandLine(Optional MaxArgs)方法用于接收命令行参数,若是在java中调用,则是代码中的参数。Form_Load()方法用于调用该小程序时执行的动作,即将第一个参数(被转换的excel文件全路径)所指向的文件转换成第二个参数(目标pdf文件全路径,不带后缀名);

    3)、该小程序需编译成exe文件放到指定目录,以供java中调用,调用方法如下(若VB生成的可执行文件、源excel文件及目标文件都在d盘根目录下,注意,第二个参数不带后缀名):

Process child = Runtime.getRuntime().exec("cmd /c d:/exceltopdf.exe d:/a.xls d:/b");//执行脚本文件

InputStream child_in = child.getInputStream();

int c;

while ((c = child_in.read()) != -1) {}

child_in.close();

 异常自己捕获,若运行正常,则会弹出和使用jacobword文档类似的提示对话框,提示正在打印的信息; 

3.  利用开源jaritext实现图片向pdf的间接转换。说明:

1)、支持的图片为一般常使用的图片,有:jpg,gif,png,tif,bmp等,这几种我都试过,能够实现;

2)、需要注意的是,此方法并不是实现转换功能,只是将一个图片追加到一个空白的pdf文件尾,但其结果一样,且速度比转换来得快,所以不失为一个好方法。图片大小不好控制,因此新建pdf文件时可将尺寸建大些,在源代码中会有相应说明ContactPdf.java

3)、itext开源包可到http://www.lowagie.com/iText/download.html下载,上面有很多示例,我就是按照那些示例学习的。

 

4利用开源jaritext实现多个pdf文件的合成,并相应按照单个文件生成书签。说明:

       1)、contact方法有三个参数,第一个为书签数组名,与源文件名数组分别相应,第二个数为源文件名数组(源文件的完整路径),每三个参数为最终生成的目标pdf文件名(完整路径);详见源代码类ContactPdf.java;具体请根据实际情况修改再运行;

       2)、另外必须写一个类似于监听听器的类,名为ParagraphEvent,目的是为了在拼接pdf文件同时生成书签,详见源代码:ParagraphEvent.java

  

 

 

 

 

 相关源代码下载:
http://www.matrix.org.cn/resource/upload/article/2006_01_04_142606_WouhAYHDin.rar
http://www.matrix.org.cn/resource/upload/article/2006_01_04_142621_eKXeSrirWI.rar
http://www.matrix.org.cn/resource/upload/article/2006_01_04_142629_duOXfsUydI.rar

相关链接:
1.cleaverpig的文章:  http://www.matrix.org.cn/resource/article/43/43923_jacob_word_PDF.html
2.itext下载点:http://www.lowagie.com/iText/download.html


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Spring MultiAction的简单示例 (11-05) · 结合struts和hibernate谈J2EE架构的数据表示 (10-10)
· 对Hibernate中any元素应用的个人理解 (12-15) · Hibernate Annotations 实战 (02-04)
· 使用struts+spring+hibernate 组装web应用 (12-26) · Hibernate Annotations 实战(二) (05-02)
· 使用Ant进行增量快速构建 (11-27) · Web框架对比: Wicket vs Struts (01-09)
· Eclipse快速上手指南之使用ANT (01-15) · ant+cactus+tomcat5.5容器内单元测试简明手册 (07-22)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网站建设市场重新洗牌 一卡通引领革命潮流
· 北京加快信息化建设 医保一卡通年底前启动
· ERP案例分析 SaaS带来冲击 IT服务商面临挑战
· 通方期货CRM解决方案 房地产行业CRM解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统