Compilazione di moduli PDF con PHP [chiuso]
Domanda
Esistono librerie PHP che possono essere utilizzate per compilare moduli PDF e quindi salvarli (appiattirli) in file PDF?
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.