SWFTools的pdf2swf:如果从IIS托管的网站启动,则不会转换文本

时间:2012-04-13 08:14:51

标签: c# iis flash pdf2swf

我在Windows Server 2008 R2上运行IIS 7.5,并且我试图在使用SWFTools的pdf2swf上传到SWF之后转换一些PDF。如果我使用相同的参数手动启动转换器,一切都很好。但是如果我从我的HttpHandler中启动转换器,则该进程不返回任何输出(并且似乎根本不启动)或转换PDF而没有任何文本 - 这取决于我如何开始该过程。

以下是我开始这个过程的方法:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = ToolsPath;
p.StartInfo.Arguments = arguments
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.Password = secPw;
p.StartInfo.UserName = username;
p.StartInfo.Domain = domain;
p.Start();
p.WaitForExit();

我传递了哪些论据:

"%%source%% -o %%target%% -v -v -v -f -T 9 -t -s storeallcharacters"

非常感谢您的帮助!

编辑:我也尝试过没有额外的StartInfo(用户凭据),这是我第一次尝试的,这导致了一个没有Text的SWF。使用凭证(作为管理员或标准),我没有从转换器获得任何SWF或输出。

编辑2:我也试过这些论点:

"%%source%% -o %%target%% -f -T 9 -t -s storeallcharacters"

2 个答案:

答案 0 :(得分:1)

好的,我通过添加一个带有管理权限的单独控制台应用程序解决了这个问题:我添加了一个带有

的应用程序清单
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

此控制台应用程序名为pdf2swf.exe,由我的HttpHandler调用。

此外,我在HttpHandler中添加了“中间人”的调用代码:

p.StartInfo.UseShellExecute = false;
if (System.Environment.OSVersion.Version.Major >= 6)
    p.StartInfo.Verb = "runas";

答案 1 :(得分:0)

仅供参考......我遇到了类似的问题。升级到最新版本pdf2swf(build 0857)为我解决了这个问题。