http://yanghack.iteye.com/blog/480516
FlashPaper2.2在jsp里
文章分类:Web前端
最近用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
http://www.idouye.com 爱豆叶资料分享