Pregunta

Quiero extraer los campos disponibles como una matriz de un PDF más relleno.

Una matriz como: array('firstname','secondname','address');

No necesito los valores para esos campos, si se llenan.

¿Cuál es la forma más fácil de hacerlo usando PHP?

¿Fue útil?

Solución

En documentación en línea para "FDF_NEXT_FIELD_NAME" se da el siguiente ejemplo que puede modificar para almacenar los nombres de campo en una matriz

<?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";
}
?>

Otros consejos

Vivé la respuesta de Murray porque ella estaba en Ernest y estoy bastante seguro de que tiene razón antes de Php 5.3

Lamentablemente, PECL FDF ya no existe.

Agradecidamente, Un "Noé" hizo un comentario sobre la documentación de PHP con una solución preg_match_all regex al problema. Incluido aquí con ligeras modificaciones para mayor claridad. Larga vivir noé.

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;
    }

Espero que alguien se vuelva FUARD con la falta de un verdadero soporte de FDF en PHP y solucione esto.

Dado que probablemente todos estamos después del mismo flujo de trabajo básico si está leyendo esta pregunta, entonces debe saber que el flujo de trabajo básico que estoy siguiendo es:

Hth

-PIE

Si controla el PDF y solo desea las teclas, lo siguiente funcionará. Utiliza PHP, no hay otras bibliotecas (bien si aloja no las tiene).

Establezca el botón PDF Enviar en HTML y configure la página en la dirección donde se ejecutará su código PHP.enter image description here

$q_string  = file_get_contents("php://input");
parse_str($q_string , $pdf_array);
$pdfkeys = array_keys($pdf_array);

La cadena de consulta HTML, del archivo PDF, se coloca en la variable $ Q_String. Luego se analiza en una matriz llamada $ PDF_Array. $ PDF_Array contiene todas las claves y valores. Entonces Array_Keys () se usa para poner todas las claves en $ pdfkeys como quisieras.

Había venido aquí mirando cómo leer los valores de PDF para poner en un DB, y finalmente después de que un poco más se le ocurriera lo anterior. Con suerte, satisfacer las necesidades de algunas personas. XFDF también puede funcionar, pero deberá analizar como XML entonces, esto fue más simple para mí.

Recibo una publicación normal de PDFS enviando a mi servidor, pero no en la matriz de $ _post. Solo tienes que analizarlo desde php: // entrada:

$allVars = file_get_contents("php://input");

parse_str($allVars, $myPost);

foreach($myPost as $key => $value) {
 $allKeys[] = $key;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top