zoukankan      html  css  js  c++  java
  • SWFTools PDF转换为SWF

    前言

     在iText 制作PDF这篇博文中只是简单的介绍了如何制作PDF,为了能让PDF在Web页面中显示,我还需要通过SWFTools工具将PDF文件转换为SWF文件,然后通过SWF文件显示在Web网页中,本次主要是实践SWFTools工具的简单使用,可以在http://www.swftools.org/download.html网页中下载工具,并安装。但是要注意下载的版本,我是在Win7系统下开发的,所以安装的工具就是如下图所示

    安装完成后会生成pdf2swf.exe。并预先在PDF文件夹添加一个文件。

    ,此PDF文件也是由上节中生成的。 

    第一步

       我先是创建了一个WinForm窗体应用程序,然后在配置文件中配置了两个路径,一个是PDF文件路径,另外一个是生成的SWF文件的路径

    App.Config配置文件代码

    <?xml version="1.0"?>
    <configuration>
      <appSettings>
        <!--存放Pdf的目录-->
        <add key="PdfPath" value="D:\PdfFiles\"/>
        
        <!--存放转换过后的Swf的目录-->
        <add key="SwfPath" value="D:\SwfFiles\"/>
        
      </appSettings>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
      </startup>
    </configuration>
    

    第二步

    需要在PDF文件夹下进行寻找PDF文件

            //扫描PDF文件
            private string SearchPdf()
            {
                string pdfFile = "";
    
                string pdfPath = AppConfiguration.PdfPath;
                if (!Directory.Exists(pdfPath))
                {
                    Directory.CreateDirectory(pdfPath);
                }
                string[] files = Directory.GetFiles(pdfPath);
                for (int i = 0; i < files.Length; i++)
                {
                    if (files[i].EndsWith(".pdf"))
                    {
                        pdfFile = files[i];
                        break;
                    }
                }
                return pdfFile;
            }
    

      先是取到配置文件的PDF文件夹,如果没有此文件夹,则需要创建一个,然后进行查找该文件夹下的PDF类型的文件。

    第三步

    根据PDF文件夹,来查找或者生成相应的SWF文件夹

            //获取SWF存放目录
            private string GetSavePathFromName(string pdfFile)
            {
                string swfBasePath = AppConfiguration.SwfPath;
                string swfPath = swfBasePath + pdfFile.Split('\\').Last().Replace(".pdf", "") + "\\";
                if (!Directory.Exists(swfPath))
                {
                    Directory.CreateDirectory(swfPath);
                }
    
                return swfPath;
            }
    

    第四步

      执行将PDF文件通过pdf2swf.exe生成SWF文件。

            private void Execute(string cmd, string args)
            {
    
                using (Process p = new Process())
                {
                    p.StartInfo.FileName = cmd;
                    p.StartInfo.Arguments = args;
                    p.StartInfo.UseShellExecute = false;
    
                    //此类提供的标准output流只有2k,不要重定向
                    p.StartInfo.RedirectStandardOutput = false;
    
                    p.StartInfo.CreateNoWindow = true;
                    p.Start();
                    p.PriorityClass = ProcessPriorityClass.Normal;
                    p.WaitForExit();
                }
    
            }
    

      

                string cmd = "pdf2swf.exe";
                string args = "  -t \"" + pdfFile + "\"  -o \"" + savePath + pdfFile.Split('\\').Last().Replace(".pdf", "")
                    + "%.swf\" -s drawonlyshapes -s flashversion=9";
                Execute(cmd, args);
    

      那么执行后在相应的文件夹中生成文件如下。

    到此简单的将PDF文件转换为SWF文件就成功了。

    当然海域很重要的一步就是如何调用pdf2swf.exe文件,这里我是将此文件与winform的exe文件放在同一个目录下进行调用的。

      

    示例代码  

  • 相关阅读:
    jquery获取浏览器URL参数
    jquery获取、设置、删除cookie
    jquery获取当前按钮、截取字符串、字符串拼接、动态循环添加元素
    Callback函数
    window.opener和window.open的使用
    JavaScript内置对象
    SeaJS:一个适用于 Web 浏览器端的模块加载器
    hihocoder 1388 &&2016 ACM/ICPC Asia Regional Beijing Online Periodic Signal
    Codeforces Round #373 (Div. 2)
    fzu 1759Super A^B mod C 指数循环节
  • 原文地址:https://www.cnblogs.com/aehyok/p/3000431.html
Copyright © 2011-2022 走看看