Може да се направи с 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 страница с размер от 320х50 т. Това трябва да симулира вашия „малък“ печат, за който търсите място.
Второ: Създайте PDF файл на цяла страница (в моя случай с размер A4), който може да бъде приложен в третата стъпка като истински печат:
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“ като изход.
Ефективно моят оригинален низ с печат с малък размер вече е в горния десен ъгъл на страница A4.
Трето: Сега можете да приложите този нов „печат“ към вашия оригинален 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