比較 - php pdf作成




PHPでHTML+CSSをPDFに変換しますか? (20)

1) MPDF使用する!

a) yourfolder抽出する

b) yourfolderを作成し、そのようなコードを挿入します:

<?php
include('../mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<p style="color:red;">Hallo World<br/>Fisrt sentencee</p>');
$mpdf->Output();   exit;
 ?>

c)あなたのブラウザからfile.phpを開く




2) pdfToHtml使用してください!

1) pdftohtml.exeをルートフォルダに展開します。

2)そのフォルダの中のanyfile.phpファイルに、このコードを入れます(ソースexample.pdfもあるとします)。

<?php
$source="example.pdf";
$output_fold="FinalFolder";

    if (!file_exists($output_fold)) { mkdir($output_fold, 0777, true);}
$result= passthru("pdftohtml $source $output_fold/new_filename",$log);
//var_dump($result); var_dump($log);
?>

3) FinalFolderを入力すると、変換されたファイルがあります(ソースPDFと同じ数のページがあります)

私は、Firefox 3とIE 7でうまくレンダリングするHTML(XHTMLではない)文書を持っています。それはかなり基本的なCSSを使ってそれをスタイルし、HTMLでうまく描画します。

私は今それをPDFに変換する方法の後です。 私が試してみました:

  • DOMPDF :テーブルに大きな問題がありました。 大規模なネストされたテーブルを取り除き、それが助けになりました(それまでに128Mのメモリを消費する前に、php.iniのメモリには限界がありました)が、テーブルを完全に混乱させてしまいました。画像。 テーブルは基本的なもので、さまざまな点でいくつかの行を追加するためのいくつかの境界線スタイルがありました。
  • HTML2PDFとHTML2PS :私は実際にこれでより良い運を得ました。 それはいくつかの画像をレンダリングしました(すべての画像はGoogle ChartのURLです)、テーブルの書式ははるかに優れていましたが、まだ分かっていない複雑な問題を抱えていて、未知のnode_type() ここからどこに行くのかわからない。 そして
  • Htmldoc :これは基本的なHTMLではうまくいくようですが、CSSのサポートはほとんどありませんので、HTMLですべてを行う必要があります(私はHtmldocの土地ではまだ2001年であったことに気づきませんでした...)。

私は実際にはかなりまともな仕事をしたHtml2Pdf PilotというWindowsアプリを試しましたが、少なくともLinuxで動作し、Webサーバー上のPHP経由でオンデマンドで動作するものが必要です。

何が欠けているのですか?またはこの問題をどうやって解決できますか?


Web API

常にこの種のものを探している人がいる場合は、HTMLコードとページをpdfに変換できる無料の Webサイトがあります。 また、URLからpdfファイルを取得できる(非常に小さい)apiもあります。

それをここで確認してください


TCPDFはうまく動作し、依存関係はなく、フリーであり、絶えずバグが修正されています。 提供されたHTML / CSSコンテンツが整形されていれば、合理的なスピードを持っています。 私は通常50から300 kBのHTML入力(CSSを含む)から生成し、10-15のPDFページで1〜3秒以内にPDF出力を取得します。

TCPDFに何かを送る前に、 きれいなライブラリをHTMLの美しいフォーマッタとして使うことを強くお勧めします。


WebページからPDFファイルを作成するための公開APIを開発しました。 これは、使いやすいPHPクライアントクラスを備えています。 wkhtmltopdfを使用してPDFをクラウドにレンダリングします。

HTMLに特別なものは必要ありません。 images / css / jsリンクに絶対URLは必要ありません。 localhost(devマシン)でも動作します。

現在、米国東部、米国西部、EU北部、東南アジアの4つのAzure地域にエンドポイントがあります。

独自のプロトコルを使用してWebページのコンテンツをAPIに送信してPDFに変換するため、高速です。

すべてのエンドポイントが負荷分散されているため、信頼性があります。

無料のアカウントは、テストや低使用可能です。 ウェブサイトの詳細:

https://rotativahq.com


TCPDF上のDarryl Heinの言及はおそらく素晴らしい考えです。 Nicola Asuniのコードはかなり便利で強力です。 唯一の犠牲者は、PDFファイルを生成されたPDFとマージすることを計画している場合、それらの機能を持たないことです。 PDFを作成して、Sid Steward(www.pdflabs.com/tools/pdftk-the-pdf-toolkit/)のPDFTKのようなものを使ってマージする必要があります。


DocRaptorPrinceXMLを「エンジン」として使用する)をお勧めします


良いニュース! Snappy

Snappyは非常に簡単なオープンソースのPHP5ライブラリで、urlやhtmlページからサムネイル、スナップショット、PDFの生成が可能です。 そして...それは優れた Webkitベースのwkhtmltopdf

楽しい! ^ _ ^


