仿百度文库解决方案(五)——利用SWFTools转换PDF文档为SWF
SWFTools工具包中的PDF2SWF工具可用来将PDF格式文件转换成SWF格式。使用下面的命令可以将pdf文件转换为单页swf文件。 pdf2swf ?pdfPath ?–o swfPath ?–T 9 ?–f。 pdf2swf为pdf2swf二进制命令的绝对路径;pdfpath为要进行转换的PDF文件的绝对路径;swfPath为转换后swf文件的路径;-T 9 用来设定转换的swf版本为9,这样设置是因为某些版本的swf文件并不能用flexpaper正常显示出来;-f在转换的文档每页中插入一帧,提高转换后文档的稳定性。 每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。应用程序不能创建自己的Runtime类实例,可以通过Runtime类的getRuntime方法获得当前运行时。获得Runtime类实例之后,即可以调用该类的exec方法创建一个新的进程来执行制定的字符串命令。因此,可以利用exec方法来调用之前所述的PDF2SWF命令来完成PDF至SWF文件的转换。 实现利用SWFTools转换PDF文件为SWF格式的算法流程如5-1所示: 第一步,创建PDF2SWF转换命令字符串。 第二步,获得当前运行时Runtime,调用第一步中设定好的转换命令,进行转换。 图5-1 利用SWFTools转换PDF文档为SWF流程 实现代码如下: public class SWFToolsSWFConverter implements SWFConverter{ private static String PDF2SWF_PATH = "D:Program Files (x86)SWFToolspdf2swf.exe"; @Override public void convert2SWF(String inputFile,String swfFile) { File pdfFile = new File(inputFile); File outFile = new File(swfFile); if(!inputFile.endsWith(".pdf")){ System.out.println("文件格式非PDF!"); return ; } if(!pdfFile.exists()){ System.out.println("PDF文件不存在!"); return ; } if(outFile.exists()){ System.out.println("SWF文件已存在!"); return ; } String command = PDF2SWF_PATH +" ""+inputFile+"" -o "+swfFile+" -T 9 -f"; try { System.out.println("开始转换文档: "+inputFile); Runtime.getRuntime().exec(command); System.out.println("成功转换为SWF文件!"); } catch (IOException e) { e.printStackTrace(); System.out.println("转换文档为swf文件失败!"); } } @Override public void convert2SWF(String inputFile) { String swfFile = FileUtils.getFilePrefix(inputFile)+".swf"; convert2SWF(inputFile,swfFile); } public static void main(String[] args) { SWFToolsSWFConverter converter= new SWFToolsSWFConverter(); converter.convert2SWF("d:test.pdf","d:test.swf"); } } 注: 源代码下载地址:DocConverter (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |