23

私のサーバーでは、dompdf 経由で生成された pdf に画像が表示されませんでした。それらはリモート URL 画像であるため (ローカル画像は正常に動作しています)、リモート画像をレンダリングするにはいくつかの設定が必要であることがわかりました。

allow_url_fopen = true => i can not as server control is not in my hand.(and no one will suggest to do this due to security reasons)
read/write access to the DOMPDF_TEMP_DIR (already have this)
DOMPDF_ENABLE_REMOTE = true (already have this)

したがって、allow_url_fopenの問題を確認するために、サーバーと同じ出力を提供するローカルホストにfalseを設定しました。

それで、今問題は、allow_url_fopen = falseでリモート画像をPDFで表示したいということです

  • これを行うために、ほぼ5〜10のユニークな方法を試しました。
  • (ヘッダーの設定を介して)phpファイルに画像を表示し、phpリンクをpdfに表示しようとしました
  • 私もphpへの絶対パスを介して画像を表示しようとしましたが、何も機能しませんでした。
  • 関数でcurlを介して画像を取得し、それをphpファイルに表示しようとしましたが、うまくいきませんでした。

PDFで画像を表示する方法を教えてくれる人はいますか? 私がいつも得ているエラーは...

Image not found
http://localhost/dompdf/image.php

Image not found
http://localhost/dompdf/image.jpg
4

21 に答える 21

47

私は同じ問題を抱えてい ました.dompdf画像がライブサーバーに見つかりません

解決策を見つけました。画像のパスを再確認するだけで済みます。

ライブ サーバー イメージ パスの検討

<img src="http://www.example.com/public/images/thumb.png">

に変更するだけです。

<img src="public/images/thumb.png">

注: すべての設定が既に行ったものと同じであることを確認してください。

これがお役に立てば幸いです。

于 2014-04-19T10:13:54.860 に答える
15

世話をすることは2つあります。

  1. 同じサーバーからのイメージを使用する場合は、完全なディレクトリ パスを使用します。 /var/www/html/project_folder/images/logo.jpg

  2. リスト項目または他のタイプのJPEG代わりに画像を使用します。png

于 2014-10-20T07:06:02.520 に答える
4

画像にも同じ問題がありましたが、私の解決策は次のとおりです。

getcwd().'path/to/image'

わたしにはできる!

于 2020-07-28T07:40:49.257 に答える
3

library/dompdf/scr/option に移動します

プライベートを変更 $isRemoteEnabled = false; プライベートに $isRemoteEnabled = true;

于 2020-04-21T23:02:39.057 に答える
2

こんにちは、この問題に対する私の解決策は、php.ini ファイルに allow_url_fopen を追加して有効にすることでした。

于 2019-11-17T22:53:09.267 に答える
2

PDF を開くために使用しているマシンの Web ブラウザーで、これらの URL にアクセスできますか? そうでない場合、PDF リーダーはどちらもできません。

「localhost」ドメインは、これらの URL が PDF を生成した Web サーバーからのみ表示されることを意味していると思われます。http://example.com/dompdf/image.jpgのような URL を出力する必要があります。

(この問題を回避するには、リモート画像を使用しない十分な理由があることに注意してください。たとえば、ビューアがインターネットに接続されていない場合、ドキュメントの見栄えが悪くなります。画像を直接資料?)

于 2013-03-01T08:13:11.487 に答える
0

dompdf には現在、ローカル ドメインとリモート ドメインを区別するメカニズムがないため、http://... で始まる URL はすべてリモートとして扱われます。さらに、PHP ベースの仲介 (pic.php など) を使用する画像はローカル パスを使用できません。これは、Web サーバーを経由しない限り PHP が解析されないためです。

難しい見通しですが、ページは動的に生成されます。したがって、次の 2 つのオプションがあります。

  1. リモート イメージをダウンロードし、ローカル ファイル システムにリンクする
  2. リモート イメージをダウンロードし、データ URI を使用します。

curl を使用して画像を取得する方法はすでにわかっているので、これらのいずれかを実装できるはずです。

于 2013-03-01T14:34:29.867 に答える
-3

dompdf_config.inc.php ファイルに移動し、変数 DOMPDF_ENABLE_REMOTE を TRUE に設定します ...

于 2013-11-17T16:38:50.943 に答える