2016-10-24 6 views
0

Наша система принимает 8,5 x 11 файлов PDF (только) и делает с ними что-то. Иногда клиенты передают нам файлы, чтобы манипулировать ими в правильной форме. Мы работаем над автоматизацией масштабирования файлов PDF нестандартного размера в формате 8.5 x 11.Масштабирование PDF-файла с использованием ghostscript

Мы смогли обработать большинство файлов, которые мы тестировали с помощью ghostscript, но у нас есть этот файл с одним клиентом, который мы не можем обрабатывать. (И, к сожалению, мы не можем воссоздать условие и, конечно же, не можем размещать данные клиента.)

Файл PDF v1.7 и содержит семь страниц 8.5x11, за которыми следуют четыре страницы, которые составляют 25,5 x 45,33 дюймов. Я не знаю, как они были созданы (Adobe Acrobat 10.1.2 на pdfinfo).

Мы постепенно добавили ряд параметров для нашей команды GS, пока мы не пришли к этому:

gs -sDEVICE=pdfwrite -sOutputFile=$final_file -dBATCH -dNOPAUSE -sPAPERSIZE=letter -q -r720 -g6120x7920 -dPDFFitPage -dFIXEDMEDIA $files_to_convert

Это, кажется, работает хорошо для наших других файлов, но для этого файла, 25.5 х 45.33 страниц не масштабируются до размера буквы. Вот измерение для страниц выходного файла 7 и 8-й в pdfinfo:

Page 7 size: 612 x 792 pts (letter) Page 7 rot: 0 Page 8 size: 1836 x 3264 pts Page 8 rot: 0

Я прочитал, что PostScript есть политика, варианты PAGESIZE, но я не знаю о таких вещах с PDF. И если он существует, я не знаю, как его изменить, используя ghostscript.

Как я могу убедиться, что все страницы масштабируются до буквы?

ответ

1

Ну, Ghostscript использует PostScript в качестве языка скриптинга, поэтому все, что вы можете сделать в PostScript, можете сделать в PDF-файле.

Я действительно бы не использовать -g с pdfwrite, потому что -g указывает пикселей, а так pdfwrite вектор устройство, которое на самом деле не работает хорошо. Вместо этого используйте DEVICEHEIGHTPOINTS и DEVICEWIDTHPOINTS.

Не устанавливайте -sPAPERSIZE, вы не можете настроить носитель на букву в одном месте и что-то другое (переключатель -g) в другом месте.

Невозможно рассказать вам, что происходит именно с вашим файлом PDF, не видя этого, и вы действительно не объяснили, что случилось. Вы подразумеваете, что страницы не масштабируются, но вы не говорите, на какой размер они рисуются. Вы также не говорите, почему считаете, что страницы являются «законными», если смотреть в Acrobat.

Если вы говорите, что указанные страницы являются «законными», но средства массовой информации намного больше, то это вполне возможно и предполагает, что на страницах есть CropBox. Ghostscript использует MediaBox для размеров страниц, Acrobat использует множество различных блоков, но обычно по умолчанию используется CropBox.

Если вы хотите, чтобы Ghostscript использовал CropBox, просто сообщите об этом -dUseCropBox.

Альтернативно отправьте пример где-нибудь, и я могу посмотреть на него.

+0

Спасибо за ответ. Я буду повторять, изменяя параметры, как вы описали. Извините, если неясно: аргументы 1836 x 3264 являются измерениями выходного файла в pdfinfo. Тот же размер, что и оригинал. Я удалил нерелевантное описание того, как он выглядит в Acrobat. –

+0

Ну, я не могу не думать о способе победить масштабирование страницы.Не означает, что это невозможно. Если вы поместите файл где-нибудь, я могу взглянуть, но без этого не будет возможности помочь, я думаю. – KenS

+0

Это сделало. Он масштабирует его до 792 очков, хотя и на 6,11 дюйма, что имеет смысл. Мне просто нужно выяснить, как дать ему белый фон для «лишнего» пространства ширины. Спасибо, KenS! –

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