http://yanghack.javaeye.com/blog/480516
最近用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://code.google.com/p/masterlrg/source/browse/ComponentsLearning/src/PaperLoad/FlashPaperLoader.as?r=44
posted on 2010-04-03 23:16
SIMONE 閱讀(2687)
評論(2) 編輯 收藏 所屬分類:
flash