2014-11-03 3 views
0

Может кто-нибудь подскажет, как объединить несколько файлов PDF в один файл PostScript при использовании GhostScript с C#C# GhostScript конвертировать несколько файлов PDF в PostScript

Использование командной строки работает и объединяет два входных PDF файлы в один PostScriptFile:

gswin32c.exe -dNOPAUSE -dBATCH -sDEVICE=ps2write -sOutputFile=outfile.ps Infile1.pdf Infile2.pdf 

Я не могу заставить его работать в C#, хотя:

params.Add("-q"); 
params.Add("-dQUIET"); 
params.Add("-dNOPAUSE"); 
params.Add("-dBATCH"); 
params.Add("-P-"); 
params.Add("-dPARANOIDSAFER"); 
params.Add("-dNOPROMPT"); 
params.Add("-sDEVICE=ps2write"); 
params.Add("-dLanguageLevel=3); 
params.Add("-dASCII85DecodePages=false"); 
params.Add("-sOutputFile=outfile.ps"); 
params.Add("InFile1.PDF inFile2.PDF"); 

я попробовать его с запятой между именами выходных файлов, а также ,

Любые предложения были бы весьма полезными. Спасибо, Майк

+0

Где вы проходите «Params» к? Кроме того, в вашей командной строке я не вижу -p-переключатель, как в коде C#. – HABJAN

ответ

0

Я хотел бы начать с чем-то вроде этого:

params.Add("-ignored"); 
params.Add("-q"); 
params.Add("-dQUIET"); 
params.Add("-dNOPAUSE"); 
params.Add("-dBATCH"); 
params.Add("-dPARANOIDSAFER"); 
params.Add("-dNOPROMPT"); 
params.Add("-sDEVICE=ps2write"); 
params.Add("-dLanguageLevel=3"); 
params.Add("-dASCII85DecodePages=false"); 
params.Add("-sOutputFile=outfile.ps"); 
params.Add("-f"); 
params.Add("C:\fullpath\InFile1.PDF"); 
params.Add("C:\fullpath\inFile2.PDF"); 
+1

Обратите внимание, что -o подразумевает -dBATCH и -dNOPAUSE, чтобы вы могли получить тот же эффект в более короткой командной строке, установив «-o outfile.ps». В обоих случаях вам не нужен -dNOPROMPT. Если вы не подключаетесь к GS, я бы не предложил использовать -dNOPROMPT. Если вы устанавливаете -q, вам не нужен -dQUIET (и при отладке проблемы я бы тоже не установил!). PARANOIDSAFER - это то же самое, что и SAFER, и мы предпочли бы, чтобы вы использовали SAFER, PARANOIDSAFER больше не документированы и могут быть удалены (хотя через 12 лет ...). -dLanguageLevel = 3 не влияет на ps2write, потому что ps2write записывает языковой уровень ** 2 **, поэтому имя ... – KenS

+0

Кроме того, -dASCII85DecodePages недопустим, предположительно вы имеете в виду ASCII85EncodePages – KenS

+0

Спасибо за советы Ken. Всегда хотите пойти на лучшие практики. – Miguelito