PHP: campi estratto FDF come una matrice da un PDF
Domanda
Voglio estrarre i campi disponibili come una matrice da un PDF compilabili.
una matrice simile: array('firstname','secondname','address');
Non ho bisogno i valori per quei campi, se sono pieni.
che cosa è il modo più semplice per farlo con PHP?
Soluzione
in documentazione in linea per "fdf_next_field_name" il seguente esempio è dato che è possibile modificare per memorizzare i nomi dei campi in un array
<?php
$fdf = fdf_open($HTTP_FDF_DATA);
for ($field = fdf_next_field_name($fdf); $field != ""; $field = fdf_next_field_name($fdf, $field)) {
echo "field: $field\n";
}
?>
Altri suggerimenti
I upvoted la risposta di Murray perché la sua era in Ernest e sono abbastanza sicuro che ha ragione pre PHP 5.3
Purtroppo, PECL DFF non c'è più.
Per fortuna, uno "noah" ha fatto un commento sulla documentazione php con una preg_match_all regex soluzione al problema. Incluso qui con lievi modifiche per chiarezza. Noah Viva.
function parse($text_from_file) {
if (!preg_match_all("/<<\s*\/V([^>]*)>>/x",$text_from_file,$out,PREG_SET_ORDER))
return;
for ($i=0;$i<count($out);$i++) {
$pattern = "<<.*/V\s*(.*)\s*/T\s*(.*)\s*>>";
$thing = $out[$i][2];
if (eregi($pattern,$out[$i][0],$regs)) {
$key = $regs[2];
$val = $regs[1];
$key = preg_replace("/^\s*\(/","",$key);
$key = preg_replace("/\)$/","",$key);
$key = preg_replace("/\\\/","",$key);
$val = preg_replace("/^\s*\(/","",$val);
$val = preg_replace("/\)$/","",$val);
$matches[$key] = $val;
}
}
return $matches;
}
mi aspetto che qualcuno otterrà fedup con la mancanza di vero sostegno DFF in PHP e risolvere il problema.
Dal momento che siamo tutti probabilmente dopo lo stesso flusso di lavoro di base, se state leggendo questa domanda, allora si dovrebbe sapere che il flusso di lavoro di base che sto seguendo è:
- scarica normale formato pdf.
- LibreOffice per renderlo un modulo PDF con campi denominati .
- pdftk per trasformarlo in un file FDF
- utilizzare questa funzione per capire quali valori esigenze modulo.
- popolano un array PHP piatta con le variabili corrette definite (da db / altro)
- pdf_forge per creare una nuova FDF con i valori pre-riempite
- pdftk di nuovo per creare un nuovo PDF da fdf + original-pdf con le variabili (da db / altro)
- L'utile
HTH
-FT
Se si controlla il pdf e vogliono solo le chiavi, di seguito funzionerà. Usi PHP, nessun altre librerie (buona se ospite non ha loro).
Imposta il pulsante di invio pdf in html e impostare la pagina per l'indirizzo in cui il vostro codice PHP verrà eseguito.
$q_string = file_get_contents("php://input");
parse_str($q_string , $pdf_array);
$pdfkeys = array_keys($pdf_array);
La stringa di query html, dal file pdf, viene messo nella variabile $ q_string. Viene quindi analizzato in un array chiamato $ pdf_array. $ Pdf_array detiene tutte le chiavi e valori. Poi array_keys () viene utilizzato per mettere tutte le chiavi in ??$ pdfkeys come si voleva.
I era venuto qui in cerca come leggere i valori pdf di mettere in un db, e, infine, dopo un po 'di più rovistando si avvicinò con quanto sopra. Speriamo che soddisfa le esigenze di alcune persone. XFDF può anche funzionare, ma è necessario analizzare come XML, allora -. Questo era più semplice per me
ho un post normale da file PDF presentazione al mio assistente, ma non nel _POST array $. Non vi resta che analizzarlo da PHP: // Ingresso:
$allVars = file_get_contents("php://input");
parse_str($allVars, $myPost);
foreach($myPost as $key => $value) {
$allKeys[] = $key;
}