11

PDF 生成に問題があります。現在、私のシステムは dompdf を使用して HTML を PDF に変換していますが、これはすべて正常に機能します。ただし、ユーザーが A4 ページよりも大きい画像を挿入すると、PDF はひどく台無しになり、大きな画像の下にあるすべてのコンテンツがまとまってしまうか、まったく表示されなくなります。

問題の例を示す 2 つの PDF を次に示します。

これは大丈夫です

https://dl.dropbox.com/u/65878041/OK.pdf

これは、最初の画像が A4 ページよりも大きくなっていることがわかります。前の画像と同じはずなのに、それに続くすべてのコンテンツが台無しになっています。

https://dl.dropbox.com/u/65878041/Issue.pdf

私が理想的にやりたいことは、画像を部分に分割し、必要な数のページにまたがることです。このLaTeX ソリューションで達成されることのように。dompdfでこれを行う可能性はありますか? または HTML を PDF に変換するための他の PHP ライブラリはありますか?

私はそれを自分で調べましたが、A4ページよりも大きい場合は明らかに画像を切り刻むことができました. しかし、問題は、ページにテキストがあるかどうかを事前に知る必要があるかどうかなどのアプローチであるため、それほど単純ではありません。

よろしくお願いします。どんな洞察も非常に高く評価されます。

4

2 に答える 2

5

html と css を投稿していただけると助かります... 2 つのことを念頭に置いてください。

オプション1

追加の DIV で画像をラップし、幅とオーバーフローのルールを明示的に設定してみてください。

オプション #2

以前は大ファンでしdompdfたが、発見した後はwkhtmltopdf決して振り返りませんでした。wkhtmltopdf仕事を正しく成し遂げる驚異的なツールです。この解決策を試すには、次の手順を実行します。

  1. プロジェクトのホームページから静的バイナリをダウンロードします。これはアーキテクチャ固有のものであるため、適切なものを選択してください...両方をダウンロードできます。実行時にアーキテクチャを検出し、適切なバイナリをロードします
  2. プロジェクトからアクセス可能なディレクトリにファイルを配置します。
    /path/to/my/proj/bin/wkhtmltopdf
  3. スクリプトを実行して HTML ドキュメントを生成します。いくつかのtmpファイルに保存します
    file_put_contents('/tmp/myfile.html', $html);
  4. 変換コマンドを実行します
    shell_exec('/path/to/my/proj/bin/wkhtmltopdf /tmp/myfile.html /tmp/myfile.pdf')
  5. 生成された pdf のコンテンツを取得し、応答ヘッダーを変更して、ファイルをサーバーに送信します。
    header('Content-Type: application/pdf');

    echo file_get_contents('/tmp/myfile.pdf');

于 2012-12-24T02:20:18.880 に答える
1

画像がどのように表示されているかはわかりませんが、特定の要素の前後でページを分割するように dompdf に指示できます。例えば:

<div style='page-break-after:always;'>
    <img src="PATH_TO_IMAGE" />
</div>
于 2012-12-19T12:23:43.103 に答える