1

http://www.fpdf.org/en/script/script93.phpのこの FPDF スクリプトを使用して、HTML フォーム データをテンプレートの pdf フィールドに入力しています。これ:

require('fpdm/fpdm.php');

$fields = array(
    'name'  => $_POST['_fid_6'],
    'address'  => $_POST['_fid_7'],
    'city'  => $_POST['_fid_8'],
);

$pdf = new FPDM('template.pdf');
$pdf->Load($fields, false); // second parameter: false if field values are in ISO-8859-1, true if UTF-8
$pdf->Merge();
$pdf->Output('qaf.pdf', 'F'); 

zip で提供されているサンプルの template.pdf を使用すると、正常に動作します。しかし、私が自分のpdfテンプレート(template3.pdf)を使用すると、次のようになります:

require('fpdm/fpdm.php');

$fields = array(
    'cascade'  => $_POST['_fid_6'],
    'structuretype'  => $_POST['_fid_7'],
    'marketmanager'  => $_POST['_fid_8'],
);

$pdf = new FPDM('template3.pdf');
$pdf->Load($fields, false); // second parameter: false if field values are in ISO-8859-1, true if UTF-8
$pdf->Merge();
$pdf->Output('qaf.pdf', 'F'); 

FPDF-Merge Error: field cascade not foundというエラーが表示されます

アクロバットXIプロを使用しています。PDFテンプレートとHTMLフォームのフィールド名を3回チェックしました。PDF を最適化して圧縮を取り除き、Web 表示を高速化し、Acrobat 5.0 以降と互換性を持たせました。私のテンプレートは7ページですが、1ページだけ試してみましたが同じ結果でした。他のデータやオブジェクトを破棄して実験しましたが、それでも同じエラーが発生します。

私のpdfテンプレートには、例のtemplate.pdfとは異なるものがあり、エラーを引き起こしているはずです。しかし、それが何であるかはわかりません。プロプライエタリであるため、実際のテンプレート pdf をここに含めることはできません。

エラーの原因についてのアイデアはありますか?? ありがとう!

4

4 に答える 4

3

このためには、pdf
を圧縮してから、fdf を圧縮するために実行する必要があります。pdfftk をインストールしてから
、環境を設定し、次のコマンド ライン プロセスで pdftk で圧縮する必要があります。

C:\Users\Deepak\Desktop>pdftk template_3.pdf output template3_o.pdf

次に使用します

template3_o.pdf 

それ以外の

template_3.pdf 
于 2013-12-30T12:42:31.957 に答える
-1

このコードで pdf を機能させるには、pdf に $fields 配列で指定したフィールドが必要です。そのためには、簡単な解決策があります。

  1. LibreOffice Writer を開き、フォーム コントロールを使用してフォームを作成します。
  2. フィールドをダブルクリックして (すべてのプロパティを含むウィンドウが開きます)、フィールドに名前を付けます。
  3. この名前を $field 配列のキーとして使用して、値を設定し、その値を PDF ドキュメントに表示します。
  4. フォームのデザインが完了したら、すべてのフォーム コントロールに名前を付けます。
  5. LibreOffice の PDF へのエクスポート機能を使用し、このエクスポートされた PDF をコードに使用して、編集可能な PDF を表示します。
于 2016-04-02T06:48:24.500 に答える