Editare PDF în PHP?

Știe cineva despre o metodă bună de editare a fișierelor PDF în PHP? De preferință, metodele de cost cu licență deschisă / fără licență. :)

Mă gândesc de-a lungul liniilor de deschidere a unui fișier PDF, înlocuirea textului în PDF și apoi scrierea versiunii modificate a PDF-ului?

Am creat în trecut fișiere PDF cu ajutorul programelor FPDF, dar mi sa părut puțin uneori dificil.

0
fr hi bn
Încercam să găsesc o soluție rapidă și pentru acest lucru. Am dorit același pdf pentru fiecare dintre paginile mele de produse, dar cu numărul produsului și numele produsului înlocuit pe fiecare pdf. Am constatat că folosirea combinației de corespondență (Word sau OpenOffice) este de fapt cea mai ușoară cale de a face acest lucru. Apoi am exportat toate pdf-urile și le-am încărcat. Sper că acest lucru îi ajută pe cineva.
adăugat autor NotJay, sursa
Am folosit doar FPDF și cred că e minunat. Ca și cu adevărat minunat.
adăugat autor SQLMason, sursa

9 răspunsuri

Folosim pdflib pentru a crea fișiere PDF din aplicațiile noastre de șine. Are legături pentru PHP și o multitudine de alte limbi.

Utilizăm versiunea comercială, dar are și o versiune gratuită / open source care are anumite limitări.

Din păcate, acest lucru permite crearea de PDF-uri numai.

If you want to open and 'edit' existing files, pdflib do provide a product which does this this, but costs a LOT

0
adăugat

Dacă luați un „completați în gol“ abordare, puteți poziționa cu precizie text oriunde doriți pe pagină. Deci, este relativ ușor (dacă nu este un pic plictisitoare) pentru a adăuga textul lipsă la document. De exemplu, cu 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');

Dacă încercați să înlocuiți conținut inline, cum ar fi un "șir de substituenți", devine mult mai complicat. În timp ce este posibil din punct de vedere tehnic, probabil că veți mizeria aspectul paginii.

Un document PDF este alcătuit dintr-un set de operații de desen primitiv: linia de aici, imaginea de aici, bucata de text acolo, etc. Nu conține nici o informație despre intenția de aspect a acelor primitivi.

0
adăugat
De exemplu, primitivul pentru a desena lumea hello este: [(Hello) -40 (W) -30 (or) 15 (ld!)] TJ. Deci, textul de înlocuire a textului nu este ușor.
adăugat autor grom, sursa
Doar un cuvânt de precauție pentru oricine încearcă să folosească acest lucru: funcționează numai cu PDF-urile create în Acrobat versiunea 4 și înainte. După versiunea 4, Adobe a început să codifice fișiere, făcând mai greu să efectueze editări pe fișiere PDF (sau să importe în alte fișiere PDF).
adăugat autor Darryl Hein, sursa
Asta e super! Nu mi-am dat seama că Cadrul Zend era liber, că am fost confundat de Zend Studio, care este proprietară.
adăugat autor Liam, sursa
Orice soluție dacă aș vrea să înlocuiesc conținutul ca [string placeholder]?
adăugat autor Starx, sursa
Lucrează acum fără Zend?
adăugat autor Full Decent, sursa
adăugat autor Raphael Schweikert, sursa
Cum să editați un text PLACEHOLDER?
adăugat autor Magico, sursa

Nu știu dacă aceasta este o opțiune, dar ar funcționa foarte asemănător cu biblioteca pdf a lui Zend, dar nu trebuie să încărcați o grămadă de cod suplimentar (cadrul zend). Extinde doar FPDF.

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

Aici puteți face practic același lucru. Încărcați PDF-ul, scrieți deasupra acestuia și apoi salvați-l într-un PDF nou. În FPDI, introduceți PDF-ul ca imagine, astfel încât să puteți pune tot ce doriți peste el.

Dar din nou, acest lucru folosește FPDF, deci dacă nu doriți să folosiți acest lucru, atunci nu va funcționa.

0
adăugat

Tcpdf is also a good liabrary for generating pdf in php http://www.tcpdf.org/

0
adăugat

Documentația extensiei PDF / pdflib din PHP este rar (ceva ce a fost remarcat în bugs.php.net) - Vă recomand să folosiți biblioteca Zend.

0
adăugat

Zend Framework poate încărca și edita fișierele PDF existente. Cred că susține și revizuirile.

Îl folosesc pentru a crea documente într-un proiect și funcționează excelent. Niciodată nu a fost editat unul.

Check out the doc here

0
adăugat

Dacă aveți nevoie de PDF-uri foarte simple, atunci Zend sau FPDF este bine. Cu toate acestea mi se pare dificil și frustrant să lucrez cu. De asemenea, datorită modului în care API funcționează, nu există o modalitate bună de a separa conținutul de prezentarea de logica de afaceri.

Din acest motiv, folosesc dompdf , care convertește automat HTML și CSS în documente PDF. Puteți să șablonați un șablon exact așa cum ați proceda pentru o pagină HTML și să utilizați o sintaxă HTML standard. Puteți include chiar și un fișier extern CSS. Biblioteca nu este marcată perfectă și foarte complexă, iar css-ul devine uneori mușcat, dar nu am găsit nimic altceva care să funcționeze la fel.

0
adăugat
Am ajuns la această pagină deoarece am căutat să editez un PDF, dar acest răspuns pare mai util pentru mine deoarece pot vedea de ce ar putea fi mai ușor să construiești de la zero în html, decât să editezi un PDF existent.
adăugat autor Justin Vincent, sursa
-1 Deoarece nu răspunde la întrebare. Afișul dorește să editeze fișierele PDF existente care nu le creează de la zero.
adăugat autor Reimund, sursa

Chiar am avut mari speranțe pentru dompdf (este o idee grozavă), dar problema poziționării este un factor major în utilizarea mea de fpdf. Deși este plictisitor ca fiecare element să fie stabilit; este puternic ca toate să iasă.

Am așezat o imagine sub spațiul meu de lucru în document pentru a pune aspectul meu pe partea de sus pentru a se potrivi. Ea a fost întotdeauna suficientă chiar și pentru coloane (necesită un mic pic de calcul al sirului PHP, dar nimic prea teribil de rău).

Mult noroc.

0
adăugat

Există o clasă PDF gratuită și ușor de folosit pentru a crea documente PDF. Se numește FPDF. În combinație cu FPDI ( http://www.setasign.de/products/pdf- php-solutions / fpdi ) este chiar posibil să editați documente PDF. Următorul cod arată cum se utilizează FPDF și FPDI pentru a umple un cupon cadou existent cu datele utilizatorului.

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');
0
adăugat
Bibliotecă excelentă - a fost exact ceea ce am urmat, mulțumesc pentru recomandare
adăugat autor james-geldart, sursa
Trebuie să vă convertiți fișierul pdf într-o versiune mai veche (pdf 1.4) sau să utilizați ediția comercială fpdi. Oferim un înlocuitor de parser ca un addon comercial separat, care permite FPDI să se ocupe de documente care utilizează aceste caracteristici de comprimare. sursă
adăugat autor SwissFr, sursa
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT