2011-12-12 22 views
9

¿Alguien sabe acerca de estampado de archivo PDF a archivo PDF y también controles para posicionar el sello de archivo PDF?Sello archivo PDF con control para la posición del archivo de sello

Tengo un archivo orginal.pdf y logo.pdf. Quiero sellar el archivo logo.pdf en el archivo orginal.pdf en la parte superior izquierda del archivo original.pdf. ¿Cómo se puede hacer con Ghostscript o pdftk?

Respuesta

26

Se puede hacer con Ghostscript plus pdftk, pero requiere al menos 2 pasos diferentes.

AFAIK, no se puede controlar directamente la ubicación del sello de pdftk. De forma predeterminada, coloca el sello en el centro de la página y, al mismo tiempo, realiza una operación de 'ajuste a escala'.

Por lo tanto, primero debe reparar su sello para que se coloque primero en una página vacía, justo en la posición que desea. Esto lo puedes lograr con la ayuda de Ghostscript en un primer paso. Luego, en un segundo paso, use pdftk para fusionar los dos archivos.

Vamos a usar un ejemplo.

Primero: Cree un 'sello-pequeño.pdf'. (. Usted tiene el suyo ya, necesito uno para demostrar el principio)

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" 

Este ejemplo fue para Linux o Mac OS X. En Windows deberá modificar de esta manera:

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" 

(Usted también podría ponerlo todo en una línea, pero omita las marcas de continuación de línea para el SO respectivo). Este primer comando entrega una serie de declaraciones PostScript simples a la línea de comando de Ghostscript y le dice que cree una pequeña página PDF con una dimensión de 320x50 pts. Esto debería simular tu sello 'pequeño' para el que buscas colocación.

Segundo: Crear una página completa (en mi caso, un tamaño A4) de archivos PDF que puede ser aplicado en el tercer paso como el sello real:

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

En Windows:

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

Este comando logra varias cosas:

  1. Fue necesaria la 's creado inicialmente tamp-small.pdf 'como entrada.
  2. Usó un lienzo de 595x842 pts (que es tamaño de página ISO A4).
  3. Aplica un pequeño comando PostScript para desplazar el contenido de entrada en 280 ptos a la derecha y 790 pts en la parte superior (las coordenadas PostScript y PDF comienzan a contar desde la esquina inferior izquierda).
  4. Crea 'A4-stamp.pdf' como salida.

Efectivamente, mi cadena de sellos original de pequeño tamaño se encuentra ahora en la esquina superior derecha de una página A4.

Tercero: Ahora puede aplicar este nuevo 'sello' de su archivo PDF original utilizando pdftk:

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

o, para acabar con todas las páginas de un PDF de varias páginas originales:

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

Este ejemplo debería darle suficiente idea sobre cómo desarrollar un procedimiento similar para su propio logo.pdf como lo hice para mi stamp-small.pdf. (Lo hice por la esquina superior derecha, desea la suya por la esquina superior izquierda.)

+0

Gracias por su respuesta anterior. Este problema hecho con script PHP usa FPDI. –

+3

No sé por qué esta respuesta no se etiquetó: resolvió totalmente mi problema de cómo colocar sellos de manera confiable en una página A4. Grandes explicaciones! – galactica

+1

Sí, muy bien respondida, sin idea de por qué el OP no tuvo la decencia de aceptar. –

Cuestiones relacionadas