1

入力可能なPDFから配列として使用可能なフィールドを抽出したいと思います。

次のような配列:array('firstname','secondname','address');

これらのフィールドが入力されている場合、それらのフィールドの値は必要ありません。

PHPを使用してそれを行う最も簡単な方法は何ですか?

4

4 に答える 4

2

「fdf_next_field_name」のオンラインドキュメントでは、フィールド名を配列に格納するように変更できる次の例が示されています。

<?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";
}
?>
于 2012-01-11T17:44:08.507 に答える
1

彼女がアーネストにいたので、私はマレーの答えに賛成しました、そして私は彼がphp5.3より前に正しいと確信しています

悲しいことに、peclfdfはもうありません。

ありがたいことに、 1人の「noah」がこの問題に対するpreg_match_all正規表現ソリューションを使用してphpドキュメントにコメントしました。わかりやすくするためにわずかな変更を加えてここに含まれています。長生きするノア。

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

誰かがphpでの真のfdfサポートの欠如にうんざりしてこれを修正することを期待しています。

この質問を読んでいる場合、私たち全員がおそらく同じ基本ワークフローを実行しているので、私がフォローしている基本ワークフローは次のとおりであることを知っておく必要があります。

  • 通常のPDFフォームをダウンロードします。
  • libreofficeを使用して、名前付きフィールドを持つpdfフォームにします。
  • pdftkを使用してfdfファイルに変換します
  • この関数を使用して、フォームに必要な値を把握します。
  • フラットなphp配列に(db / whateverから)定義された正しい変数を入力します
  • pdf_forgeを使用して、値が事前に入力された新しいfdfを作成します
  • もう一度pdftkを使用して、変数(db / whateverから)を使用してfdf+original-pdfから新しいpdfを作成します。
  • 利益

HTH

-FT

于 2013-01-21T16:07:10.217 に答える
1

PDFを制御し、キーだけが必要な場合は、次のように機能します。phpを使用しますが、他のライブラリは使用しません(ホストにライブラリがない場合に適しています)。

PDF送信ボタンをhtmlに設定し、ページをphpコードが実行されるアドレスに設定します。 ここに画像の説明を入力してください

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

pdfファイルからのhtmlクエリ文字列は、変数$q_stringに入れられます。次に、$pdf_arrayという配列に解析されます。$ pdf_arrayは、すべてのキーと値を保持します。次に、array_keys()を使用して、必要に応じてすべてのキーを$pdfkeysに配置します。

私はここに来て、PDF値を読み取ってデータベースに入れる方法を探していましたが、最後にもう少し調べてみたところ、上記のことが思い浮かびました。うまくいけば、一部の人々のニーズを満たしています。xfdfも機能しますが、xmlとして解析する必要があります。これは私にとっては簡単でした。

于 2016-09-16T01:30:30.177 に答える
0

サーバーに送信するPDFから通常の投稿を受け取りますが、$_POST配列にはありません。php:// inputから解析する必要があります:

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

parse_str($allVars, $myPost);

foreach($myPost as $key => $value) {
 $allKeys[] = $key;
}
于 2017-11-19T02:35:24.087 に答える