Текстовое содержимое в формате pdf не конвертируется с использованием pdf2swf
Я запускаю приложение C# в сервисном режиме. И я использую инструмент pdf2swf для преобразования odf в формат swf. Изображения, сохраненные в формате PDF, преобразуются. Но если какой-либо тест добавление в pdf не конвертируется в сервисный режим. Но при запуске в режиме пользовательского интерфейса (Consoleapplication.exe) все конвертируется.
string inputFileName = this.Filename;
string outputFileName = inputFileName.Replace("pdf", "swf");
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0} -o {1}", inputFileName, outputFileName);
string executingDirPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).Replace("file:\\", "");
string dataDirectoryPath = Path.Combine(executingDirPath, "pdf2swf.exe");
ProcessStartInfo psi = new ProcessStartInfo(dataDirectoryPath, sb.ToString());
psi.UseShellExecute = false;
System.Diagnostics.Process pdf2swf = new System.Diagnostics.Process();
pdf2swf.StartInfo = psi;
pdf2swf.Start();
pdf2swf.WaitForExit();
pdf2swf.Close();
pdf2swf.Dispose();
С уважением, Сангита
3 ответа
Прямое использование процесса для запуска pdf2swf.ext может иметь некоторые проблемы с привилегиями. Я использовал другой способ решения этой проблемы: написать пакетный файл, а затем запустить пакетный файл процессом.
Образец пакетного файла:
c:
cd C:\Program Files (x86)\SWFTools\
pdf2swf.exe -f -T 9 -t "%1" -o "%2"
Код в программе:
Process p = new Process();
string path = basePath + "/plugin/ConvertToSwf.bat";//batch file path
ProcessStartInfo pi = new ProcessStartInfo(path, filePath + " " + swfPath);//passing the file path and converted file path to batch file
pi.UseShellExecute = false;
pi.RedirectStandardOutput = true;
p.StartInfo = pi;
p.Start();
p.WaitForExit();
Я недавно столкнулся с подобной проблемой. Я решил проблему, добавив отдельное консольное приложение (Consoleapplication.exe) с правами администратора, которое работает на моем сервере без оболочки.
Кроме того, попробуйте обновить до последней версии pdf2swf.
FYI. У меня недавно была эта проблема (я думал, что это были не внедренные шрифты, но на самом деле отсутствовал весь текст в конвертированном SWF). Что это исправило для меня было установить:
pi.UseShellExecute = false;
И установить рабочий каталог;
pi.WorkingDirectory = "C:\windows\temp"; // path where read & write is