`

浅谈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 文件双击导入:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.pdf]
"Content Type"="application/pdf"
@="AcroExch.Document"

[HKEY_CLASSES_ROOT\.pdf\OpenWithList]
@=""

[HKEY_CLASSES_ROOT\.pdf\OpenWithList\AcroRd32.exe]
@=""

[HKEY_CLASSES_ROOT\.pdf\PersistentHandler]
@="{F6594A6D-D57F-4EFD-B2C3-DCD9779E382E}"

[HKEY_CLASSES_ROOT\.pdf\ShellEx]

[HKEY_CLASSES_ROOT\.pdf\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}]
@="{DC6EFB56-9CFA-464D-8880-44885D7DC193}"

[HKEY_CLASSES_ROOT\AcroExch.Document.7]
"FriendlyTypeName"="PDF 文档"
@="Adobe Acrobat Document"
"EditFlags"=hex:00,00,01,00
"BrowseInPlace"="1"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\CLSID]
@="{B801CA65-A1FC-11D0-85AD-444553540000}"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\DefaultIcon]
@="C:\\Windows\\Installer\\{AC76BA86-7AD7-2052-7B44-A92000000001}\\PDFFile_8.ico,0"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\Insertable]
@=""

[HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol]

[HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing]

[HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\RequestDataFormats]
@="NoteshNote"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\server]
@="\"C:\\Program Files\\Adobe\\Reader 9.0\\Acrobat\\Acrobat.exe\""

[HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\SetDataFormats]
@="NotesDocInfo"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\verb]

[HKEY_CLASSES_ROOT\AcroExch.Document.7\protocol\StdFileEditing\verb\0]
@="&Open"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\shell]
@="Read"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Open]

[HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Open\command]
@="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" \"%1\""

[HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Print]

[HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Print\command]
@="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" /p /h \"%1\""

[HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Printto]

[HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Printto\command]
@="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" /t \"%1\" \"%2\" \"%3\" \"%4\""

[HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Read]
@="使用 Adobe Reader 9 打开"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Read\command]
@="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" \"%1\""

[HKEY_CLASSES_ROOT\AcroExch.Document.7\Shellex]

[HKEY_CLASSES_ROOT\AcroExch.Document.7\Shellex\PropertySheetHandlers]
@="InfoPage"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\Shellex\PropertySheetHandlers\InfoPage]
@="{F9DB5320-233E-11D1-9F84-707F02C10627}"

[HKEY_CLASSES_ROOT\AcroExch.Document.7\Shellex\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{F9DB5320-233E-11D1-9F84-707F02C10627}"

[HKEY_CLASSES_ROOT\AcroExch.Document]
"FriendlyTypeName"="PDF 文档"
"EditFlags"=hex:00,00,01,00
"BrowseInPlace"="1"
@="Adobe Acrobat Document"

[HKEY_CLASSES_ROOT\AcroExch.Document\CLSID]
@="{B801CA65-A1FC-11D0-85AD-444553540000}"

[HKEY_CLASSES_ROOT\AcroExch.Document\CurVer]
@="AcroExch.Document.7"

[HKEY_CLASSES_ROOT\AcroExch.Document\DefaultIcon]
@="C:\\Windows\\Installer\\{AC76BA86-7AD7-2052-7B44-A92000000001}\\PDFFile_8.ico,0"

[HKEY_CLASSES_ROOT\AcroExch.Document\Shell]

[HKEY_CLASSES_ROOT\AcroExch.Document\Shell\open]

[HKEY_CLASSES_ROOT\AcroExch.Document\Shell\open\Command]
@="\"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe\" \"%1\""

问题搞定。

2、关于引用dll的问题

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

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

4、写测试类TestPrint2Flash

import java.io.*;

import org.jawin.DispatchPtr;
import org.jawin.win32.Ole32;

public class TestPrint2Flash
{

 public static void main(String[] args) throws java.io.IOException
 {
 //getswf("F:\\111.pdf");
 getswf("F:\\自己动手写网络爬虫.pdf");
 
 
 //getswfboo("F:\\123\\222.xls","F:\\123\\swf\\222.swf");
 }
 
 public static void getswf(String args) throws IOException{
  
  if (args.length() > 0)
  {
   try
   {
    Ole32.CoInitialize();

    // Create Server object
    DispatchPtr p2f = new DispatchPtr("Print2Flash3.Server");

    // Setup interface and protection options
    //DispatchPtr defProfile = (DispatchPtr)p2f.get("DefaultProfile");
    DispatchPtr DefBPOpt = (DispatchPtr)p2f.get("DefaultBatchProcessingOptions");
    //p2f.invoke("SetP2FPrinterAsDefault");
    //defProfile.put("ApplicationType", P2FConst.MSEXCEL|P2FConst.MSPOWERPOINT|P2FConst.MSWORD|P2FConst.ACROBAT);
    //defProfile.put("InterfaceOptions",P2FConst.INTLOGO | P2FConst.INTZOOMSLIDER | P2FConst.INTPREVPAGE | P2FConst.INTGOTOPAGE | P2FConst.INTNEXTPAGE);
    //DefBPOpt.put("ProtectionOptions", P2FConst.PROTDISPRINT | P2FConst.PROTENAPI);
    DefBPOpt.put("BeforePrintingTimeout", 6000);
    DefBPOpt.put("PrintingTimeout", 60000);
    DefBPOpt.put("KeepAutomationAppRef",P2FConst.MSEXCEL|P2FConst.MSPOWERPOINT|P2FConst.MSWORD|P2FConst.ACROBAT);
    DefBPOpt.put("KillAllAutomationProcesses",2 );
    DefBPOpt.invoke("ApplyChanges");
    // Convert document
    p2f.invoke("ConvertFile", new String(args));
    System.out.println("Conversion completed successfully");
   }
   catch (Exception e)
   {
    System.out.println("An error occurred at conversion: "+e.toString());
   }
   finally
   {
    try {
     Ole32.CoUninitialize();
    }
    catch (Exception e)
    {
     
    }
   }
  }
  else System.out.println("Please provide a document file name as a parameter");
  System.out.println("Press Enter to exit...");
  System.in.read();
  
 }

 

定义常量

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

public class P2FConst {
 // APPLICATIONTYPE enumeration constants
 public static final int MSEXCEL = 0x00000001;
 public static final int MSWORD = 0x00000002;
 public static final int MSPOWERPOINT = 0x00000004;
 public static final int ACROBAT = 0x00000008;

 // IMAGEFORMAT enumeration constants
 public static final int JPEG = 1;
 public static final int PNG = 2;

 // IMGBEHAVIOR enumeration constants
 public static final int STRETCH = 1;
 public static final int TILE = 2;

 // INTERFACE_OPTION enumeration constants
 public static final int INTLOGO = 0x00000001;
 public static final int INTDRAG = 0x00000002;
 public static final int INTSELTEXT = 0x00000004;
 public static final int INTZOOMSLIDER = 0x00000008;
 public static final int INTZOOMBOX = 0x00000010;
 public static final int INTFITWIDTH = 0x00000020;
 public static final int INTFITPAGE = 0x00000040;
 public static final int INTPREVPAGE = 0x00000080;
 public static final int INTGOTOPAGE = 0x00000100;
 public static final int INTNEXTPAGE = 0x00000200;
 public static final int INTSEARCHBOX = 0x00000400;
 public static final int INTSEARCHBUT = 0x00000800;
 public static final int INTROTATE = 0x00001000;
 public static final int INTPRINT = 0x00002000;
 public static final int INTNEWWIND = 0x00004000;
 public static final int INTHELP = 0x00008000;
 public static final int INTBACKBUTTON = 0x00030000;
 public static final int INTBACKBUTTONAUTO = 0x00010000;
 public static final int INTFORWARDBUTTON = 0x000C0000;
 public static final int INTFORWARDBUTTONAUTO = 0x00040000;
 public static final int INTFULLSCREEN = 0x00300000;
 public static final int INTFULLSCREENAUTO = 0x00100000;


 // METADATAPORMAT enumeration constants
 public static final int XML = 1;
 public static final int TEXT = 2;

 // OUTPUTFORMAT enumeration constants
 public static final int SINGLEFILE = 1;
 public static final int SINGLEFILEPERPAGE = 2;
 public static final int EXTVIEWER = 4;

 // PAPER_ORIENTATION enumeration constants
 public static final int ORIENT_PORTRAIT = 1;
 public static final int ORIENT_LANDSCAPE = 2;

 // PROTECTION_OPTION enumeration constants
 public static final int PROTDISPRINT = 0x00000001;
 public static final int PROTDISTEXTCOPY = 0x00000002;
 public static final int PROTENAPI = 0x00000004;

 // ThreeStateFlag enumeration constants
 public static final int TSF_NO = 0;
 public static final int TSF_YES = 1;
 public static final int TSF_AUTO = 2;

 // TOOLBARIMAGE enumeration constants
 public static final int IMGLOGO = 1;
 public static final int IMGDRAG = 2;
 public static final int IMGSELTEXT = 3;
 public static final int IMGZOOMRULER = 4;
 public static final int IMGZOOMFOCUSNADLE = 5;
 public static final int IMGZOOMNADLE = 6;
 public static final int IMGFITWIDTH = 7;
 public static final int IMGFITPAGE = 8;
 public static final int IMGPREVPAGE = 9;
 public static final int IMGNEXTPAGE = 10;
 public static final int IMGSEARCHBUT = 11;
 public static final int IMGROTATE = 12;
 public static final int IMGPRINT = 13;
 public static final int IMGNEWWIND = 14;
 public static final int IMGHELP = 15;
 public static final int IMGMORE = 16;
 public static final int IMGTOOLBARBGR = 17;
 public static final int IMGBACK = 18;
 public static final int IMGFORWARD = 19;
 public static final int IMGFULLSCREEN = 20;
 public static final int IMGEXITFULLSCREEN = 21;

 // TEMPLATETYPE enumeration constants
 public static final int TEMPLATE_CUSTOM = 1;
 public static final int TEMPLATE_ACTIONSCRIPT2 = 2;
 public static final int TEMPLATE_ACTIONSCRIPT3 = 3;

 // WATERMARKANCHOR enumeration constants
 public static final int CENTER = 0;
 public static final int LEFTCENTER = 1;
 public static final int RIGHTCENTER = 2;
 public static final int TOPCENTER = 16;
 public static final int BOTTOMCENTER = 32;
 public static final int LEFTTOP = 17;
 public static final int RIGHTTOP = 18;
 public static final int LEFTBOTTOM = 33;
 public static final int RIGHTBOTTOM = 34;
}   中国食疗网   http://www.shiliaowang.com/

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

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

 
分享到:
评论

相关推荐

    print2Flash文件预览,包含序列号!

    Print2Flash是一款高效实用的工具,能够帮助用户将常见的文档格式,如Word、PPT、Excel和纯文本(TXT)等,转换为SWF(ShockWave Flash)文件,进而实现在HTML网页上的动画播放和分页预览。这一功能不仅极大地提升了...

    C# WinForm调用Print2Flash将文档转换成swf (x64)演示

    使用Print2Flash批量转换和API将文档转换成swf演示。64位的版本的,32位的版可以参考更改路径和dll文件。 使用API的时候需要安装Print2Flash服务,具体启动方法参考下面链接 ...在Print2Flash\Print2Flash\bin\Debug\...

    print2flash的80040154错误解决办法

    Print2Flash 是一种功能强大且易于使用的 Flash 转换工具,能够将各种文件格式转换为 Flash 格式。但是,在使用 Print2Flash 时,可能会出现 80040154 错误,这是由于 COM 组件注册失败导致的。下面我们将详细介绍...

    Interop.Print2Flash3.dll

    从这些文件可以看出,这是一个基于ASP.NET的Web应用程序项目,可能用于演示或利用Print2Flash3的功能,如在线预览或转换文档为Flash格式。开发者可能通过`Interop.Print2Flash3.dll`来实现从服务器端将文档转换为SWF...

    Print2Flash应用例子

    Print2Flash是一款强大的工具,它能够将各类文档转换为Flash(SWF)格式,以便在网页上方便地浏览和分享。这个"Print2Flash应用例子"涵盖了如何利用该软件进行实际操作的知识点。 首先,Print2Flash支持多种文档...

    print2flashsdk

    "Print2FlashSDK"是一个专为开发者设计的工具包,...通过以上知识点,我们可以看出Print2FlashSDK是一个强大的开发工具,它为开发者提供了将打印输出转换为可交互的在线内容的解决方案,增强了文档的分享和访问方式。

    print2flash4 实现文件转换为swf供浏览器在线查看

    使用print2flash4实现pdf、txt、word、图片等文件转换为flash文件后供网页在线预览; 文件中含有print2flash的sdk,自己写得自动转换调度程序(.NET版本)+print2flash4安装程序以及补丁

    print2flash4安装包+demo

    通过这个demo,开发者可以学习如何在自己的应用程序中利用Print2Flash4的功能,例如将文档转换为互动的、可缩放的Flash格式。 首先,我们需要理解Java环境下的集成。Print2Flash4提供了Java API,允许开发者通过...

    print2flash 3.5

    《Print2Flash 3.5:打造高效便捷的Office文档在线预览体验》 Print2Flash 3.5是一款强大的工具,专为提升Office文档在线预览体验而设计。它能够将Microsoft Office文档(如Word、Excel、PowerPoint等)转换成Flash...

    print2Flash打印机

    "Print2Flash打印机"是一款专为IT专业人士设计的实用工具,它主要的功能是将常见的文档格式,如Word,转换成SWF(ShockWave Flash)文件。这种转换过程使得生成的文件能够在网页上轻松嵌入和播放,从而为用户提供了...

    print2flash 使用

    "Print2Flash 使用"是一个关于将文本打印转换为Flash动画的工具,主要应用于教育、演示或文档分享场景。这个工具可以将PDF、DOC、TXT等格式的文档转换为SWF文件,使得用户可以在网页上查看,同时保持了原文档的布局...

    Print2Flash3.1

    总的来说,Print2Flash 3.1是一个强大且灵活的文档转换工具,它让将纸质文档数字化变得更加简单,特别是在需要在网页上展示或者在线分享的情况下,其优势尤为明显。而且,与FlashPaper相比,Print2Flash 3.1的兼容性...

    print2flash_3.5_64位

    这一特性极大地扩展了Print2Flash的使用场景,使得开发人员能够在各种定制的应用程序中实现文档的动态转换。 例如,以下是一段简单的C#代码示例,演示如何使用Print2Flash API进行转换: ```csharp using Print2...

    Print2Flash

    Print2Flash是一个虚拟打印机类的文档转换软件,因此只要是可打印的文档,都可以轻松转换为Flash文件,即SWF动画,特别是用于转换PDF、Word、Excel、PowerPoint等文档为SWF格式。 Print2Flash与Macromedia的...

    Print2flash

    Print2Flash的主要工作流程是这样的:当你在应用中选择“打印”操作时,只需将打印机设置为Print2Flash,软件就会自动捕获文档内容,并将其转换为Flash格式。这种转换过程不仅保留了原始文档的布局和格式,还可能...

    Print2Flash_V3.5(x64/x86)

    Print2Flash是一款强大的工具,专为将文档转换成交互式Adobe Flash(SWF)文件而设计,便于在网络上共享和查看。这款软件支持多种文件格式,包括Microsoft Office文档(如Word、Excel、PowerPoint),文本文件,HTML...

    print2flash4 SDK

    "Print2Flash4 SDK" 是一个专为开发者设计的软件开发工具包,它允许程序员将打印功能转换为交互式的Flash格式。这个SDK的核心是提供了一系列的API,支持多种编程语言,使得开发者能够轻松地在自己的应用程序中集成这...

    flash在线预览office文件

    总结来说,Flash在线预览Office文件是一种利用C#和`print2flash`工具将Office文档转换为SWF格式,再通过网页上的Flash Player来展示预览的方法。这一技术在不支持现代Web标准如HTML5的旧版浏览器中尤其有用,虽然...

    Print2Flash V3.5.0.533 完美替代FlashPaper(Word转Flash)

    9. **应用场景**:Print2Flash适用于教育、企业、个人等多种场景,例如制作在线教程、演示文稿、产品手册,或者将复杂的表格和报告以更易于阅读的方式呈现。 综上所述,Print2Flash V3.5.0.533是一个强大的文档转...

    Print2Flash(汉化_含注册码)

    6. 教学应用:在教育领域,Print2Flash可将教材、讲义或课件转换为在线形式,便于学生远程学习。教师也可以通过添加注释、测试或互动元素来增强教学体验。 7. 商业用途:在商业环境中,Print2Flash有助于创建动态的...

Global site tag (gtag.js) - Google Analytics