SWFTools 的 pdf2swf:如果从 IIS 托管的网站启动,则不会转换任何文本
本文关键字:转换 文本 任何 启动 如果 pdf2swf IIS SWFTools 网站 | 更新日期: 2023-09-27 18:30:54
我在Windows Server 2008 R2上运行IIS 7.5,我正在尝试使用SWFTools的pdf2swf将一些PDF在上传后转换为SWF。如果我使用相同的参数手动启动转换器,一切都很好。但是,如果我从 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(用户凭据)的情况下尝试过,这是我第一次尝试的,这导致了没有文本的SWF。使用凭据(作为管理员或标准),我不会从转换器获得任何 SWF 或输出。
编辑2:我也尝试了这些论点:
"%%source%% -o %%target%% -f -T 9 -t -s storeallcharacters"
好的,我通过添加一个具有管理权限的单独控制台应用程序解决了这个问题: 我添加了一个应用程序清单
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
这个控制台应用程序称为pdf2swf.exe由我的HttpHandler调用。
此外,我在 HttpHandler 中的"中间人"调用中添加了这些代码行:
p.StartInfo.UseShellExecute = false;
if (System.Environment.OSVersion.Version.Major >= 6)
p.StartInfo.Verb = "runas";
仅供参考...我也有类似的问题。升级到最新版本pdf2swf(内部版本 0857)为我解决了问题。