// 使用flashPaper进行由word文件转换成swf文件
public static void main(String[] args) {
// System.out.println(System.getProperty("os.name"));
String cmd = "D:\\useInstall\\installDir\\FlashPaper2.2\\FlashPrinter.exe E:\\自主学习平台安装手册.doc -o E:\\自主学习平台安装手册.swf";
try {
// 创建进程,并执行
Process pro = Runtime.getRuntime().exec(cmd);
pro.waitFor();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
-------------------------------------------------------------------
最近用FlashPaper2.2与java 的做了个web程序,
功能就是,用户上传的office文档PDF文档,上传后转换成swf在网页上显示
DOS命令很好执行
FlashPrinter.exe "C:\aa.DOC" -o "C:\aa.DOC.swf"
java里就用
Process process = Runtime.getRuntime().exec(cmd)
但是用process.waitFor();容易造成锁死,不建议使用
经过分析,可能是由于office版本过高
用office2007,能正常转换doc,ppt,pptx这几个.
如果在程序里,转换其他个比如docx,xls..就造成锁死了
所以还是不让它转吧,建议试试office2003.
pdf文件,由于装的是Adobe Reader 9,
服务器必须打开一个Adobe Reader 9的空窗口然后程序才能正常运转
建议试试低版本的Adobe Reader.
服务器Tomcat上如果总是转换失败,应该检查这些地方
FlashPrinter打印机"打印测试页"一下,不行就重装这个
Runtime.getRuntime().exec(cmd)
cmd命令前面不要加 "cmd /c ",
路径:URL的是/,DOS命令是\,这两斜杠千万别搞错
Tomcat编码,可能中文文件名的文件不能转换.
不行就把打印机的权限什么用户都钩上,我就这么干的
有什么更好的解决办法告我说啊...
--------------------------------------
2010.03.22 补充:
以前写的东西不详细,想再补充一点.
在web中想要用FlashPrinter转换文档的话,用cmd这种方式简单.
但是,如果2条命令同时执行就会卡死了,建议写一个打印任务列队,新任务不直接打印.
想要打印机正常,就要让FlashPrinter打印机成为默认打印机,并且不受远程桌面会话影响.
连接远程桌面,会产生一个打印机会话,并自动设置成默认.
此时将失去打印功能,需要保持Macromedia FlashPaper为默认打印机,并不收会话影响.
如此一来,可正常打印所有office文档
导入注册表重启生效:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fForceClientLptDef"=dword:00000001
"fInheritAutoClient"=dword:00000000
"fDisableCpm"=dword:00000001
"fAutoClientLpts"=dword:00000001