4

Как я могу добавить поле желоба (различное для нечетных и четных страниц) в документе PDF, чтобы после печати можно было пробить его? Я знаком с Ghostscript и терминалом Linux, но не смог найти команды для выполнения этой конкретной задачи.

В настоящее время некоторый контент находится слишком близко к краю. Я мог бы использовать масштабирование в диалоговом окне печати, чтобы создать пространство для переплета, но это уменьшило бы размер более, чем это абсолютно необходимо, и оставило бы зазор с обеих сторон страницы.

Решение, которое просто добавляет дополнительный сантиметр с любой стороны страницы (слева для нечетных страниц и справа для четных), было бы здесь адекватным, так как я могу выбрать функцию «масштабировать, чтобы уместить» при печати.

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

1 ответ1

5

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

Во-первых, вам нужно знать высоту и ширину оригинального PDF в пунктах (в дюйме 72 точки). Вы можете использовать инструмент "pdfinfo", чтобы найти эту информацию:

pdfinfo "inputFile.pdf"

Допустим, у вас есть документ А4 - формат А4 составляет 595 пикселей × 842 пункта (210 мм × 297 мм).

Если вы хотите добавить водосточный желоб 10 мм (= 1 см = 28 пунктов) к документу А4, то вам нужно предоставить Ghostscript следующую информацию:

-dDEVICEHEIGHTPOINTS=842 (высота А4)
 -dDEVICEWIDTHPOINTS=623 (= 595+ 28, т. е. ширина А4 + добавляемый желоб)
   {28 0 translate} {} ({сдвигать нечетные страницы на 28 пунктов вправо и на 0 пунктов вверх} {ничего не делать для четных страниц})

Примечание. Указание увеличенной ширины добавляет пространство к правой стороне страницы, поэтому необходимо переводить только нечетные страницы - четные страницы уже правильно выложены.

Вот полная команда для Linux:

gs -q -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -sOutputFile=outputFile.pdf \
  -dDEVICEWIDTHPOINTS=623 -dDEVICEHEIGHTPOINTS=842 -dFIXEDMEDIA \
  -c "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def
   CurrPageNum 2 mod 1 eq {28 0 translate} {} ifelse } bind  >> setpagedevice" \
  -f "inputFile.pdf"

Примечание: эта команда делает PDF на 1 см шире, чем A4. Если вы затем напечатаете на A4, все будет уменьшено, чтобы соответствовать, и желоб на самом деле будет немного тоньше, чем 1 см (это будет 9,5 мм). Если этого недостаточно, вам придется немного по алгебре, чтобы получить правильное смещение. В этом случае было бы 29,8пт вместо 28пт, чтобы получить напечатанный желоб размером 10,0 мм (вам также необходимо установить -dDEVICEWIDTHPOINTS=624.8). Однако, если желоб меньше ~ 2 см, тогда, вероятно, не стоит рассчитывать, особенно с учетом допусков при печати и размера бумаги.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .