Как изменить размер содержимого PDF без изменения размера страницы?

Проблема в том, что мой принтер всегда отсекает какую-то часть на границах моих файлов PDF. Обычно это не проблема, потому что большинство PDF-файлов уже имеют немного места на границе. Но теперь у меня есть несколько документов, которые мне нужно распечатать, которые не имеют такого пространства.

Есть ли средство командной строки linux (или средство пакетной обработки) для изменения размера содержимого каждой страницы до, например, 95% от исходного размера при сохранении размеров страницы?

Изменить: мне нужно больше места на всех четырех сторонах.

One Solution collect form web for “Как изменить размер содержимого PDF без изменения размера страницы?”

Просмотрите этот пост в блоге с 2008 года, в котором показано, как вы можете это сделать с помощью ghostscript, и этот скриптовый скрипт pdfScale, который прекрасно обертывает его для вас.

Блог дает этот пример для 90% шкалы на бумаге формата А4:

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dSAFER \ -dCompatibilityLevel="1.3" -dPDFSETTINGS="/printer" \ -dSubsetFonts=true -dEmbedAllFonts=true \ -sPAPERSIZE=a4 -sOutputFile="out.pdf" \ -c "<</BeginPage{0.9 0.9 scale 29.75 42.1 translate}>> setpagedevice" \ -f in.pdf 

и сценарий уменьшает это до

 pdfScale -s 0.9 in.pdf out.pdf 

а также автоматически определяет размер медиа-страницы. Другие тяжеловесные инструменты включают pdfjam и pdfedit .


gs может выйти из строя с ошибкой Set UseCIEColor, о которой сообщается в этом и этом сообщении об ошибке, можно -dPDFSETTINGS="/printer" заменив -dPDFSETTINGS="/printer" на -dPDFSETTINGS="/screen" .


Скрипт pdfScale извлекает текущий размер носителя из входного файла, и это может завершиться неудачно, если формат PDF оптимизирован или имеет несколько определений носителей. Возможно, вам придется отредактировать скрипт, чтобы заменить номер строки 111:

  local mediaBox="$(cat "$INFILEPDF" | grep -a '/MediaBox')" # done with externals 

следующими двумя строками

 local mediaBox="$(cat "$INFILEPDF" | grep -m 1 -a '/MediaBox')" # done with externals mediaBox="${mediaBox#*/MediaBox}" # strip start of line upto /MediaBox 
  • Как сохранить четкость при преобразовании jpg в pdf-файл?
  • Сценарий оболочки для объединения файлов с одинаковыми именами
  • Есть ли программа просмотра PDF, способная открывать несколько документов в одном окне?
  • Как уменьшить размер pdf-файла, содержащего изображения?
  • Есть ли способ восстановить несохраненные аннотации в Okular после сбоя системы
  • Реализация инструмента String -> PDF Stamp
  • Текстовые аннотации и добавления изображений в PDF-файл с использованием бесплатного программного обеспечения
  • Извлечение PDF-содержимого и метаданных закладки
  • Использовать pdf-файл в качестве обоев
  • конвертировать CDA XML в PDF без * TeX?
  • Как вставить пустую страницу в PDF с помощью ghostscript или pdftk?
  • Interesting Posts

    Выведите диапазон столбцов из файла, где диапазон задается двумя переменными

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

    Как я могу вставить (переписать) с помощью vim?

    Неустранимая ошибка: вызов неопределенной функции gzopen () в /etc/apache2/htdocs/sites/all/modules/smart_ip/includes/smart_ip.utility.inc в строке 454

    Проверьте, удален ли вход в систему

    как сделать псевдоним, чтобы команда grep короче

    Защита VPS от доступа к серверной компании

    Возвращать длинное целочисленное значение из функции в ksh

    Как получить виджет часов UTC на Awesome WM?

    Способ проверки подключения к другому серверу

    несколько ip в полезной нагрузке android (Kali linux)?

    Печатать линию со смещением X в дампе памяти +/- 10 строк с каждой стороны

    Обновление ядра на устройстве ARM

    find и delete дает ложное состояние

    inodes, сравнение потребляемого пространства (xfs, btrfs, ext4)

    Linux и Unix - лучшая ОС в мире.