Domanda

Esistono librerie PHP che possono essere utilizzate per compilare moduli PDF e quindi salvarli (appiattirli) in file PDF?

È stato utile?

Soluzione

Le librerie e i framework qui menzionati sono buoni, ma se tutto ciò che vuoi fare è compilare un modulo e appiattirlo, ti consiglio lo strumento da riga di comando chiamato pdftk (PDF Toolkit).

Vedere https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

Puoi chiamare la riga di comando da php e il comando è

pdftk fileformato.pdf fill_form fieldinfo.fdf output file di output.pdf flatten

Dovrai trovare il formato di un file FDF per generare le informazioni per compilare i campi.Ecco un buon collegamento per questo:

http://www.tgreer.com/fdfServe.html

[Modificare:Il collegamento sopra sembra essere fuori servizio.Ecco qualche informazione in più...]

Il comando pdftk può generare un file FDF da un file di modulo PDF.È quindi possibile utilizzare il file FDF generato come campione.I campi del modulo sono la parte del file FDF che assomiglia a

...
<< /T(f1-1) /V(text of field) >>
<< /T(f1-2) /V(text of another field) >>
...

Potresti anche dare un'occhiata php-pdftk, che è una libreria specifica per PHP.Non l'ho usato, ma il commentatore Álvaro (sotto) lo consiglia.

Altri suggerimenti

Un grande +1 alla risposta accettata e un piccolo suggerimento se riscontri problemi di codifica con il file fdf.Se generi il file field.fdf e durante l'esecuzione

file -bi fields.fdf

ottieni

application/octet-stream; charset=binary

allora molto probabilmente ti sei imbattuto in un problema con il set di caratteri UTF-16.Prova a convertire il ftf tramite

cat fields.fdf | sed -e's/\x00//g' | sed -e's/\xFE\xFF//g' > better.fdf

Sono stato quindi in grado di modificare e importare il file better.fdf nel mio modulo PDF.

Speriamo che questo risparmi a qualcuno un po' di ricerca su Google

Ho avuto molto successo utilizzando un modulo che invia a uno script php che utilizza fpdf e passa i campi del modulo come variabili get (forse non è una buona pratica, ma funziona).

 <?php
require('fpdf.php');
$pdf=new PDF();
$pdf->AddPage();
$pdf->SetY(30);
$pdf->SetX(100);
$pdf->MultiCell(10,4,$_POST['content'],0,'J');
$pdf->Output();
?>

e potresti avere qualcosa del genere.

  <form action="fooPDF.php" method="post">
     <p>PDF CONTENT: <textarea name="content" ></textarea></p>
     <p><input type="submit" /></p>
    </form>

Questo esempio scheletrico dovrebbe aiutarti a iniziare.

generazione del file fdf con php:Vedere http://www.php.net/manual/en/book.fdf.php

quindi compilalo in un pdf con pdftk (vedi sopra)

Per:

  • Formato di input più semplice rispetto a XFDF
  • Vero supporto UTF-8 (russo).
  • Esempio completo di utilizzo di PHP

Sentiti libero di controllare il mio PdfFormFillerUTF-8.

Sembra che questo sia stato coperto prima.Fare clic per visualizzare il codice pertinente utilizzando la libreria PDF Zend Framework.

Noi usiamo PDFLib al lavoro.La versione a pagamento non è molto costosa ed esiste un'edizione open source più limitata, se non riesci a sborsare per la versione a pagamento.

Ho scritto una libreria Perl, CAM::PDF, con un interfaccia della riga di comando che può risolvere questo problema.Ho provato a utilizzare una soluzione FDF anni fa, ma l'ho trovata troppo complicata ed è per questo che ho scritto CAM::PDF in primo luogo.La mia libreria utilizza alcune euristiche per sostituire il modulo con il testo desiderato, quindi non è perfetta.Ma funziona nella maggior parte dei casi ed è veloce, gratuito e abbastanza semplice da usare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top