重要:この回答は2009年に書かれたものであり、2018年には今日最も費用対効果の高い解決策ではないかもしれないことにご注意ください。PDFShiftのようなオンラインの選択肢は、

PrinceXMLをご覧ください

それは間違いなく最高のHTML / CSS to PDFコンバータですが、それは無料ではありません(しかし、あなたのプログラミングは無料ではないかもしれませんので、10時間の作業を保存すれば、代わりのソリューションでは、適切なソフトウェアを使用して専用サーバーをセットアップする必要があることを考慮してください)

ああ、私はこれが完全なACID2を行う最初の(そしてたぶん唯一の)HTML2PDFソリューションだとACID2か?

PrinceXMLサンプル


いくつかの調査と一般的なヘア抜きの後、解決策はHTML2PDFようHTML2PDFDOMPDFはテーブル、枠線、さらには適度に複雑なレイアウトでhtmldocいましたが、 htmldocはかなり堅牢ですが、ほぼ完全にCSSを無視していますので、CSSなしでHTMLレイアウトをやってみたいと思います。

HTML2PDFが最も有望視されましたが、node_typeへのヌル参照引数についてこの奇妙なエラーが発生しました。 私はついにこれに対する解決策を見つけました。 基本的に、PHP 5.1.xは正規表現を使って正常に動作し、任意のサイズの文字列に置き換えられました(preg_replace_ *)。 PHP 5.2.1では、 pcre.backtrack_limitというphp.ini設定ディレクティブが導入されました 。 この設定パラメータは、マッチングが行われる文字列の長さを制限します。 なぜこれが導入されたのかわからない。 デフォルト値は100,000として選択されました。 なぜそのような低い価値ですか? もう一度考えてみましょう。

このためにPHP 5.2.1に対してバグが発生しましたが、これはほぼ2年後に開かれてます。

これについて恐ろしいのは、限界を超えたときに、交換が黙って失敗するということです。 少なくとも、エラーが発生してログに記録されていた場合は、何が起こったのか、何を修正するために変更するのか、何を表示するのかが分かります。 しかし、いいえ。

だから私は70kのHTMLファイルをPDFに変換する。 以下のphp.ini設定が必要です。

  • pcre.backtrack_limit = 2000000; #おそらく私が必要以上のものだが、それは問題ない
  • memory_limit = 1024M; #はい、 1ギガバイト 。 そして
  • max_execution_time = 600; #はい、 10分

今すぐ賢明な読者が私のHTMLファイルが100kよりも小さいことに気づいたかもしれません。 私がこの問題にぶつかった理由を推測できる唯一の理由は、html2pdfがプロセスの一部としてxhtmlへの変換を行うことです。 おそらく、それは私を(50%近くの膨らみが奇妙に見えますが)取りました。 どんな場合でも、上記はうまくいった。

今、html2pdfはリソース豚です。 私の70kファイルは35ページのPDFファイルを作成するために約5分、少なくとも500〜600MのRAMが必要です。 残念ながら、リアルタイムダウンロードには十分に高速ではありません。メモリの使用率は、メモリ使用率を1000対1(70kファイルの場合は600M RAM)のオーダーにします。これはまったくばかげています。

残念ながら、それは私が思いついた最高です。


おそらく、ファイルをコンバータに渡す前にTidyを試してみてください。 レンダラーの1人がHTMLの問題(クローズされていないタグのような)に悩まされた場合、レンダラーが役に立ちます。


すでに多くのソリューションが提供されていますが、私は以下の2つをお勧めします:

  1. HTM2PDF - HTMLをPDFに変換するAPIを提供しており、PHPで実装するのが非常に簡単なPHP SDKも提供しています。 ヨーロッパ、アジア、米国のサーバーの場所を選択できます
  2. PDFmyURL - HTM2PDFとほぼ同じ機能を持ちながら、URLとHTMLをPDFにも変換するAPIを提供しますが、負荷分散された環境で動作し、少し長くなりました

これらの2つのAPIについて、前述のすべてのソリューションと異なる点は、HTMLをCSSとJavaScriptを使用してPDFに変換するだけでなく、PDF権限管理、透かし入れ、暗号化も提供することです。 したがって、地面にぶつかりたい方にはオールインワンのソリューションです。

免責事項:私は両方のウェブサイトを運営する会社、カイオミのために働いています。


すでに言及されていますが、私はmpdfが最も簡単で、最も強力で、無料のhtml to pdfコンバータであることを確認したいと思います。 空は本当に限界です。 動的でユーザーが生成したデータのpdfsも生成できます。

例えば、クライアントは彼がクラブで演奏した音楽のトラックリストを更新できるようにCMSシステムを望んでいました。 これは問題ありませんでしたが、ユーザーがプレイリストの.pdfをダウンロードできるようにしたいので、このダウンロード可能なpdfもCMSによって更新されなければなりませんでした。 mpdfのおかげで、いくつかの単純なループと分散された変数があれば、私はそれをやることができます。 文字通り何週間もかかるだろうと思っていたことが分かった。

