2016-07-11 3 views
1

У меня есть задача программирования. где мне нужно использовать бесплатную библиотеку или программу командной строки для преобразования PDF в изображение с помощью C#.Преобразование pdf в изображение с использованием C# и Ghostscript

До сих пор преобразования с помощью Ghostscript работает за исключением того, что он создает 8 красный прямоугольник в центре изображения:

Содержание PDF чистый белый только, но почему у меня есть 8 красная рамка на изображении? Что я сделал не так?

Вот код:

string outputImagesPath = null; 


string inputPDFFile = null; 
inputPDFFile = @"C:\Users\user\cover.pdf"; 
outputImagesPath = @"C:\user\Desktop\1.jpg"; 
string ghostScriptPath = @"C:\Users\gswin32.exe"; 

String ars = "-o" + outputImagesPath+ "%03d.png -sDEVICE=jpeg -dJPEGQ=100 " + inputPDFFile; 
Process proc = new Process(); 
proc.StartInfo.FileName = ghostScriptPath; 
proc.StartInfo.Arguments = ars; 
proc.StartInfo.CreateNoWindow = true; 
//proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardOutput = true; 
proc.Start(); 
string strOutput = proc.StandardOutput.ReadToEnd(); 
Console.WriteLine(strOutput); 
proc.WaitForExit(); 

здесь ссылка на PDF, спасибо https://drive.google.com/open?id=0B0auNx4EZsCUUkFHWGR4MjV5NzA

+0

Я считаю, что ваша ошибка здесь '+ outputImagesPath +"% 03d.png'. Не должно быть '+ outputImagesPath +"% d.jpeg'? – lokusking

ответ

0

Скорее всего, это вызвано отсутствующим шрифтом или CIDFont, прямоугольники являются .notdef глиф, который используется, когда глиф не может быть найден. Конечно, его невозможно рассказать, не увидев оригинальный PDF-файл.

Однако, если вы проверите обратный канал Ghostscript (и нет, я не могу сказать вам, как это сделать с Ghostscript.NET, поскольку это не продукт Artifex), вы, вероятно, увидите предупреждения о пропавших глифах.

Я могу смотреть дальше, но только если вы делаете PDF-файл доступным. Было бы также полезно узнать, какую версию Ghostscript вы используете.

+0

Я загрузил файл pdf. не могли бы вы мне помочь. спасибо – askquestionzero

+0

Ну, в основном ваш файл безумно сложный, он включает в себя несколько форм и ложную прозрачность, что приводит к тому, что несжатый файл имеет размер 4,2 МБ. Одна из форм содержит «(3 '\) 3' \) 'HPR'HPR) Tj ", которая на самом деле рисует текст. Этот шрифт является встроенным CIDFont, а используемый CMap сопоставляет их с глифами, которых нет в шрифте. Следовательно, результат .notdef. В основном ваш файл PDF сломан как неудобный как невероятно неэффективный. Единственный способ «исправить» это удалить текст из файла. – KenS

+0

Кстати, Ghostscript не является «бесплатным» своим открытым исходным кодом, это не совсем то же самое. Пожалуйста, убедитесь, что вы соблюдаете условия AGPL, в соответствии с которыми она лицензирована. – KenS

Смежные вопросы