仿百度文库解决方案(五)——利用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,调用第一步中设定好的转换命令,进行转换。

利用SWFTools转换PDF文档为SWF

图5-1 利用SWFTools转换PDF文档为SWF流程

实现代码如下:

public class SWFToolsSWFConverter implements SWFConverter{

	private static String PDF2SWF_PATH = "D:\\Program Files (x86)\\SWFTools\\pdf2swf.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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值