Текстовое содержимое в формате 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
Другие вопросы по тегам