版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关于开似百度文库和豆丁的在线文档(txt,doc , JPG等转为SWF或pdf)转Flash播放器的实现!-废话开始现在网上用的比较多的是百度文库和豆丁网,用户上传文档(包含图片)后自动进行转换后,使用FLASH播放器播放,此服务功能对于上传者来说的益处是不用多说了(省略若干。),同时也深受浏览者 喜爱。在网上看见较多网友在各坛子发帖发问如何实现及回答中,讨论基于FlexPaper实现的较多,但没看见那个开发过的谁谁提供完整的实现方法。在这里,我将借用FlashPaper提供一个相对来说比较的、极其的、简单的实现方法,供大家参考。!-废话结束,正式开工该实现方法概述:1、编一个简单的DLL组
2、件,能调用FlashPaper的转换功能,2、在服务器上注册该 DLL组件。3、 使用JSP、ASP或PHP不管是什么P来调用该组件的使用方法。4、用户上传文档后,在浏览器的服务器端实现文档转化。主要工作分以下三步:1、 下载一个FlashPaper 2.0安装包,如果没有,可以在百度里输入:flashpaper下载,: &f=3&w d=flashpaper%CF%C2%D4%D8&oq=FlashPaper&rsp=0&sugT=3218,选择下载 2.0 版本的来安装完成。2、 使用VC、vb等任何一个语言弄一个 DLL组件,工程名如:forFlash,类名如:outFlash里面写一个
3、 公用的函数用于外部调用,函数构建如:getMyFlashFile(sourceFileUrlAndName, outFileUrlAndName),两个参数分别为待转换的文档与转换后输出的( SWF或PDF)文件,如: d:xxxyy.doc, c:11.swf.,是服 务器上的包含文件路径的。该函数里面敲入一行代码就够了,调用flashpaper的转换功能,如 VB代码:Shell App.Path & flashprinter & sourceFileUrlAndName & -o & outFileUrlAndName, vbHide。编译成forFlash.dll完成后,拷贝到fla
4、shpaper的安装目录下(也就是与FlashPrinter.exe 等文件同一文件夹内)。3、用记事本写一个 REG.bat文件,里面写上:regsvr32 forFlash.dll 。保存到上述的安装目录后,运行 一下,注册该组件。4、 在服务器脚本语言文件里,在服务器端调用开组件。如ASP:访问http:/url/aaa.asp,如果路径和文件存在,则开始转换。5、 转换后,怎么在网页里用flash播放就不多说了。6、具体实现的所有相关的文件、源码及示例,可以给我空间留言索取。彷豆丁百度文库 pdf格式文件转化为swf格式插件 收藏Convert 源码import java.io.Buf
5、feredReader;import java.io.File;import java.i o.ln putStreamReader;* author李义海* QQ:407009617* pdf格式文件转化为swf格式插件*插件要求:必须安装SWFTools工具*本例安装在:D:XSWFToolsWpdf2swf.exe可以根据自己的路径进行修改*/public class Convert /文件名:fileName文件路径(不带文件名):destPathpublic static Stri ng Con vertPdfToSwf(Stri ng fileName,Stri ng destPa
6、th)Stri ng destName = ,fileExt =;Stri ngBuffer comma nd = new Stri ngBuffer();fileExt = fileName.split(.)fileName.split(.).le ngth-1.toLowerCase(); tryFile file = new File(destPath+fileName);System.out.println(fileName=+fileName+n file=+file); if(!file.exists()判断源文件是否存在return 文件不存在;else if(!fileExt.
7、equals(pdf)判断文件是否是 pdf格式的文件return 文件不是pdf格式;elseString swftoolsPath = D:SWFTools;/ 获取 pdf 转 swf 工具的路径 if(!swftoolsPath.substring(swftoolsPath.length()-1, swftoolsPath.length().equals()swftoolsPath = swftoolsPath+;/在目录后加 if(!destPath.substring(destPath.length()-1, destPath.length().equals() destPath
8、= destPath+;/在目录后加 File destFile = new File(destPath);if(!destFile.exists()/ 目标文件路径如果不存在,则创建目录 destFile.mkdirs();destName = file.getName().substring(0, file.getName().length()-4)+.swf; /得到目标文件名称command.append(cmd /c ).append(swftoolsPath).append(pdf2swf.exe ).append( -o ).append(destPath).append(des
9、tName).append( -i ).append(destPath).append(fileName).append( -s flashversion=9 );Process pro = Runtime.getRuntime().exec(command.toString();BufferedReader buffer = new BufferedReader(new InputStreamReader(pro.getInputStream();while(buffer.readLine()!=null);return pro.toString();catch (Exception e)
10、e.printStackTrace(); return 转化失败 ; public static void main(String args) System.out.println(Convert.ConvertPdfToSwf(test.pdf,E:alipaydirect);使用:html, body height:100%; body margin:0; padding:0; overflow:auto; #flashContent display:; var swfVersionStr = 10.0.0;var xiSwfUrlStr = playerProductInstall.sw
11、f;var flashvars = SwfFile : escape(test.swf?v1.4.0rc2-refresh2),Scale : 1,ZoomTransition : easeOut,ZoomTime : 0.5,ZoomInterval : 0.1,FitPageOnLoad : false,FitWidthOnLoad : false,PrintEnabled : true,FullScreenAsMaxWindow : false,ProgressiveLoading : true,PrintToolsVisible : true,ViewModeToolsVisible
12、: false,ZoomToolsVisible : true,FullScreenVisible : true,NavToolsVisible : true,CursorToolsVisible : true,SearchToolsVisible : true,localeChain: zh_CN;var params = params.quality = high;params.bgcolor = #ffffff;params.allowscriptaccess = sameDomain; params.allowfullscree n = true;var attributes = ;a
13、ttributes.id = FlexPaperViewer;attributes .n ame = FlexPaperViewer;swfobject.embedSWF(FlexPaperViewer.swf, flashContent,650, 600,swfVersionStr, xiSwfUrlStr,flashvars, params, attributes);swfobject.createCSS(#flashContent, display:block;text-align:left;);需要安装flash 10及以上版本才可以浏览。var pageHost = (docume
14、nt.locati on. protocol = https:) ? https:/ : http:/);document.write();2010-09-28Java编程把Word转Pdf文章分类:Java编程Java代码我的word转pdf用到了一个虚拟的打印机,安装一个Adobe Acrobat 7.0 Professional就可以了 2。配置虚拟打印机,开始-打印机和传真-添加打印机-一步一步的配置就行了。3。点击配置的打印机右键首选项-设置一把不要发送字体到打印机取消勾选4。下载 Jacob.jar 包。把 jacob.jar 所对应的 Jacob.dll 放在 windows/s
15、ys32 下或者 jre/bin 下 5。代码部分 代码 通过代码将PDF转换成SWF来说,现在比较常用的一种方式就是利用 SWFTools 工具中的 pdf2swf (/ )。这个工具还是比较好用的。转换成的SWF文件质量也不错。默认分类2010-12-04 01:37:12 阅读276评论0 字号:大中小 订阅Java代码* PDF 转 SWF 工具* author tangs*/public class Converter public static int convertPDF2SWF(String sourcePath, String de
16、stPath, String fileName) throws lOException /目标路径不存在则建立目标路径File dest = new File(destPath);if (!dest.exists() dest.mkdirs();/源文件不存在则返回File source = new File(sourcePath);if (!source.exists() return 0;/调用pdf2swf命令进行转换String command = D:Program FilesWSWFToolsWpdf2swf.exe + -o + destPath + + fileName + -
17、s languagedir=D:xpdfxpdf-chinese-simplified -s flashversion=9 + sourcePath + ;Process pro = Runtime.getRuntime().exec(command);BufferedReader bufferedReader = new BufferedReader(new lnputStreamReader(pro.getlnputStream();while (bufferedReader.readLine() != null);try pro.waitFor(); catch (Interrupted
18、Exception e) / TODO Auto-generated catch blocke.printStackTrace();return pro.exitValue();public static void main(String args) throws IOException String sourcePath = c:test.pdf;String destPath = c:;String fileName = test.swf;Converter.convertPDF2SWF(sourcePath, destPath, fileName);* PDF 转 SWF 工具* aut
19、hor tangs*/public class Converter public static int convertPDF2SWF(String sourcePath, String destPath, String fileName) throwsIOException /目标路径不存在则建立目标路径File dest = new File(destPath);if (!dest.exists() dest.mkdirs();/源文件不存在则返回File source = new File(sourcePath);if (!source.exists() return 0;/调用 pdf2
20、swf 命令进行转换String command = D:Program FilesSWFToolspdf2swf.exe + -o + destPath + +fileName + -s languagedir=D:xpdfxpdf-chinese-simplified -s flashversion=9 + sourcePath + ;Process pro = Runtime.getRuntime().exec(command);BufferedReader bufferedReader = new BufferedReader(newInputStreamReader(pro.getI
21、nputStream();while (bufferedReader.readLine() != null);try pro.waitFor(); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();return pro.exitValue();public static void main(String args) throws lOException String sourcePath = c:test.pdf;String destPath = c:;String file
22、Name = test.swf;Converter.convertPDF2SWF(sourcePath, destPath, fileName);就这么简单的几行代码就可以了。但是在程序中遇到中文就会岀现意想不到的情况,这个也不例外。在转换中,我发现有些中文 PDF文件转换后会岀现乱码的现象,因此这里还要处理一下乱码的问题。看到上面代码中红色的一段了吗?这就是解决乱码的方法。这个方法是参考了这篇文章,感谢作者。1. 下载 XPDF : ftp:/,并解压到xpdf-chinese-simplified 目录下。2.下载字体:,并解压到xpdf-chinese-simplified/CMap目录
23、下。3.修改xpdf-chinese-simplified 目录下的add-to-xpdfrc文件。将里面的路径设为自己的路径4.参照上面的代码,在调用 pdf2swf命令中加入“slanguagedir=D:xpdfxpdf-chinese- simplified 参数。这样乱码的问题就解决了。乱码的问题通过XPDF抽取PDF中的中文文本1、下载XPDF,参考下载地址:2、下载字体 Gbsn00lp.ttf和gkai00mp.ttf,参考下载地址: 3、解压XPDF和字体,将字体放到 CMap目录下Java代码调用pdf2swf命令进行转换StringBuffer command =new
24、StringBuffer();command.append(0ffice2Pdf.swfToolsPath);command.append( -o ).append(destPath +fileName);文件输出目录指令command.append( -z -B ).append(0ffice2Pdf.swfViewer);文件压缩指令,文件导航指令command.append( -t ).append(sourcePath);/载入源文件指令command.append( -s languagedir=).append(0ffice2Pdf.swfLanguagedir);文件语言指令Pr
25、ocess pro = Runtime.getRuntime().exec(command.toString(); System.out.println(command.toString();调用pdf2swf命令进行转换StringBuffer command =new StringBuffer();command.append(Office2Pdf.swfToolsPath);command.append( -o ).append(destPath +fileName);/文件输出目录指令command.append( -z -B ).append(Office2Pdf.swfViewer
26、);/ 文件压缩指令,文件导航指令command.append( -t ).append(sourcePath);/载入源文件指令command.append( -s languagedir=).append(Office2Pdf.swfLanguagedir);/文件语言指令Process pro = Runtime.getRuntime().exec(command.toString();System.out.println(command.toString();上面是我的java代码,生成的command.toString()= “SWFToolspdf2swf.exe -o D:Les
27、18.swf -z -B D:SWFToolsrfxview.swf -tD:Les18.pdf -s languagedir=D:xpdf-chinese-simplified的字符串我直接在命令行执行的话,是能生成导航的,但是在java中执行却生成不了导航,请大家指教4、 修改add-to-xpdfrc文件中的地址,将路径该为本机安装路径5、修改xpdfrc文件,把地址修改为本机地址6、编写简单的程序7、运行调用JODConverter 将DOC文件转换为 PDF文件通过调用JODConverter将格式为WORD的DOC文件转换成PDF格式文件很容易,核心代码只有 几句:桌面新建文件夹数
28、据挖掘技术简介.doc);桌面新建文件夹数据挖掘技术简介.pdf);/ connect to an OpenO instance running on port 8100OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100); connection.connect();/ convertDocumentConverter converter = new OpenOfficeDocumentConverter(connection); converter.convert(inputFile,
29、outputFile);/ close the connectionconnection.disconnect();先至寸 下载 jodconverter-2.2.1.zip ,接压缩后,找到LIB文件夹,将里面的包配置到 Build Path中,启动OPEN OFFICE的服务就OK 了。至于要 实现其他格式转换,可以参看里面的 API。于是你打开任务管理器看看是否有office.bin和office.exe这两个进程,如果没有那就是因为 Openoffice的服务没有启动.你需要cmd到Openoffice主程序的安装目录下cd C:Program FilesOpenO
30、3program运行如下命令soffice -headless -accept=socket,host=,port=8100;urp; -nofirststartwizard如果没有保存哦.你再看任务管理器的进程是不是多出了office.bin和office.exe现在重新运行程序I have installed openofficeorg2.2 on redhat-linux. Java 1.4_11.A difference is that I do not start the service throught the java client as mentioned i
31、n this thread.I start it from the console usingsoffice -headless -accept=socket,host=localhost,port=8100;urp;adding StartOffice.ServiceManager also doesnt make a difference.Also tried adding -nofirststartwizard.no luckNetstat doesnt list this.When I tried opening the application from the menu (GUI),
32、 there is no response.Hence I guess, there is something wrong or incomplete in the installation.I had installed using the folllowing commands:rpm -Uvh -prefix /usr/openoffice/ *.rpmcd desktop-integration/rpm -Uvh -redhat-menus-2.2-9153.noarch.rpmSince Im not using the default path, but
33、 /usr/openoffice/, not sure if path has to be updated in some config file.调用swftools将中文PDF转化为SWF1、 下载 swftools,参考下载地址:/download.html,并安装 SWFTools ;2、参照通过XPDF抽取PDF中的中文文本中,对XPDF做相应配置,避免转化过程中产生中 文乱码;3、通过命令提示符,进入SWFTools 安装目录,启动转换命令 D:Program FilesSWFToolspdf2swf -o G:testreadtest.
34、swf -t G:testreadtest.pdf -s languagedir=G:testreadxpdfchinese-simplified4、转换结果文档转换过程讲解年前因为公司技术文档需要保密,所以一直在研究在线文档这类知识,网上有很多关于这方面的资料,我大概总结了一下:主要有从can be in gblog上找到的,近两年出现了许多以“经验交易”为核心的文档平台,如 豆丁网、百度文库、星期八等网站。这些网站将文档(知识)存放在网站(平台)上,供用 户浏览、讨论、下载,配以良好的积分体系和金钱激励(运营),完美的协调好知识分享与知识传播之间的微妙关系。这样即有Web2.0的用户互动,
35、也有 Web3.0的价值分配,对社会也是非常好的资源重用,是非常棒的一种运营模式。从技术层面讲,这类网站的创新主要有文档预览、知识商城和SNS三个块。今年初公司也决定在公司内部引入这种模式,以实现公司内部文档特别是售前方案的分享,很荣幸, 我被安排为此项目的开发经理,也专门研究了文档在线预览的技术。如今项目已经上线将近百天,也是时候整理一下思路,这篇博客主要就是分析一些文档在线预览的技术细节,其实 网上已经有很多类似的文章, 但大多没有说得很清楚, 也比较零乱, 所以我想整理一个完整 的文章来。 文章内容将会涉及: 总体思路、 预览实现细节、 缩略图实现、 百度阅读器使用等。文档预览即文档以
36、flash 的形式在网页上展示,所以要解决两个问题:以什么格式展示 flash 、文档如何转化为符合格式的flash。展示 flash 有两种方式, 一种是直接生成好一个完整的 flash 展示出来, 一种是用一个播 放器来播放另外一个文档flash。第一种方式可以用 SWFTools的工具直接将pdf转化成一个整体的 flash 展示,但这种方式的 flash 较大,且不容易控制,故用得较少。第二种方式是重 点,首先需要了解的是一个开源的flexpaper播放器,它可以播放一帧一页的flash;在flexpaper的基础上, 如果遇到大文档则会出现速度和性能的问题, 这个时候需要像百度文库、
37、 豆丁一 样修改flexpaper,让它支持一次仅读取指定页数的flash ;如果文档安全级别较高,不允许下载查看,则需要给 flexpaper 加上加密解密算法;如果需要登录用户才能查看,则要让 flexpaper 有登录 UI 。转化文档为flash的思路有一条,但有多种实现方式。一般文档需要先转化为pdf,再从pdf转化为flash。转化为pdf的方法有很多,例如使用虚拟打印机、使用MicrosoftOffice的API、使用OpenOffice转化等,不过转化的过程中,可能由于文档有误、损坏、加密等原因 造成转化失败。从pdf转化为flash就简单了许多,直接使用SWFTools的pd
38、f2swf即可实现 多种方式的转化。下图是文档转化到 swf 的一个流程, 其中 type 是文档的一个状态标识 (0 表示未处理过 的文档, 1表示已生成 pdf, 2表示已生成 flash, -1表示不受支持的文档格式, -2 表示转化 为 pdf 失败, -3 表示转化为 flash 失败)步鼻一:生成pdf步算二:生成伽血V 成功?iSStype为刁保存swf urtififjtype 为 2个人总结:经过采用这种方法后,实现文档在线阅读,但是,其他文档转flash格式非常麻烦,正常文件一般没什么大问题,但是有异常的pdf文件,就会出现很多问题,不能转换成功。所以,个人估计,百度,豆丁
39、采用的应该是用播放器方式,不是我们这种常规方式。在总结抽取word,pdf的一种方法。其实jacob是一个bridage,连接java和com或者Win32函数的一个中间件,jacob并不能直接抽取 word,excel等文件,需要自己写dll哦,不过已经有为你写好的了,就是 jacob的作者一并提供了。jacob jar 与 dll 文件下载:下载了 jacob并放到指定的路径之后(dll放到path,jar文件放到classpath),就可以写你自己的抽取程序了, 下面是一个简单的例子:import java.io.File;import .*;import com.jacob.activ
40、eX.*;/* Title: pdf extraction* version 1.0,who use this example pls remain the declare*/public class FileExtracterpublic static void main(String args) ActiveXComponent component = new ActiveXComponent(Word.Application);String inFile = c:test.doc;String tpFile = c:temp.htm;String tFile = c:temp.xml;b
41、oolean flag = false;try component.setProperty(Visible, new Variant(false);Object wordacc = component.getProperty(document . ).toDispatch();Object wordfile = Dispatch.invoke(wordacc,Open, Dispatch.Method,new ObjectinFile,new Variant(false), new Variant(true),new int1 ).toDispatch();Dispatch.invoke(wo
42、rdfile,SaveAs, Dispatch.Method, new ObjecttpFile,new Variant, new int1);Variant f = new Variant(false);Dispatch.call(wordfile, Close, f);flag = true; catch (Exception e) e.printStackTrace(); finally component.invoke(Quit, new Variant );通过openoffice将各类文档转换为pdf格式(2010-08-02 09:03:43)转载E3标签:it之前找了一种方式是
43、通过 jacob调用adobe PDF虚拟打印机生成PDF,但多人同时调用时有同步问题; 在同事的提醒下找了下面的实现方式:1、 安装 OpenOffice 3 :下载路径:/new/zh_cn/downloads.html2、用以下命令启动 OpenOffice服务cd C:Program FilesOpe nO 3programsoffice -headless -accept=socket,host=,port=8100;urp; -no firststartwizard3、附上我写的 DEMO,第三方包:
44、JODConverter v2.2.1JODConverterDoc2PDF rar (1.7 MB)官方網站: nsource/jodc on verter下載地點: nsource/jodc on verter http:/zh.ope no /new/zh_tw/dow nloads.html目前版本:JODConverter v2.2.1, OpenOffice v3.0.0使用需求:JDK1.4以上,安裝OpenOffice v2.0.3以上基本簡介:JODConverter主要的功能是用來做各種檔案的轉換.目前測試過,Word,Excel,PowerPoint轉P
45、DF都是沒問題的.因爲JODConverter是透過OpenOffice來做轉換,所以使用前需要先安裝 OpenOffice,並且將 OpenOffice的Service啟動,才可以使用.使用教學:Step1: 安裝 Ope nOfficeStep2:啟動 OpenOffice Service1 cd C:Program FilesOpe nO 3program2 soffice -headless -accept=socket,host=,port=8100;urp; -no firststartwizardStep3將JODConverter的Jar檔放
46、進專案中的Library,請檢查你的專案是否包含以下的Jar檔:jodc on verter-2.2.1.jar jurt-2.3.0.jar xstream-1.2.2.jar ridl-2.3.0.jarcom mon s-io-1.3.1.jarjuh-2.3.0.jar slf4j-api-1.4.3.jar un oil-2.3.0.jar slf4j-jdk14-1.4.3.jarStep4:準備一個 word 檔放在 c:/document.docStep5:執行以下程式import java.io.File;import com.artofsolv in g.jodc on v
47、erter.Docume ntCon verter;import com.artofsolv in g.jodc on verter.ope no ffice.c onnection. Ope nO fficeC onnection;import com.artofsolv in g.jodc on verter.ope no ffice.c onnection. SocketOpe nO fficeC onn ecti on;import com.artofsolv in g.jodc on verter.ope no ffice.c on verter.Ope nO fficeDocume
48、 ntCon verter;public class JodDemo public static void main(String args) throws ExceptionFile in putFile = new File(c:/docume nt.doc);File outputFile = new File(c:/docume nt.pdf);/ conn ect to an Ope nO in sta nee running on port 8100OpenO fficeC onnection connection = new SocketOpe nO ffic
49、eC onn ecti on( 8100);conn ecti on.conn ect();/ convertDocume ntCon verter con verter = new OpenO fficeDocume ntCon verter(c onnection);con verter.c on vert(i nputFile, outputFile);/ close the connectionconn ecti on. disc onn ect();程式說明:程式的部份相當簡潔,特別要注意的地方是第12行連線的port必須與你啟動OpenOffice的Port相同,另外JODConverter預設是用副檔名作文件種類的判斷,所以副檔名必須要正確才行.如果副檔名比較特別的話,就必須在convert()的時候強制指定 Document Type.心得:JODConverter使用起來相當方便,官網也提供 War檔讓JODConverter變
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门面店转让合同(2024版)
- 正规完整版土地转让协议书标准版可打印
- 销售代理合同书
- 塔吊使用效率提升2024年度咨询服务合同
- 铝合金高速列车制造与供应合同2024
- 二零二四年度工程合同中的数据保护和信息安全2篇
- 二零二四年度高端生物医药产品研发与生产合同
- 礼品定制采购合同
- 辅料采购合同模板
- 蒙文课件教学课件
- 现观庄严论原文及译文
- 烟花爆竹批发仓库建设标准(附条文说明)
- 有限元基础及应用课件
- 村级财务培训考试试题
- 五矿锡矿山项目法律组尽职调查报告
- 班级文化建设班主任发言稿
- 中国传统文化知识考试题库(300题)
- 2024年电梯安装质量手册、程序文件含质量记录表符合特种设备许可规范TSG07-2019
- 浙江省高校师资培训-伦理学题库(精简)
- 人民防空工程结构大样图集RFJ05-2009-JG
- 外科护理查房记录(二十篇)
评论
0/150
提交评论