浅谈print2flash的在线预览转换应用(原创)

print2flash是一种在线预览转换工具,可以将doc、docx、xls、pdf、ppt等格式的文档转换成flash文件进行预览,因为之前使用的flash2paper只支持32为操作系统,不支持64为win7,所以才考虑用print2flash。

在使用过程中遇到了很多问题,下面我将遇到的问题总结一下。

1、安装以后,进行pdf转换出现系统错误,code 1155 没有应用程序与当前的操作的文件相关联,百度以后才发现是注册表的问题,

运行regedit进入注册表,删除注册表中的
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.PDF 项,然后将以下内容保存为 REG 文件双击导入:

  1 Windows Registry Editor Version 5.00
  2
  3 [HKEY_CLASSES_ROOT\.pdf]
  4 "Content Type"="application/pdf"
  5 @="AcroExch.Document"
  6
  7 [HKEY_CLASSES_ROOT\.pdf\OpenWithList]
  8 @=""
  9
 10 [HKEY_CLASSES_ROOT\.pdf\OpenWithList\AcroRd32.exe]
 11 @=""
 12
 13 [HKEY_CLASSES_ROOT\.pdf\PersistentHandler]
 14 @="{F6594A6D-D57F-4EFD-B2C3-DCD9779E382E}"
 15
 16 [HKEY_CLASSES_ROOT\.pdf\ShellEx]
 17
 18 [HKEY_CLASSES_ROOT\.pdf\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}]
 19 @="{DC6EFB56-9CFA-464D-8880-44885D7DC193}"
 20
 21 [HKEY_CLASSES_ROOT\AcroExch.Document.7]
 22 "FriendlyTypeName"="PDF 文档"
 23 @="Adobe Acrobat Document"
 24 "EditFlags"=hex:00,00,01,00
 25 "BrowseInPlace"="1"
 26
 27 [HKEY_CLASSES_ROOT\AcroExch.Document.7\CLSID]
 28 @="{B801CA65-A1FC-11D0-85AD-444553540000}"
 29
 30 [HKEY_CLASSES_ROOT\AcroExch.Document.7\DefaultIcon]
 31 @="C:\\Windows\\Installer\\{AC76BA86-7AD7-2052-7B44-A92000000001}\\PDFFile_8.ico,0"
 32
 33 [HKEY_CLASSES_ROOT\AcroExch.Document.7\Insertable]
 34 @=""
 35
 36 [HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol]
 37
 38 [HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing]
 39
 40 [HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\RequestDataFormats]
 41 @="NoteshNote"
 42
 43 [HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\server]
 44 @="\"C:\\Program Files\\Adobe\\Reader 9.0\\Acrobat\\Acrobat.exe\""
 45
 46 [HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\SetDataFormats]
 47 @="NotesDocInfo"
 48
 49 [HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\verb]
 50
 51 [HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\verb\0]
 52 @="&Open"
 53
 54 [HKEY_CLASSES_ROOT\AcroExch.Document.7\shell]
 55 @="Read"
 56
 57 [HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Open]
 58
 59 [HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Open\command]
 60 @="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" \"%1\""
 61
 62 [HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Print]
 63
 64 [HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Print\command]
 65 @="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" /p /h \"%1\""
 66
 67 [HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Printto]
 68
 69 [HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Printto\command]
 70 @="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" /t \"%1\" \"%2\" \"%3\" \"%4\""
 71
 72 [HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Read]
 73 @="使用 Adobe Reader 9 打开"
 74
 75 [HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Read\command]
 76 @="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" \"%1\""
 77
 78 [HKEY_CLASSES_ROOT\AcroExch.Document.7\Shellex]
 79
 80 [HKEY_CLASSES_ROOT\AcroExch.Document.7\Shellex\PropertySheetHandlers]
 81 @="InfoPage"
 82
 83 [HKEY_CLASSES_ROOT\AcroExch.Document.7\Shellex\PropertySheetHandlers\InfoPage]
 84 @="{F9DB5320-233E-11D1-9F84-707F02C10627}"
 85
 86 [HKEY_CLASSES_ROOT\AcroExch.Document.7\Shellex\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
 87 @="{F9DB5320-233E-11D1-9F84-707F02C10627}"
 88
 89 [HKEY_CLASSES_ROOT\AcroExch.Document]
 90 "FriendlyTypeName"="PDF 文档"
 91 "EditFlags"=hex:00,00,01,00
 92 "BrowseInPlace"="1"
 93 @="Adobe Acrobat Document"
 94
 95 [HKEY_CLASSES_ROOT\AcroExch.Document\CLSID]
 96 @="{B801CA65-A1FC-11D0-85AD-444553540000}"
 97
 98 [HKEY_CLASSES_ROOT\AcroExch.Document\CurVer]
 99 @="AcroExch.Document.7"
100
101 [HKEY_CLASSES_ROOT\AcroExch.Document\DefaultIcon]
102 @="C:\\Windows\\Installer\\{AC76BA86-7AD7-2052-7B44-A92000000001}\\PDFFile_8.ico,0"
103
104 [HKEY_CLASSES_ROOT\AcroExch.Document\Shell]
105
106 [HKEY_CLASSES_ROOT\AcroExch.Document\Shell\open]
107
108 [HKEY_CLASSES_ROOT\AcroExch.Document\Shell\open\Command]
109 @="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" \"%1\""

问题搞定。

2、关于引用dll的问题

这里要将jawin.dll添加到java.library.path中,至于如何添加请百度我就不详细说了。

3、在工程项目中添加jawin.jar包。

4、写测试类TestPrint2Flash

 1 import java.io.*;
 2 import org.jawin.DispatchPtr;
 3 import org.jawin.win32.Ole32;
 4 public class TestPrint2Flash{
 5
 6     public static void main(String[] args) throws java.io.IOException{
 7      getswf("F:\\自己动手写网络爬虫.pdf");
 8     }
 9     public static void getswf(String args) throws IOException{
10       if (args.length() > 0){
11            try{
12                 Ole32.CoInitialize();
13                 // Create Server object
14                 DispatchPtr p2f = new DispatchPtr("Print2Flash3.Server");
15
16                 // Setup interface and protection options
17                 //DispatchPtr defProfile = (DispatchPtr)p2f.get("DefaultProfile");
18                 DispatchPtr DefBPOpt = (DispatchPtr)p2f.get("DefaultBatchProcessingOptions");
19                 //p2f.invoke("SetP2FPrinterAsDefault");
20                 //defProfile.put("ApplicationType", P2FConst.MSEXCEL|P2FConst.MSPOWERPOINT|P2FConst.MSWORD|P2FConst.ACROBAT);
21                 //defProfile.put("InterfaceOptions",P2FConst.INTLOGO | P2FConst.INTZOOMSLIDER | P2FConst.INTPREVPAGE | P2FConst.INTGOTOPAGE | P2FConst.INTNEXTPAGE);
22                 //DefBPOpt.put("ProtectionOptions", P2FConst.PROTDISPRINT | P2FConst.PROTENAPI);
23                 DefBPOpt.put("BeforePrintingTimeout", 6000);
24                 DefBPOpt.put("PrintingTimeout", 60000);
25                 DefBPOpt.put("KeepAutomationAppRef",P2FConst.MSEXCEL|P2FConst.MSPOWERPOINT|P2FConst.MSWORD|P2FConst.ACROBAT);
26                 DefBPOpt.put("KillAllAutomationProcesses",2 );
27                 DefBPOpt.invoke("ApplyChanges");
28                 // Convert document
29                 p2f.invoke("ConvertFile", new String(args));
30                 System.out.println("Conversion completed successfully");
31            }catch (Exception e){
32                    System.out.println("An error occurred at conversion: "+e.toString());
33            }finally{
34                 try {
35                  Ole32.CoUninitialize();
36                 }catch (Exception e){
37
38                 }
39            }
40        }else{
41               System.out.println("Please provide a document file name as a parameter");
42               System.out.println("Press Enter to exit...");
43               System.in.read();
44
45        }
46 }
47
48  

定义常量

(可能定义的常量与测试代码中的有出入不过不影响使用,这些常量可以查询API帮助文档)

  1 public class P2FConst {
  2  // APPLICATIONTYPE enumeration constants
  3  public static final int MSEXCEL = 0x00000001;
  4  public static final int MSWORD = 0x00000002;
  5  public static final int MSPOWERPOINT = 0x00000004;
  6  public static final int ACROBAT = 0x00000008;
  7
  8  // IMAGEFORMAT enumeration constants
  9  public static final int JPEG = 1;
 10  public static final int PNG = 2;
 11
 12  // IMGBEHAVIOR enumeration constants
 13  public static final int STRETCH = 1;
 14  public static final int TILE = 2;
 15
 16  // INTERFACE_OPTION enumeration constants
 17  public static final int INTLOGO = 0x00000001;
 18  public static final int INTDRAG = 0x00000002;
 19  public static final int INTSELTEXT = 0x00000004;
 20  public static final int INTZOOMSLIDER = 0x00000008;
 21  public static final int INTZOOMBOX = 0x00000010;
 22  public static final int INTFITWIDTH = 0x00000020;
 23  public static final int INTFITPAGE = 0x00000040;
 24  public static final int INTPREVPAGE = 0x00000080;
 25  public static final int INTGOTOPAGE = 0x00000100;
 26  public static final int INTNEXTPAGE = 0x00000200;
 27  public static final int INTSEARCHBOX = 0x00000400;
 28  public static final int INTSEARCHBUT = 0x00000800;
 29  public static final int INTROTATE = 0x00001000;
 30  public static final int INTPRINT = 0x00002000;
 31  public static final int INTNEWWIND = 0x00004000;
 32  public static final int INTHELP = 0x00008000;
 33  public static final int INTBACKBUTTON = 0x00030000;
 34  public static final int INTBACKBUTTONAUTO = 0x00010000;
 35  public static final int INTFORWARDBUTTON = 0x000C0000;
 36  public static final int INTFORWARDBUTTONAUTO = 0x00040000;
 37  public static final int INTFULLSCREEN = 0x00300000;
 38  public static final int INTFULLSCREENAUTO = 0x00100000;
 39
 40
 41  // METADATAPORMAT enumeration constants
 42  public static final int XML = 1;
 43  public static final int TEXT = 2;
 44
 45  // OUTPUTFORMAT enumeration constants
 46  public static final int SINGLEFILE = 1;
 47  public static final int SINGLEFILEPERPAGE = 2;
 48  public static final int EXTVIEWER = 4;
 49
 50  // PAPER_ORIENTATION enumeration constants
 51  public static final int ORIENT_PORTRAIT = 1;
 52  public static final int ORIENT_LANDSCAPE = 2;
 53
 54  // PROTECTION_OPTION enumeration constants
 55  public static final int PROTDISPRINT = 0x00000001;
 56  public static final int PROTDISTEXTCOPY = 0x00000002;
 57  public static final int PROTENAPI = 0x00000004;
 58
 59  // ThreeStateFlag enumeration constants
 60  public static final int TSF_NO = 0;
 61  public static final int TSF_YES = 1;
 62  public static final int TSF_AUTO = 2;
 63
 64  // TOOLBARIMAGE enumeration constants
 65  public static final int IMGLOGO = 1;
 66  public static final int IMGDRAG = 2;
 67  public static final int IMGSELTEXT = 3;
 68  public static final int IMGZOOMRULER = 4;
 69  public static final int IMGZOOMFOCUSNADLE = 5;
 70  public static final int IMGZOOMNADLE = 6;
 71  public static final int IMGFITWIDTH = 7;
 72  public static final int IMGFITPAGE = 8;
 73  public static final int IMGPREVPAGE = 9;
 74  public static final int IMGNEXTPAGE = 10;
 75  public static final int IMGSEARCHBUT = 11;
 76  public static final int IMGROTATE = 12;
 77  public static final int IMGPRINT = 13;
 78  public static final int IMGNEWWIND = 14;
 79  public static final int IMGHELP = 15;
 80  public static final int IMGMORE = 16;
 81  public static final int IMGTOOLBARBGR = 17;
 82  public static final int IMGBACK = 18;
 83  public static final int IMGFORWARD = 19;
 84  public static final int IMGFULLSCREEN = 20;
 85  public static final int IMGEXITFULLSCREEN = 21;
 86
 87  // TEMPLATETYPE enumeration constants
 88  public static final int TEMPLATE_CUSTOM = 1;
 89  public static final int TEMPLATE_ACTIONSCRIPT2 = 2;
 90  public static final int TEMPLATE_ACTIONSCRIPT3 = 3;
 91
 92  // WATERMARKANCHOR enumeration constants
 93  public static final int CENTER = 0;
 94  public static final int LEFTCENTER = 1;
 95  public static final int RIGHTCENTER = 2;
 96  public static final int TOPCENTER = 16;
 97  public static final int BOTTOMCENTER = 32;
 98  public static final int LEFTTOP = 17;
 99  public static final int RIGHTTOP = 18;
100  public static final int LEFTBOTTOM = 33;
101  public static final int RIGHTBOTTOM = 34;
102 }

5、定制自己想要的转换功能

这一点可以查看安装后的帮助文档,虽然是英文的,但是仔细看一看就能弄明白,API写的非常清楚

时间: 2024-08-23 11:33:50

浅谈print2flash的在线预览转换应用(原创)的相关文章

Atitit.office word  excel  ppt pdf 的web在线预览方案与html转换方案 attilax 总结

Atitit.office word  excel  ppt pdf 的web在线预览方案与html转换方案 attilax 总结 1. office word  excel pdf 的web预览要求1 1.1. 显示效果要好1 1.2. 可以自定义显示界面1 1.3. 不需要控件,兼容性好1 1.4. 支持编辑操作1 2. 纯html预览解决之道(自由的格式)1 3. 转换swf flash方案2 4. 转换pdf方式..更多的浏览器已经直接支持pdf格式查看2 5. 控件方式2 6. Hyb

java将office文档pdf文档转换成swf文件在线预览

java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org   openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文本文档),impress(演示文稿),Calc(电子表格),Draw(绘图),Math(公式),base(数据库) 笔者下载的是openoffice.org 3.3.0.下载完直接安装即可.      但是,我们还需要启动openof

实战动态PDF在线预览及带签名的PDF文件转换

开篇语: 最近工作需要做一个借款合同,公司以前的合同都是通过app端下载,然后通过本地打开pdf文件,而喜欢创新的我,心想着为什么不能在线H5预览,正是这个想法,说干就干,实践过程总是艰难的,折腾了3,4天的时间,熬了两个凌晨3,4点,其中的艰辛.以及各中的曲折.压力只有自己能体会,项目上线后心里想着我要写一篇博文,一是总结一下经验,其次就是和大家分享自己这一路走来的的心得体会,欢迎吐槽!,废话不多说,来点干货! PDF在线预览实现: 8个实现在线浏览PDF文件的实用插件,笔者选择pdf.js,

邮件附件在线预览——HYF数据格式转换软件HTML Filter

邮件附件在线预览,就是当收到邮件带有附件时,尤其是超大附件,可以不用下载邮件中的附件,通过web页面,以在线的方式读取其中的内容.此功能方便用户直接查看附件,节省下载的时间,同时也在很多时候极大的方便了没有安装相应软件的用户,对于异地登录邮箱用户,更是一项不错的服务. HTML Filter V1是由北京红樱枫软件有限公司依据HTML Ver 4.01/CSS式样,研制和开发的MS Office系列文档到HTML转换的通用程序库.便于用户实现对多种文档的统一管理,编辑,检索和浏览,能够完美的实现

office转html文档在线预览

要想实现office文档在线预览,可以使用红樱枫软件公司开发的数据格式转换软件HTML Filter,实现MS Office系列文档到HTML的快速转换,通过浏览器浏览HTML的内容.该产品可以将 word转html, excel转html, ppt转html,方便用户在不方便下载附件的时候,可以直接在线预览文档内容,应用在邮箱文档附件预览.云存储.云网盘的文档预览等方面. 本产品采用了先进的多语言.多平台.多线程的设计理念,支持多国语言,多种操作系统,提供了多种形式的API功能接口,便于用户使

邮件附件在线预览——HTML Filter

邮件附件在线预览,就是当收到邮件带有附件时,尤其是超大附件,可以不用下载邮件中的附件,通过web页面,以在线的方式读取其中的内容.此功能方便用户直接查看附件,节省下载的时间,同时也在很多时候极大的方便了没有安装相应软件的用户,对于异地登录邮箱用户,更是一项不错的服务. HYF数据格式转换软件HTML Filter便于用户实现对多种文档的统一管理,编辑,检索和浏览,能够完美的实现邮件附件在线预览功能.本产品采用了先进的多语言.多平台.多线程的设计理念,支持多国语言,多种操作系统,提供了多种形式的A

WEB在线预览PDF

这是我在博客园发表的第一篇文章.以后会陆续把在线预览其他格式文档的解决方案发表出来. 解决思路:把pdf转换成html显示. 在线预览pdf我暂时了解3种解决方案,欢迎大家补充. 方案一: 利用pdf2html软件将PDF转换成HTML. 用法: PDF2HTML [选项] <PDF 文件> [<HTML 文件>] -f <页数>   : 转换开始页-l <页数>  : 转换结束页-z <缩放率>        : 设置转换缩放率,从 50 到

window下实现在线预览功能

window下实现在线预览功能 最近用到文档在线预览功能,之前没接触过,一切从零开始,整了一段时间终于实现,现在把方法分享给大家! 一.主要思路 先将其他格式的文档(office文档.txt.图片等等)通过OpenOffice转换成PDF格式文档,然后通过swftools(http://www.swftools.org/)将PDF格式文档转换为swf格式文档,最后通过flexpaper显示swf格式的文档,从而实现预览多种格式的文档. 使用到的工具自己从网上下载,很好找的. 二.实现过程 1.其

[Asp.net]常见word,excel,ppt,pdf在线预览方案(转)

引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点:Office文档链接在浏览器中打开,会有如上图的提示,需用户自己选择打开或者保存功能,如果客户电脑上安装迅雷下载软件,会启动迅雷下载,用户体验不好. 方案二 office文档转html,首先引入com组件中office库,然后在程序集扩展中引入word,excel,ppt的dll. 然后F6生成,会