C# 调用FLashPaper2(二)

C#调用FlashPaper2  [2011-4-14 10:06:41]

c:相信大家都知道“FlashPaper”这个东西是用来干什么的,他是一个转换的软件,通过虚拟打印机把文件流转换成PDF或SWF文件。
这里废话就不多说了,直接看如何使用C#调用FlashPaper2:

protected void Button1_Click(object sender, EventArgs e)
{
 string root = Server.MapPath("~/");  // 获取虚拟路径。
 string path = this.FileUpload1.PostedFile.FileName;  // 获取上传文件的路径。
 string name = System.IO.Path.GetFileName(path);  // 获取上传文件的名称,包括后缀。
 string outPath = string.Format("{0}{1}{2}", root, "allFiles/", name);  // 合并上传文件的保存路径。
 string swfPath = string.Format("{0}{1}{2}.swf", root, "swfFiles/", Guid.NewGuid().ToString("N"));  // 合并Swf文件保存的路径。
 this.FileUpload1.PostedFile.SaveAs(outPath);  // 保存上传的文件到指定的路径。
 // 通过注册表获取FlashPrinter.exe注册的路径。注:/初始化/初始化.bat   一定要执行过此文件后才可以获取路径。
 string appPath = (string)Microsoft.Win32.Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPaper Printer\2\Installation", "AppPath", null);
 string param = string.Format("{0} -o {1}", outPath, swfPath);  // 合并需要的参数信息。
 // 创建一个进程。
 System.Diagnostics.Process p = new System.Diagnostics.Process();
 p.StartInfo.FileName = appPath;  // 赋值进程要执行的应用程序。
 p.StartInfo.Arguments = param;  // 赋值应用程序可用参数。
 p.StartInfo.UseShellExecute = false;
 p.StartInfo.RedirectStandardInput = false;
 p.StartInfo.RedirectStandardOutput = false;
 p.StartInfo.RedirectStandardError = true;
 p.StartInfo.CreateNoWindow = true;  // 是否创建显示窗口。
 try
 {
  bool IsStart = p.Start();  // 开始执行程序,如果执行成功返回True,否则False。
  p.WaitForExit();  // 等待关联进程退出。
  p.Close();  // 关闭进程。
 }
 catch(Exception ex)
 {
  throw ex;
 }
 Response.Write("完成。");       
} 说明:
 Button1_Click:Button服务器控件的Click事件,用于上传到服务器的按钮。
 FileUpload1:FileUpload服务器控件,用于上传文件。
这下好了,就可以把想转换的文件转换成SWF文件,执行一下试试。
如果是在VS调试情况下是可以正常执行的,那么你在通过IIS里执行一下试试,你可能会发现什么都正常也没报什么错误,还有可能你会发现在拒绝访问等类似的问题。
怎么解决?为什么会出现这些问题?我一步步来解决上面的两个问题。

问题一:
点击按钮后文件可以上传,就是SWF文件没有转换成功,也没报什么错误?
首先想一下,IIS是有一定权限的,不是任何程序都可以随便调用一些文件的,这么一想那就是权限问题了。加大权限,直接把程序池属性中标识选项卡里的预定义账户改为本地,这样应该没问题了。

问题二:
点击上传按钮时出现拒绝访问的问题?
首先看一下有没有IO权限,如果还行,请参考问题一的方法。

小结:此程序当前环境(系统:Win2003、工具:VS2005、SDK:v2.0)测试通过。在使用FlashPaper过程中,如果你想转换什么文件就需要安装什么软件。比如说我想转换Office(doc/ppt/xls)文档,你必须得安装Office软件才可以进行转换。
这里把需要的文件及Aspx文件打包上传了,有需要的朋友可以在此下载。注:压缩包内FlashPaper2为绿色版,压缩包注释中有包含一个安装版注册码。

转载于:https://www.cnblogs.com/Tylerwang/archive/2012/05/10/2494269.html

猜你喜欢

转载自blog.csdn.net/weixin_34085658/article/details/93352112
今日推荐