CropBox и MediaBox в GhostScript - PullRequest
       5

CropBox и MediaBox в GhostScript

0 голосов
/ 02 марта 2012

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

Это связано с тем, что в этих проблемных PDF-файлах MediaBox имеет гораздо больший размер, чем CropBox. Я могу исправить это в Ghostscript с помощью -dUseCropbox, чтобы он игнорировал размеры MediaBox ... но это не работает с другими PDF-файлами, для которых не определен CropBox.

Итак, я могу придумать два решения:

  1. Каким-то образом проверьте файл PDF перед импортом, чтобы увидеть, определен ли для него CropBox. Если у него есть CropBox, используйте ключ -dUseCropBox. Если для него не определен CropBox, мы не используем этот переключатель.

  2. Изменение размеров MediaBox в самом файле PDF таким образом, чтобы они соответствовали измерениям CropBox.

Так, какой код я бы использовал, чтобы проверить файл PDF для измерений CropBox / MediaBox и, при необходимости, отредактировать их?

Ответы [ 3 ]

1 голос
/ 17 апреля 2012

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

pdfcrop - скрипт на Perl, работает на нескольких платформах
http://tug.ctan.org/tex-archive/support/pdfcrop
(требуется * tex, ghostscript и, очевидно, perl)

PDF Cropper, для Windows
http://www.noliturbare.com/pdf-tools/pdf-cropper
(требуется ghostscript и .NET 3.5)

В качестве альтернативы, если у вас Mac, вы можете использовать функцию обрезки в приложении Preview.Это устанавливает поле кадрирования, не касаясь медиа-бокса (по крайней мере, в MacOSX 10.4), позволяя вам использовать -dUseCropbox.

1 голос
/ 02 марта 2012

Что вы планируете делать с файлами, которые не имеют CropBox?Мне кажется, что вы уже делаете все, что можете, если присутствует CropBox (и вы выбираете -dUseCropBox), он используется, если нет, то (если я правильно помню) GS все равно будет использовать MediaBox.

0 голосов
/ 27 июля 2015

Вместо Ghostscript используйте Imagemagick. Например:

convert -resize 70px file.pdf file.jpg
...