SWFTools' pdf2swf: текст не конвертируется, если он запущен с веб-сайта IIS
Я использую IIS 7.5 на Windows Server 2008 R2 и пытаюсь преобразовать некоторые PDF-файлы после загрузки в SWF-файлы с помощью pdf2swf из SWFTools. Если я запускаю конвертер вручную с теми же аргументами, все в порядке. Но если я запускаю конвертер из моего 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"
2 ответа
Хорошо, я решил проблему, добавив отдельное консольное приложение с правами администратора: я добавил манифест приложения с
<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) решило проблему для меня.