1. 利用vb6.0实现excel向pdf的转换。说明:
这一步,斑主clelverpig所发表的文章上已经说得很详细,这里就不再缀述了。http://www.matrix.org.cn/resource/article/43/43923_jacob_word_PDF.html
当然只要能用word程序正常打开的文件都可以用这个方法实现转换,如txt,rtf,htm,html等文件。
2.利用vb6.0实现excel向pdf的转换。说明:
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();
异常自己捕获,若运行正常,则会弹出和使用jacob转word文档类似的提示对话框,提示正在打印…的信息;
3. 利用开源jar包itext实现图片向pdf的间接转换。说明:
1)、支持的图片为一般常使用的图片,有:jpg,gif,png,tif,bmp等,这几种我都试过,能够实现;
2)、需要注意的是,此方法并不是实现转换功能,只是将一个图片追加到一个空白的pdf文件尾,但其结果一样,且速度比转换来得快,所以不失为一个好方法。图片大小不好控制,因此新建pdf文件时可将尺寸建大些,在源代码中会有相应说明ContactPdf.java;
3)、itext开源包可到http://www.lowagie.com/iText/download.html下载,上面有很多示例,我就是按照那些示例学习的。
4.利用开源jar包itext实现多个pdf文件的合成,并相应按照单个文件生成书签。说明:
1)、contact方法有三个参数,第一个为书签数组名,与源文件名数组分别相应,第二个数为源文件名数组(源文件的完整路径),每三个参数为最终生成的目标pdf文件名(完整路径);详见源代码类ContactPdf.java;具体请根据实际情况修改再运行;
2)、另外必须写一个类似于监听听器的类,名为ParagraphEvent,目的是为了在拼接pdf文件同时生成书签,详见源代码:ParagraphEvent.java;