到 Google 资讯主页   
EasyJF首页   资料   源码   软件    论坛   网站    
   使用帮助    
    该信息为本站MyRSS系统缓存内容,部分图片及附件有可能无法正常使用.easyjf.comwww.matrix.org.cn无关,不对该信息负责.通过http://www.matrix.org.cn//resource/article/44/44124_java+word+excel.html访问该信息的原始内容.
页面功能  【加入收藏】 【推荐给朋友】 【字体:  】 【关闭】   
[总结]Word,Excel,图片向pdf的转换及合成操作
作者:iceaugust 来源:www.matrix.org.cn  发布时间:2006-02-22 17:50:19.813

    前段时间因为公司项目需求,需要将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

 
相关文章
 
页面功能  【加入收藏】 【推荐给朋友】 【字体:  】 【关闭】   


EasyJF.com 2006 隐私政策 使用EasyJF前必读