私が手伝った素晴らしいarticle


コストの面では、Webサービス(API)を使用する方が賢明なアプローチになる場合があります。 さらに、このプロセスを外部委託することで、独自のインフラストラクチャ/バックエンドの負担を軽減し、評判の良いサービスを使用している場合は、Web標準、稼働時間、処理時間の短縮、コンテンツの迅速な配信との互換性を確保します。

私は現在市場に出ているほとんどのウェブサービスについていくつかの調査を行っていますが、価格/価値比に基づいてこのスレッドで言及する価値のあるAPIを以下で見つけてください。 それらのすべては、事前に構成されたPHPクラスとパッケージを提供しています。

  1. pdflayer.com - 費用:$ - 品質:☆☆☆☆
  2. docraptor.com - 費用:$$$ - 品質:☆☆☆☆☆
  3. pdfcrowd.com - 費用:$$ - 品質:☆☆☆

品質:

高品質のエンジンPrinceXMLをバックボーンとして、 DocRaptorは最高のPDF品質を提供し、高度に洗練されたPDF文書を返します。 ただし、ここではpdflayer APIサービスがかなり近づいています。 Pdfcrowdは、必ずしも品質ではなく、処理速度でスコアリングします。

コスト:

pdflayer.com - 上記のように、最も費用対効果の高いオプションはpdflayer.comです。月額100のPDFと完全に無料のサブスクリプションプランを提供し、プレミアムサブスクリプションは$ 9.99- $ 119.99です。 毎月10,000通のPDF文書の価格は$ 39.99です。

docraptor.com - 7日間の無償試用期間を提供します。 プレミアム契約プランは$ 15〜$ 2250です。 毎月10,000通のPDF文書の価格は〜300.00ドルです。

pdfcrowd.com - 無料で100のPDFを提供します。 プレミアム契約プランは$ 9〜$ 89です。 毎月10,000通のPDF文書の価格は〜49.00ドルです。

私はそれらの3つすべてを使用しましたが、このテキストは誰もがそれらのすべてを支払うことなく決めるのを助けるはずです。 このテキストは、いずれかの製品を保証するために書かれたものではなく、いずれの製品とも関連していません。


コマンドラインにアクセスできる場合、 PhantomJSを使用してURL (リモートまたはローカル)からPDFを作成することができます。

それは本当にうまく動作し、無料のソリューションです。

この正確な問題のために作成されたこのgithub.com/ariya/phantomjs/blob/master/examples/rasterize.jsスクリプトを見てください。


チェックアウトTCPDF 。 それはあなたが必要とするものに十分かもしれないいくつかのHTMLからPDFへの機能を持っています。 それはまた無料です!


外部ライブラリなしでphp( パート1パート2 )からpdfを生成するZendのdevzoneに関するチュートリアルがあります。 私はこの種の解決法を実装したことはありませんが、すべてPHPであるため、実装とデバッグをより柔軟に行うことができます。


最新の夜間のdompdfビルドを試してみてください - 私はひどいリソース豚だった古いバージョンを使用していて、私のpdfをレンダリングするのに永遠にかかりました。 hereから夜間を奪った後。

PDFを生成するのに数秒しかかかりませんでした 。それはPrinceXML / Docraptorと同じようにうまくレンダリングされました 。 私は最後にそれを使用して以来、彼らは真剣にdompdfコードを最適化したようだ!


私はPHPのために多くの異なるライブラリを試しました。 私が試したすべてのリストです。 私の意見では、 TCPDFライブラリは最高の性能と使いやすさを兼ね備えています。 それは非常に簡単にインストールして使用すると、小さなメディアアプリケーションでも良いパフォーマンスです。 高性能で非常に大きなPDF文書が必要な場合は、 Zend_PDFモジュールを使用してZend_PDF


私はfpdfを使ってPHPを使ってpdfファイルを生成しています。 これまでのところ、単純な出力を生成するのにはうまくいきました。


私はphpクラスがCSSのxHtmlページをレンダリングするのに最適だろうとは思わない。

新しいCSSルールが出てきたらどうなりますか? (まもなくcss 3.0 ...)

HTMLページをレンダリングする最善の方法は、まったくブラウザです。 Firefox 3.0は、pdf形式でネイティブに '印刷'することができ、torisugaryはそれを使用するための拡張機能(コマンドライン・プリント)を開発しました。 ここでそれを見つけるでしょう。

とにかく、まだPDFコンバータのように多くのproblmes runninr firefoxがあります...

現時点では、私はwkhtmltopdfが最高です(それはSafariブラウザで使用されるものです)、速く、速く、素晴らしいと思います。 はい、opensourceと同様に... wkhtmltopdf







pdf-generation