21

PHP だけを使用して FDF データを PDF ファイルとマージすることは可能ですか? または、これを達成するためにサードパーティのコマンドラインツールを使用する以外にオプションはありませんか?

もしそうなら、誰かが私を1つの方向に向けることができますか?

現在、FDF ファイルをブラウザーに出力して、ユーザーが入力済みの PDF にリダイレクトされることを期待していますが、そうでない人もいます。header('Content-type: application/vnd.fdf'); を使用しているにもかかわらず、FDF コンテンツが画面に出力されています。

4

4 に答える 4

33

将来の参考のために、サードパーティのアプリなしでそれを行う信頼できる方法はないようです. Pdftk ( http://www.accesspdf.com/pdftk/ ) が私の解決策になりました。

最初に以前と同じように FDF ファイルを生成し、次の PHP コードを使用して PDF ファイルにマージしました。

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="Download.pdf"');
passthru("pdftk file.pdf fill_form data.fdf output - ");
exit;

思ったよりずっと簡単でした。これにより、ブラウザーに PDF ファイルをダウンロードさせるだけなので、すべてのブラウザーが FDF を適切に処理できるようにするために、ヘッダーとファイル拡張子をハックする必要がすぐになくなります。

PDF 出力ファイルを編集できないようにする場合は、

    passthru("pdftk file.pdf fill_form data.fdf output - flatten");

これが基本的なものである場合は申し訳ありませんが、私が耐えた頭痛を人々が経験しないように、すべてを1か所にまとめたと思いました.

注意 PATH 変数が設定されていない場合は、pdftk へのフル パスを使用する必要があります。

    passthru("/usr/local/bin/pdftk file.pdf fill_form data.fdf output - flatten");
于 2009-09-07T18:28:42.043 に答える
3

passthru も pdftk も使用せず、2004 年に作成されたスクリプトだけを使用する別の方法がありますが、それでもうまく機能します: forge_fdf

それはあなたのpdfにまっすぐに組み込むことができるfdfを構築するのに役立ちます、それはあなたがあなたを意味します

これを php ファイルに保存します。たとえば、generatePdf.php とします。

require_once('forge_fdf.php');  

// leave this blank if we're associating the FDF w/ the PDF via URL
$pdf_form_url= "";


// default data; these two arrays must ultimately list all of the fields
// you desire to alter, even if you just want to set the 'hidden' flag;
//
//
$fdf_data_names= array(); // none of these in this example
$fdf_data_strings= array(); // none of these in this example

$fdf_data_strings['email']=mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com';

$fields_hidden= array();
$fields_readonly= array();

// set this to retry the previous state
$retry_b= false;

header( 'content-type: application/vnd.fdf' );

echo forge_fdf( $pdf_form_url,
        $fdf_data_strings, 
        $fdf_data_names,
        $fields_hidden,
        $fields_readonly );

Pathtoyourpdf/nameofpdffile.pdf#FDF=generatePdf.php へのリンクを作成すると、ブラウザーで PDF ファイルが開きます (または、ディスクに保存する方法があると思います)。フィールドの電子メールには MYSQL からのデータが入力されます。mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com'

チェックボックス、ラジオボタンなどで動作します... firefox でうまく開きます。他のブラウザでテストする必要があります。

PDF HACKSの詳細情報

于 2011-04-26T04:56:44.907 に答える
2

centosにpdftkをインストールするために私が見つけた最も簡単な方法:

rpmforge リポジトリをインストールします - http://wiki.centos.org/AdditionalResources/Repositories/RPMForge#head-5aabf02717d5b6b12d47edbc5811404998926a1b

それから

yum インストール pdftk

以上です!

于 2010-11-20T07:18:23.867 に答える
1

http://www.setasign.de/products/pdf-php-solutions/fpdi/demos/concatenate-fake/

これは機能します。クラスのダウンロードは Web サイトからもリンクされています。

passthru/exec コマンドや追加の拡張機能は必要ありません。

これは、PDFTKに戻った新しいpdfバージョン1.5以降では機能しませんが、「exec」コマンドを使用してすべてのpdfで機能します。

于 2011-04-14T09:30:56.597 に答える