2010-11-28 25 views
45

Me gustaría poder escribir/superponer texto sobre un documento pdf existente usando PHP. Lo que espero hacer es tener un documento en formato pdf que pueda actuar como plantilla y completar los vacíos abriendo el documento de la plantilla, superponiendo el texto relevante y publicando el resultado como un nuevo documento. El documento de plantilla es una sola página, por lo que no es necesario fusionar/manipular páginas.Escribir/dibujar sobre un documento de plantilla PDF en PHP

¿Hay bibliotecas gratuitas que pueden hacer esto? Donde sea que deba mirar? La mayoría de las búsquedas que he hecho parecen ocuparme de combinar documentos/agregar páginas, en lugar de superponer el contenido en una página existente.

Gracias.

* EDIT: Esto es lo que hice: 1. Descargar FPDF 2. Descargar FPDI + FPDF_TPL de

http://www.setasign.de/products/pdf-php-solutions/fpdi/downloads/

Aquí hay un código de ejemplo para las futuras vagabundos (adaptado de las muestras en www.setasign.de):

<?php 
include('fpdf.php'); 
include('fpdi.php'); 

// initiate FPDI 
$pdf =& new FPDI(); 
// add a page 
$pdf->AddPage(); 
// set the sourcefile 
$pdf->setSourceFile('templatedoc.pdf'); 
// import page 1 
$tplIdx = $pdf->importPage(1); 
// use the imported page as the template 
$pdf->useTemplate($tplIdx, 0, 0); 

// now write some text above the imported page 
$pdf->SetFont('Arial'); 
$pdf->SetTextColor(255,0,0); 
$pdf->SetXY(25, 25); 
$pdf->Write(0, "This is just a simple text"); 

$pdf->Output('newpdf.pdf', 'D'); 
?> 
+1

Me alegra haber editado en un ejemplo de la respuesta, +1 para eso, ¿no es así? :-) – Orbling

+0

¡Sí! Y me ayudará también cuando en unas pocas semanas me olvide de lo que he hecho y lo vuelva a buscar: P (Aún no lo he implementado para mi proyecto, simplemente descubrí cómo hacerlo). –

+0

¿Encontraste algún modo de anexar una imagen en un documento existente en lugar de escribir un texto? –

Respuesta

19

Tener un vistazo a la FPDI Library un complemento a FPDF para la anotación de la plantilla.

También se puede atornillar a TCPDF, otra popular biblioteca PDF de PHP. Un PDF existente se utiliza como la base de una página, en lugar de un espacio en blanco, después de eso, los procedimientos son los mismos que la creación de PDF regular.

+0

Gracias! Agradable y fácil de superponer texto a través del código como quiero. –

+0

Si solo desea completar un formulario, considere la ruta FDF discutida por moontear, ya que es preferible anotar. Si necesita realizar cambios más sustanciales, entonces FPDI en TCPDF es necesario. – Orbling

4

Probablemente desee utilizar formularios PDF para lo que quiere hacer. Para llenar estos bebés, puede usar el método FDF que se describe aquí: Using HTML forms to fill in PDF fields with PHP and FDF.
En realidad, hay otra buena publicación de SO sobre el formulario en PDF rellenando aquí: Filling PDF Forms with PHP.

+0

+1 Porque FDF es el mejor método para la modificación de formularios si no necesita hacer anotaciones que los formularios no pueden atender. – Orbling

+0

+1 Este es un enfoque elegante, pero mi documento simple solo necesita un par de insertos de texto para garantizar que vaya todo el tiempo, por lo que creo que el otro método sugerido es un poco más fácil (y más rápido). ¡Gracias de cualquier manera! –

1

Cuando desee utilizar PDF lib para escribir sobre un documento, la posición es lenta y aburrida. Dhek es útil para tal tarea: https://github.com/applicius/dhek/releases.

Se define el mapeo JSON sobre la página/coordenadas de PDF, para que pueda escribir con la API de PDF que prefiera.

Cuestiones relacionadas