2016-02-10 5 views
0

Я пытаюсь обрезать PDF, который намеренно выводится по размеру, так как выводимая программа не знает размер его содержимого. В рассматриваемой системе FreeBSD установлен Ghostscript v7.07. Основываясь на существующем ответе на другой вопрос (Cropping a PDF using Ghostscript 9.01) и приспосабливая его к документации v7.07 (http://ghostscript.com/doc/7.07/Readme.htm) Я пробовал заменить ниже -o на -sOutputFile, поскольку он не распознает -o.Обрезка PDF с помощью Ghostscript v7.07

gs         \ 
    -dNOPAUSE      \ 
    -dBATCH       \ 
    -sDEVICE=pdfwrite    \ 
    -c "[/CropBox [0 6785 433 7128]" \ 
    -c " /PAGES pdfmark"    \ 
    -sOutputFile=testout.pdf   \ 
    testin.pdf      \ 

и я также пытался

gs       \ 
    -dNOPAUSE     \ 
    -dBATCH     \ 
    -sDEVICE=pdfwrite   \ 
    -dDEVICEWIDTHPOINTS=433 \ 
    -dDEVICEHEIGHTPOINTS=343 \ 
    -dFIXEDMEDIA    \ 
    -c "0 6785 translate"  \ 
    -c "0 0 433 343 rectclip" \ 
    -sOutputFile=testout.pdf \ 
    testin.pdf     \ 

Моя проблема заключается в том, что в обоих случаях я просто получить ниже сообщение

**** Unable to open the initial device, quitting. 

При поиске этой ошибки он в основном, казалось, из-за расположения выходного файла, у которого нет прав на запись или что-то похожее на это, но это, похоже, не так, потому что у меня есть chmod моя папка до 777. Вещь, которая меня загнала, заключается в том, что если я удалю сообщение строки командной строки сценария (-c), как показано ниже, выводит файл testout.pdf просто отлично (но, очевидно, не обрезается или не переводится в правильное положение).

gs         \ 
    -dNOPAUSE      \ 
    -dBATCH       \ 
    -sDEVICE=pdfwrite    \ 
    -sOutputFile=testout.pdf   \ 
    testin.pdf      \ 

и

gs       \ 
    -dNOPAUSE     \ 
    -dBATCH     \ 
    -sDEVICE=pdfwrite   \ 
    -dDEVICEWIDTHPOINTS=433 \ 
    -dDEVICEHEIGHTPOINTS=343 \ 
    -dFIXEDMEDIA    \ 
    -sOutputFile=testout.pdf \ 
    testin.pdf     \ 

Я думал, что, может быть, 7,07 просто не поддерживает эти команды, так как это, кажется, не имеет значения, что я положил в -с это всегда заканчивается давая эту ошибку, если -c есть вообще, но он присутствует в документации 7.07 (http://ghostscript.com/doc/7.07/Use.htm#General_switches), и это не похоже на то, что я даю мне -c - неизвестная ошибка, поэтому я в недоумении. Я полагаю, что я либо делаю что-то неправильно, либо что-то не так с установкой ghostsciprt или ее зависимостями. Любая помощь, которую могли бы мне дать, была бы весьма признательна.

ответ

0

ОК сперва UPGRADE вы используете 13-летнюю версию программного обеспечения.

Во-вторых, ваша командная строка неверна, вы используете -c, но вы не указали соответствующий -f. Это означает, что все после -c , включая имена входных и выходных файлов, обрабатывается как PostScript.

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

Не используйте -c дважды, все после -c (до -f) обрабатывается как PostScript, поэтому вам не нужно указывать его дважды.

Я бы ожидать, что это работает, но так как вы используете так старую версию я не могу быть уверен:

gs       \ 
    -dNOPAUSE     \ 
    -dBATCH     \ 
    -sDEVICE=pdfwrite   \ 
    -dDEVICEWIDTHPOINTS=433 \ 
    -dDEVICEHEIGHTPOINTS=343 \ 
    -dFIXEDMEDIA    \ 
    -c "0 6785 translate  \ 
    0 0 433 343 rectclip" -f \ 
    -sOutputFile=testout.pdf \ 
    testin.pdf 
+0

Очевидно, что если модернизация был вариант я бы просто сделал это первым, но я предполагаться/все ответы будут просто подсказывать мне обновить в любом случае. Это в сторону, спасибо, это был недостаток -f, который испортил это. –

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