Vraag PDF-bestand met stempel stempelen voor positie van stempelbestand


Weet iemand over het stempelen van een PDF-bestand naar een PDF-bestand en ook over de besturing van het positioneren van een PDF-bestandstempel?

Ik heb een bestand orginal.pdf en logo.pdf. Ik wil stempelen logo.pdf bestand naar bestand orginal.pdf links bovenaan het bestand original.pdf. Hoe kan het worden gedaan met Ghostscript of pdftk?


10
2017-12-12 06:49


oorsprong


antwoorden:


Het kan worden gedaan met Ghostscript plus pdftk, maar het vereist minstens 2 verschillende stappen.

AFAIK, je kunt niet direct sturen pdftkstempel plaatsing. Standaard wordt de stempel in het midden van de pagina geplaatst en wordt tegelijkertijd een 'schaal-om-te-passen'-bewerking uitgevoerd.

U moet dus eerst uw stempel repareren, zodat deze eerst op een lege pagina wordt geplaatst, precies op de positie waar u hem wilt hebben. Dit kunt u met behulp van Ghostscript in een eerste stap bereiken. Gebruik vervolgens pdftk in een tweede stap om de twee bestanden samen te voegen.

Laten we een voorbeeld gebruiken.

Eerste: Maak een 'stamp-small.pdf'. (Je hebt de jouwe al; ik heb er een nodig om het principe te demonstreren.)

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"

Dit voorbeeld was voor Linux of Mac OS X. Op Windows zou je het als volgt aanpassen:

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"

(Je zou het ook allemaal op één regel kunnen zetten, maar dan de regel-voortzettingstekens voor het respectievelijke besturingssysteem overslaan.) Dit eerste commando overhandigt een reeks eenvoudige PostScript-instructies aan de commandolijn van Ghostscript en vertelt het om een ​​kleine PDF-pagina met een dimensie te maken van 320x50 ptn. Dit zou je 'kleine' stempel moeten simuleren waarvoor je een plaatsing zoekt.

Tweede: Maak een PDF-bestand van de volledige pagina (in mijn geval een A4) dat in de derde stap kan worden toegepast als de echte stempel:

gs \
  -o A4-stamp.pdf \
  -sDEVICE=pdfwrite \
  -g5950x8420 \
  -c "<</PageOffset [280 790]>> setpagedevice" \
  -f stamp-small.pdf 

Op Windows:

gswin32c.exe ^
  -o A4-stamp.pdf ^
  -sDEVICE=pdfwrite ^
  -g5950x8420 ^
  -c "<</PageOffset [280 790]>> setpagedevice" ^
  -f stamp-small.pdf 

Deze opdracht heeft verschillende dingen bereikt:

  1. Het nam de initieel gecreëerde 'stamp-small.pdf' als invoer.
  2. Het gebruikte een canvas van 595x842 pts (dat is een ISO A4-paginaformaat).
  3. Het past een kleine PostScript-opdracht toe om de invoerinhoud te verschuiven met 280 pt aan de rechterkant en 790 pt aan de bovenkant (PostScript- en PDF-coördinaten beginnen te tellen vanuit de linkerbenedenhoek).
  4. Het maakt 'A4-stamp.pdf' als uitvoer.

Effectief is mijn originele kleine stempelreeks nu in de rechterbovenhoek van een A4-pagina.

Derde: Nu kunt u dit nieuwe 'stempel' in uw originele PDF-bestand toepassen met pdftk:

pdftk original.pdf stamp A4-stamp.pdf output stamped.pdf

of om alle pagina's van een originele PDF met meerdere pagina's te stempelen:

pdftk original.pdf multistamp A4-stamp.pdf output stamped.pdf

Dit voorbeeld zou u voldoende idee moeten geven over hoe u een vergelijkbare procedure voor uzelf kunt ontwikkelen logo.pdf zoals ik deed voor mijn stamp-small.pdf. (Ik deed het voor de rechterbovenhoek, je wilt dat van jou voor de linkerbovenhoek.)


27
2017-12-19 19:48