博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.NET调用FlashPaper

Posted on 2012-06-25 10:29  xgbzsc  阅读(521)  评论(1编辑  收藏  举报

     FlashPaper是一个虚拟打印机,可将word文件转化成swf格式文件。最近简单学习了在ASP.NET页面中调用FlashPaper将word文件转化成swf格式文件的方法。

(1)安装FlashPape:下载FlashPape压缩包,解压缩后,运行初始化目录中的初始化.bat,然后安装FlashPaperDriverInstall2.exe,即FlashPaper打印机。特别注意,在有的机器上要更改Macromedia FlashPape的端口,应为FlashPape2PrinterPort,如果是LPT1这个端口,当然打印不出来了。

(2)为页面中的按钮编写事件处理代码:


       try

        {

            Process p = new Process();

            p.StartInfo.FileName = "cmd";

            p.StartInfo.UseShellExecute = false;

            p.StartInfo.RedirectStandardInput = true;

            p.StartInfo.RedirectStandardOutput = true;

            p.StartInfo.RedirectStandardError = true;

            p.StartInfo.CreateNoWindow =true;

            p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

            p.Start();

            string strOutput = null;

            string s = @"D:\flashpaper2\FlashPaper2.2\FlashPrinter.exe " + Server.MapPath("file/test.doc") + " -o " +Server.MapPath("swf/test.swf");

            p.StandardInput.WriteLine(s);

            p.StandardInput.WriteLine("exit");

            strOutput = p.StandardOutput.ReadToEnd();

            Console.WriteLine(strOutput);

            p.WaitForExit();

            p.Close();

            lblMessage.Text="success";

        }

        catch (Exception ex)

        {

            lblMessage.Text = ex.ToString();

        }

注意:FlashPrinter.exe所在的目录名称中不能有空格,否则转换失败。

(3)可能还碰到权限问题,简单的解决方法如下:


     在Windows xp系统下请把aspnet账号(如果是vista,则是networkservice)添加至administrators组,并重启iis admin服务。