2012-02-27 8 views
12

私は数ヶ月間TCPDFを使っています。オフとオン。ほとんどのHTMLテンプレートではうまくいきましたが、私はいつもPDFに画像を配置する際に問題がありました。画像は、通常、ヘッダーではなく本文に配置されます。私のプレースメントは、左上隅からの固定位置か、ドキュメントの下端からの相対位置です。どちらの場合でも、私は問題がありました。 HTMLでテキストが変更されると、イメージの位置を変更する必要があります。複数の列テーブルは事をさらに困難にする可能性があります。注:「クラスpdfはTCPDFを拡張します。TCPDF:イメージをHTMLブロックに配置するにはどうすればよいですか?

$this->pdf->AddPage(); 
$this->pdf->writeHTML($pdf_html); 
$cur_page = $this->pdf->getPage(); 
$x_pos = $this->pdf->GetX(); 
$y_pos = $this->pdf->GetY(); 
// Place image relative to end of HTML 
$this->pdf->SetXY($x_pos, $y_pos - 54); 
$this->pdf->Image('myimage.png'); 

誰かがHTMLから生成されたPDFに画像を配置するばかばかしい方法を知っていますか?私はHTMLを2つに分割することを考えましたが、うまくいくかどうかは分かりません。

答えて

20

私はhtml imgタグとそれをうまく使っています。

$toolcopy = ' my content <br>'; 
$toolcopy .= '<img src="/images/logo.jpg" width="50" height="50">'; 
$toolcopy .= '<br> other content'; 

$pdf->writeHTML($toolcopy, true, 0, true, 0); 
+0

残念ながら、私はコンテンツに敏感なイメージ(署名)をPDFドキュメントに追加しています。私はイメージをパスでドキュメントに引っ張ることはできません。 – jjwdesign

+0

画像がオンザフライで生成されても、pdfに含めることができます。私は、いくつかのイメージが常に存在し、いくつかはpdfが作成される直前に生成され、pdfが生成されると削除されるpdfを持っています。私はあなたに手を差し伸べることはできません。どこにイメージが存在しますか? – henna

+3

ウェブベースの参照パスにすることはできません。私は、ローカルのファイルパスからイメージを引っ張っています。以前のhtmlの書き込みの下に相対的な私の状況のた​​めに最善のようです。 – jjwdesign

7

ご迷惑をおかけして申し訳ございません。しかし、それはあなたの質問に実際に答えるようには見えません。ウェブレベルでの画像です。

file_get_contents()を使用したことがありますか?単純にbase_64文字列をレンダリングします。このようにして、公にアクセスできることを心配することなく、あらゆるレベルの画像を使用することができます。

例えば:

$imageLocation = '/var/www/html/image.png'; 
$ext = end(explode(".", $imageLocation); 
$image = base64_encode(file_get_contents($imageLocation)); 
$pdf->writeHTML("<img src='data:image/$ext;base64,$image'>"); 

または、HTMLパーサに依存せず。どのドキュメントからPDFをレンダリングするのが遅くなるのでしょうか?

$image = file_get_contents('/var/www/html/image.png'); 
$pdf->Image('@'.$image); 
+0

nice、thanks、それは私が探していた答えでした – ling

+0

これを 'SplFileObject'に書き直しましたか?そうすれば、ファイルの拡張のために 'explode()'の必要はありません。 – Roland

+0

私のPDFには「」タグが含まれていますので、2番目のオプションはできません。それでも、私はTCPDFをWeb統計に表示することは望ましくなく、とにかく愚かです。 – Roland

関連する問題