kaybenleroll
¿Alguien sabe de un buen método para editar archivos PDF en PHP? Preferiblemente métodos de código abierto/costo de licencia cero. 🙂
¿Estoy pensando en abrir un archivo PDF, reemplazar el texto en el PDF y luego escribir la versión modificada del PDF?
en la parte delantera
Grom
Si está adoptando un enfoque de “llenar el espacio en blanco”, puede colocar el texto con precisión en cualquier lugar que desee en la página. Por lo tanto, es relativamente fácil (si no un poco tedioso) agregar el texto que falta al documento. Por ejemplo con Zend Framework:
<?php
require_once 'Zend/Pdf.php';
$pdf = Zend_Pdf::load('blank.pdf');
$page = $pdf->pages[0];
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
$page->setFont($font, 12);
$page->drawText('Hello world!', 72, 720);
$pdf->save('zend.pdf');
Si está tratando de reemplazar el contenido en línea, como un “[placeholder string]”, se vuelve mucho más complicado. Si bien es técnicamente posible hacerlo, es probable que arruine el diseño de la página.
Un documento PDF se compone de un conjunto de operaciones de dibujo primitivas: línea aquí, imagen aquí, fragmento de texto allá, etc. No contiene ninguna información sobre la intención de diseño de esas primitivas.
-
¡Esto es genial! No me di cuenta de que Zend Framework era gratuito, estaba confundido por Zend Studio, que es propietario.
– Liam
7 de octubre de 2008 a las 10:03
-
Solo una advertencia para cualquiera que intente usar esto: solo funciona con archivos PDF creados en Acrobat versión 4 y anteriores. Después de la versión 4, Adobe comenzó a codificar archivos, lo que dificulta la realización de ediciones en PDF (o la importación a otros PDF).
– Darryl Hein
9 de junio de 2009 a las 1:26
-
Compatibilidad con PDF 1.4 desde entonces se ha agregado.
– Rafael Schweikert
14 de abril de 2011 a las 9:49
-
¿Esto ahora funciona sin Zend?
– William Entriken
11 de abril de 2013 a las 17:24
-
Cualquier solución si quisiera reemplazar contenido como [placeholder string]?
– Starx
26 de agosto de 2013 a las 9:28
metatrón
Hay una clase de PDF gratuita y fácil de usar para crear documentos PDF. Se llama FPDF. En combinación con FPDI (http://www.setasign.de/products/pdf-php-solutions/fpdi) incluso es posible editar documentos PDF. El siguiente código muestra cómo usar FPDF y FPDI para llenar un cupón de regalo existente con los datos del usuario.
require_once('fpdf.php');
require_once('fpdi.php');
$pdf = new FPDI();
$pdf->AddPage();
$pdf->setSourceFile('gift_coupon.pdf');
// import page 1
$tplIdx = $this->pdf->importPage(1);
//use the imported page and place it at point 0,0; calculate width and height
//automaticallay and ajust the page size to the size of the imported page
$this->pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);
// now write some text above the imported page
$this->pdf->SetFont('Arial', '', '13');
$this->pdf->SetTextColor(0,0,0);
//set position in pdf document
$this->pdf->SetXY(20, 20);
//first parameter defines the line height
$this->pdf->Write(0, 'gift code');
//force the browser to download the output
$this->pdf->Output('gift_coupon_generated.pdf', 'D');
-
Excelente biblioteca: era exactamente lo que buscaba, gracias por la recomendación.
– james-geldart
26 de enero de 2012 a las 15:53
-
Esto es bueno pero en algunos pdf da este error
"FPDF error: This document (testcopy.pdf) probably uses a compression technique which is not supported by the free parser shipped with FPDI."
¿Alguna solución para ello?– usuario1360768
29 de agosto de 2012 a las 5:19
-
Debe convertir su pdf a una versión anterior (pdf 1.4) o usar la edición comercial fpdi. Ofrecemos un reemplazo del analizador como un complemento comercial separado, que permite que FPDI maneje documentos que usan estas funciones de compresión. fuente
– franco suizo
1 de marzo de 2018 a las 9:10
-
¿Es posible configurar SourceFile desde otra página web? Ej: ejemplo.com/archivo.pdf?
– Alex
30 de junio de 2020 a las 11:23
adamthehutt
Si necesita archivos PDF realmente simples, entonces Zend o FPDF está bien. Sin embargo, me resulta difícil y frustrante trabajar con ellos. Además, debido a la forma en que funciona la API, no existe una buena forma de separar el contenido de la presentación de la lógica comercial.
Por esa razón, uso dompdf, que convierte automáticamente HTML y CSS a documentos PDF. Puede diseñar una plantilla tal como lo haría con una página HTML y utilizar la sintaxis HTML estándar. Incluso puede incluir un archivo CSS externo. La biblioteca no es perfecta y el marcado o css muy complejo a veces se altera, pero no he encontrado nada más que funcione tan bien.
-
-1 Ya que no responde la pregunta. El cartel quiere editar archivos PDF existentes y no crearlos desde cero.
– Reimundo
26 de enero de 2012 a las 11:24
-
Vine a esta página porque estaba buscando editar un PDF, pero esta respuesta me parece más útil porque puedo ver por qué puede ser más fácil construir desde cero en html en lugar de editar un PDF existente.
– Justin Vicente
29 de marzo de 2012 a las 21:44
No sé si esta es una opción, pero funcionaría de manera muy similar a la biblioteca pdf de Zend, pero no necesita cargar un montón de código adicional (el marco zend). Simplemente extiende FPDF.
http://www.setasign.de/products/pdf-php-solutions/fpdi/
Aquí básicamente puedes hacer lo mismo. Cargue el PDF, escriba sobre él y luego guárdelo en un nuevo PDF. En FPDI básicamente insertas el PDF como una imagen para que puedas poner lo que quieras sobre él.
Pero nuevamente, esto usa FPDF, así que si no quieres usarlo, entonces no funcionará.
Juan
Zend Framework puede cargar y editar archivos PDF existentes. Creo que también admite revisiones.
Lo uso para crear documentos en un proyecto y funciona muy bien. Sin embargo, nunca edité uno.
mira el documento aquí
ross
La documentación de la extensión PDF/pdflib en PHP es escasa (algo que se ha señalado en bugs.php.net). Le recomiendo que use la biblioteca Zend.
Mufaddal
Tcpdf también es una buena biblioteca para generar pdf en php
http://www.tcpdf.org/
-
Para todos los que buscan cómo agregar encabezado y pie de página fácilmente, TCPDF tiene un ejemplo muy simple y efectivo: tcpdf.org/examples/example_003
– Alen Simunic
1 de julio de 2018 a las 8:43
-
tcPDF es para generar un nuevo PDF. La pregunta es sobre la modificación de archivos PDF preexistentes.
– Gherman
15 de julio de 2021 a las 19:16
Solo he usado FPDF y creo que es increíble. Como realmente increíble.
– SQLMason
17/10/2011 a las 17:02
También estaba tratando de encontrar una solución rápida a esto. Quería el mismo pdf para cada una de mis páginas de productos, pero con el número de producto y el nombre del producto reemplazados en cada pdf. Descubrí que usar la combinación de correspondencia (Word u OpenOffice) es en realidad la forma más fácil de hacerlo. Luego exporté todos los pdf y los subí. Espero que esto ayude a alguien.
– NoJay
02/09/2015 a las 19:09
¿Por qué se consideró que no estaba lo suficientemente enfocado?
– Gherman
20 de mayo de 2021 a las 13:13