2011-02-01 23 views
3

私はcodeigniterのプラグインとしてdompdfを使用しています。 pdfを完全に生成します。しかし、いくつかの問題は何日か私を食べている。dompdf透かし、画像、ヘッダー、フッターの問題

  1. 生成されたpdfのすべてのページにヘッダーとして画像を配置したいと考えています。私はhereのチュートリアルに従ってそれをしました。 ですが、進捗はありません。私はすべての種類の画像(jpg、png、gif)をpdf用の同じフォルダに作成しようとしました。うまく行かなかった。私はhttp://code.google.com/p/dompdf/wiki/Usageで示されているように、imageとcssのパス変数を設定しようとしましたが、良い例やチュートリアルが得られませんでした。もし何かの体がこれを使ったことがあるなら、私を助けてください。

  2. また、すべてのページに透かしを追加します。私が使用しているもののため

    $pdf->page_text(110, $h - 240, "TRIAL", Font_Metrics::get_font("verdana", "bold"),110, array(0.92, 0.92, 0.92), 0, -58);

これは正常に動作してwatermark.but透かしは、透かしの不透明度を変更するには、任意のものがcontent.isの上に来て生成します。 arrayのパラメータを変更することによって変更されることはありません。

3.すべてのページの最後に(最後のものを除く)「続き...」というテキストを挿入します。それは私が使用しているためです。

$text = "Continued.."; 
    $width = Font_Metrics::get_text_width($text, $font, $size); 
    $pdf->page_text($w - 16 - $width - 38, $y-15, $text, $font, $size, $color); 

すべてのページにテキストを(必要なように)置きます。最後のページ以外のすべてのページにテキストを挿入する方法はありますか?

  1. dompdfのlibファイルでは使用できないフォントを設定する方法はありますか?
+0

いずれかの質問に回答があれば、私に助けてください – sidhartha

答えて

2

1)正確に使用しているコードは何ですか?インラインスクリプトで成功しているように思えます。画像ではありません。だからあなたのコードに問題があるかもしれません。

2)これはインラインスクリプトの問題です。 HTMLコンテンツの後に表示され、HTMLコンテンツの上に表示されます。以前は、インラインスクリプトを使用してテキストを追加する際に不透明度オプションが使用されていましたが、正しく動作するかどうかはわかりません。これは0.6.0コードベースから削除されています。

次のリリースを待たなければならない場合があります。これには、HTML(具体的には、固定配置とCSS変換)で行うことを可能にするより多くのスタイリングオプションが含まれます。

3)すべてのページにヘッダーを表示できるかわかりません。オブジェクトの表示を停止するオプションがありますが、後続のページにしか影響しないようです。したがって、最後のページの前に関連するコードをページに追加する必要があります。

4)フォントを追加する場合は、load_font.phpを使用して解析できる必要があります。実行可能ファイルttf2afm(dompdf 0.5.1)またはttf2ufm(dompdf 0.6.0)にもアクセスする必要があります。 instructions on how to load fontsがあります。また、web-based font prep toolを開発してみることもできます。

+0

@Brian、ありがとう。はい、私はインラインPHPスクリプトを使用しています。 30分前に次のようにして不透明問題を乗り越えることができました。 – sidhartha

+0

私はcpdf_Adapter.cls.phpの約685行に下記の関数の2つのパラメータを追加し、呼び出し元の関数に渡します。 $ fit = 0、$ blend = "normal"、$ opacity($ x、$ y、$ text、$ font、$ size、$ color = array(0,0,0)、 ) => 1.0){ $ this-> _ page_text [] = compact( "x"、 "y"、 "text"、 "font"、 "size"、 "color"、 "adjust"、 "angle"、 "blend" 、 "不透明度")。 } .header imgはすべてのPgに入っていません(最後のPgにのみあります)。ポイント3については、私が比較することができ、現在のPG番号を得る方法を言うことができます。私は比較してdo.orまたは方法を投稿する – sidhartha

+0

私は使用している画像のために@ブライアン if(isset($ pdf)){ \t $ path = base_url(); // codeigniter configのようにベースパスがベースディレクトリに設定されています $ dompdf = new DOMPDF(); $ dompdf - > set_base_path($ path); $ basepath = $ dompdf-> get_base_path(); $ img_w = 1.5 * 72; //点数1.5インチ、 $ img_h = 0.9 * 72; // 0.9 inch、in points - 必要に応じて変更してください。 $ pdf-> image($ basepath。 "path_to_folder/logo.png"、 "png"、30、30、$ img_w、$ img_h); }この場合、画像は最後のページのみに入っています.myの要件はすべてのページです – sidhartha

1

DOMPDF_ENABLE_PHPがdompdf_config.inc.phpに真に設定されていることを確認してください〜に信頼できないソースから任意のフィルタ処理されていないコンテンツがある場合0.6.2 におけるライン173は、これが潜在的なセキュリティリスクがあることに注意してくださいpdf。

/** 
* Enable inline PHP 
* 
* If this setting is set to true then DOMPDF will automatically evaluate 
* inline PHP contained within <script type="text/php"> ... </script> tags. 
* 
* Enabling this for documents you do not trust (e.g. arbitrary remote html 
* pages) is a security risk. Set this option to false if you wish to process 
* untrusted documents. 
* 
* @var bool 
*/ 
define("DOMPDF_ENABLE_PHP", true);