2016-10-18 19 views
2

私が記入しようとしているスクリプトでFPDMを使用して、私のPDF文書は、私がここで見つける:FPDMマージエラーextract_pdf_definition_value()の定義をサポートしていません「/タイプ」

http://www.fpdf.org/en/script/script93.php

まず、念頭に置いておきます私が使用している共有ホスティング設定に追加のライブラリをインストールしたくないということです。私はこれを行うためにホストを切り替える必要があります。

は、ここで私が試したものです:の有料版を使用して圧縮し、高速なWebモード

  • を無効にするのAcrobat 5.xのに私のPDFテンプレート(V1.4)
  • のダウングレード

    • 異なる方法で使用されるFDFファイルのバリエーションです。使用するテンプレートを変更するには、PDFTKと高度な出力パラメータ "%PDFTK%%PDFIN%output%PDFOUT%"を使用してください。
    • に成功しました私のPDFのHTML版を書きましたが、それは私のテンプレートのように正確に

    私のコードを見ていない:

    require('/libs/fpdm/fpdm.php'); 
    
    $fields = array(
        'dealer_name' => 'My name', 
        'dealer_address' => 'My address', 
        'dealer_phone' => 'My city', 
    ); 
    
    $pdf = new FPDM('/some/pdf/filename.pdf'); 
    $pdf->Load($fields, false); 
    $pdf->Merge(); 
    $pdf->Output('someoutput.pdf', 'F'); 
    

    エラー

    私がどこにも見つけられないと思われるエラーは次のとおりです:

    <b>FPDF-Merge Error:</b> extract_pdf_definition_value() does not support definition '/Type' 
    

    質問

    は、私がこの仕事をするために私のPDFまたは任意の他の方法を行うことができます任意の他のものはありますか?

  • 答えて

    3

    fpdm.phpはかなり古いですが修正することができます。問題は、FPDMクラス内からグローバル変数にアクセスできないことです。

    問題を解決するには、グローバル変数を保護されたプロパティとしてクラス内に移動する必要があります。

    ステップ1

    次の行を削除:

    $FPDM_FILTERS=array(); //holds all supported filters 
    $FPDM_REGEXPS= array(
        "/Type"=>"/\/Type\s+\/(\w+)$/", 
        "/Subtype" =>"/^\/Subtype\s+\/(\w+)$/" 
    ); 
    

    ステップ2

    線65の周り以下直後 "クラスFPDMを{"、入れ:

    protected $FPDM_FILTERS = array(); //holds all supported filters 
    protected $FPDM_REGEXPS = array(
         "/Type"=>"/\/Type\s+\/(\w+)$/", 
         "/Subtype" =>"/^\/Subtype\s+\/(\w+)$/" 
    ); 
    

    ステップ3

    global $FPDM_FILTERS;global $FPDM_REGEXPS;のすべてのインスタンスを削除します。

    ステップ4

    (プロパティ宣言を除く)残りの参照を更新します。 5

    が正しくfilters/ディレクトリからフィルタを含めるには

    変更$FPDM_FILTERS$FPDM_REGEXPSステップ

    $this->FPDM_REGEXPSに変更

    $this->FPDM_FILTERSに、私たちはクラスに含まれて移動する必要があります。ファイルの先頭からrequire_once()を削除し、コンストラクタの先頭に次の行を追加します。FPDM()

    +1

    素晴らしい、素晴らしい答えです。徹底してくれてありがとう。将来は誰でも、ここにfpdm.phpがあります。[Github gist](https://gist.github.com/josh-candybox/173cacc476631720a05879327950da4e) –

    +0

    ありがとう。あなたは私の日を救う! – cooler

    関連する問題