Это можно сделать с помощью Ghostscript плюс pdftk, но для этого требуется как минимум 2 разных шага.
Насколько я знаю, вы не можете напрямую контролировать размещение штампа pdftk
. По умолчанию он помещает штамп в центр страницы и в то же время выполняет операцию «масштабирования по размеру».
Итак, вы должны сначала исправить свой штамп, чтобы он сначала помещался на пустой странице, прямо в том месте, где вы хотите. Этого вы можете достичь с помощью Ghostscript на первом этапе. Затем, на втором этапе, используйте pdftk для объединения двух файлов.
Давайте использовать пример.
Во-первых: создайте файл "stamp-small.pdf". (У вас уже есть свой; мне нужен один, чтобы продемонстрировать принцип.)
gs \
-o stamp-small.pdf \
-sDEVICE=pdfwrite \
-g3200x500 \
-c "/Helvetica-Bold findfont 36 scalefont setfont" \
-c "0 .8 0 0 setcmykcolor" \
-c "12 12 moveto" \
-c "(This is my stamp) show" \
-c "showpage"
Этот пример был для Linux или Mac OS X. В Windows вы должны изменить его следующим образом:
gswin32c.exe ^
-o stamp-small.pdf ^
-sDEVICE=pdfwrite ^
-g3200x500 ^
-c "/Helvetica-Bold findfont 36 scalefont setfont" ^
-c "0 .8 0 0 setcmykcolor" ^
-c "12 12 moveto" ^
-c "(This is my stamp) show" ^
-c "showpage"
(Вы также можете поместить все это в одну строку, но затем пропустить метки продолжения строки для соответствующей ОС.) Эта первая команда передает ряд простых операторов PostScript в командную строку Ghostscript и сообщает ей создать небольшую страницу PDF с размером размером 320x50 пт. Это должно имитировать вашу «маленькую» марку, которую вы ищете для размещения.
Второе: создайте полностраничный (в моем случае, формата A4) PDF-файл, который можно будет применить на третьем шаге в качестве настоящей печати:
gs \
-o A4-stamp.pdf \
-sDEVICE=pdfwrite \
-g5950x8420 \
-c "<</PageOffset [280 790]>> setpagedevice" \
-f stamp-small.pdf
В Windows:
gswin32c.exe ^
-o A4-stamp.pdf ^
-sDEVICE=pdfwrite ^
-g5950x8420 ^
-c "<</PageOffset [280 790]>> setpagedevice" ^
-f stamp-small.pdf
Эта команда достигла нескольких целей:
- В качестве входных данных использовался изначально созданный файл «stamp-small.pdf».
- Он использовал холст размером 595x842 pts (то есть размер страницы ISO A4).
- Он применяет небольшую команду PostScript для смещения входного содержимого на 280 точек вправо и на 790 точек вверх (координаты PostScript и PDF начинают отсчет с нижнего левого угла).
- Он создает «A4-stamp.pdf» в качестве вывода.
По сути, моя исходная строка с марками небольшого размера теперь находится в правом верхнем углу страницы формата А4.
Третье: теперь вы можете применить этот новый «штамп» к исходному файлу PDF с помощью pdftk:
pdftk original.pdf stamp A4-stamp.pdf output stamped.pdf
или, чтобы проштамповать все страницы многостраничного исходного PDF-файла:
pdftk original.pdf multistamp A4-stamp.pdf output stamped.pdf
Этот пример должен дать вам достаточное представление о том, как разработать аналогичную процедуру для вашего собственного logo.pdf
, которую я сделал для своего stamp-small.pdf
. (Я сделал это для верхнего правого угла, вы хотите, чтобы ваш был для верхнего левого угла.)
person
Kurt Pfeifle
schedule
19.12.2011