Это можно сделать с помощью Ghostscript plus pdftk, но для этого требуется как минимум 2 различных шага.
AFAIK, вы не можете напрямую контролировать размещение штампа 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 баллов. Это должно имитировать вашу «маленькую» марку, для которой вы ищете место размещения.
Секунда: Создайте полностраничный (в моем случае, файл формата PDF) 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 пункта (то есть размер страницы 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
. (Я сделал это для верхнего правого угла, вы хотите свой для верхнего левого угла.)