0

長い間、私は大きなテーブルを含むHTMLページをPHPに変換しようとしてきました。これらはCSSでスタイル設定されており、数ページの長さにすることができます。

私は最初にDOMPDFを試しました。ドキュメントが複数のページになるまで、これはうまく機能します。私が見つけた修正はどれも機能しません。エラーが発生するか、2ページ目に部分的に含まれる要素が1ページのコンテンツに集中します。最新リリースと今日チェックアウトしたSVNコピーの両方を試しました。

また、html2ps / pdfを試しましたが、ディレクトリが完全に書き込み可能であっても、キャッシュディレクトリへの書き込み中に「許可が拒否されました」というエラーが発生します。システム要件テストスクリプトに合格します。サーバーはIISでPHP5を実行しています(私の選択ではありません)。

これらのいずれかが機能することを確信できますか、それともそれを実行できるライブラリがありますか?

デモ/テストスクリプトからのエラー:

Warning: file_put_contents(C:\Inetpub\wwwroot\JM\pdf\html2ps\cache/7d888258e9745b3716532ea81342daaf.css.compiled) [function.file-put-contents]: failed to open stream: Permission denied in C:\Inetpub\wwwroot\JM\pdf\html2ps\css.cache.class.php on line 33

Warning: fopen(C:\Inetpub\wwwroot\JM\pdf\html2ps\cache/unicode.lb.classes.dat) [function.fopen]: failed to open stream: Permission denied in C:\Inetpub\wwwroot\JM\pdf\html2ps\inline.content.builder.php on line 991

Warning: flock() expects parameter 1 to be resource, boolean given in C:\Inetpub\wwwroot\JM\pdf\html2ps\inline.content.builder.php on line 992

Warning: fwrite(): supplied argument is not a valid stream resource in C:\Inetpub\wwwroot\JM\pdf\html2ps\inline.content.builder.php on line 1011(このエラーは数千回繰り返されます)

Warning: fopen(C:\Inetpub\wwwroot\JM\pdf\html2ps\cache/times.z) [function.fopen]: failed to open stream: Permission denied in C:\Inetpub\wwwroot\JM\pdf\html2ps\pdf.fpdf.makefont.php on line 318

Can't write to file C:\Inetpub\wwwroot\JM\pdf\html2ps\cache/times.z

4

2 に答える 2

0

個人的には、PHP ライブラリよりもコマンド ライン アプリケーションをお勧めします。

理由:

  1. PHP ライブラリは、変換プロセスにより多くの時間とメモリ (キャッシュ) を必要とします。

  2. 適切にフォーマットされた HTML ページのみが必要です。それ以外の場合は、エラーまたは警告がスローされます。

  3. 外部スタイル シートはサポートされていません。

コマンド ライン ツール:

Linux サーバーでスクリプトを実行する場合は、コマンド ライン ツールをお勧めします。

理由:

  1. PHP ライブラリに比べて非常に高速です。

  2. CSS をサポートします。

  3. 適切にフォーマットされていない HTML を受け入れます。

どのコマンド ライン ツールを使用しますか?

  1. wkhtmltopdf
  2. htmltopdf
  3. html2pdf

詳細については、PHP を使用した HTML から PDF (PDF から HTML ではない) への変換を参照してください。

于 2009-09-18T11:44:52.793 に答える
0

IIS での html2pdf に関する同様の問題については、こちらで説明されています。

解決策は非常に単純ですが、奇妙なものでした。これで問題が解決しない場合は、完全なエラー メッセージおよび/または少しのコードが役に立ちます。

于 2009-08-14T21:13:15.820 に答える