PHPに最適なPDF-APIはどれですか?[閉まっている]


110

PHPに最適なPDF-APIはどれですか。


6
この他の質問はStackOverflowから削除されたようです。
rineez

私は古い質問を知っていますが、MDFを好みます。mpdf1.com
mpdf / limitationsで

回答:


53

個人的に私はむしろ一緒に行きたいTCPDF FPDFのehnancedとmantainedバージョンです。


12
あなたは理由を特定しませんでした-1つの巨大なものはtcpdfでのUnicodeサポートですが、fpdfにはまったくありません。tcpdfも引き続き積極的に保守されています。そして、それはまともなOOアーキテクチャも持っています。賢明な言葉:fpdfは基本的にtcpdfに取って代わられた古いものです。
zanlok

2
tcpdfには、フォントの埋め込みやサブセット化などの重要な機能がありません(アジア言語では重要)。
velcrow 2011

2
tcpdfのウェブサイトを確認したところ、フォントのサブセット化と埋め込みがサポートされているようです。SetFontメソッドのサブセット引数tcpdf.org/fonts.php
Nerrve

1
urdu unicodeフォントを使用すると、tcpdfに問題が発生していました。
rineez

1
24k行のコードを含む単一のクラスを「まともなOO」と呼ぶ場合は、高い必要があります。実際のOOPについては、FPDFのリファクタリングされたバージョンを確認してください。github.com/ bubach
Christoffer Bubach

39

mpdfサイトから:「mPDFは、UTF-8エンコードされたHTMLからPDFファイルを生成するPHPクラスです。FPDFとHTML2FPDFに基づいており、多くの機能が強化されています。」

mpdfは、言語処理とUTF-8サポートの点でFPDFより優れています。CJKサポートでは、フォントの埋め込みだけでなく、フォントのサブセットもサポートします(そのため、CJK PDFは特大になりません)。TCPDFとFPDFは、mpdfのUTF-8とフォントのサポートについては何も持っていません。バージョン5.0では、いくつかのオープンソースフォントも付属しています。


30

これは、各ライブラリの最も基本的な機能のパフォーマンスの領域で、fPDFがtcPDFにどのように対抗するかを簡単にまとめたものです。

スピードテスト

fPDFを使用して2000 PDFファイルを処理するのに17.0366秒|| 79.5982秒でtcPDFを使用して2000 PDFファイルを処理

ファイルサイズチェック(バイト単位)

788 fPDF || 1,860 tcPDF

使用されたコードは可能な限り同一であり、テキストのないクリーンなPDFファイルをレンダリングします。また、2011年6月22日の時点で、各ライブラリの最新バージョンを使用しています。


5
TCPDF速度を大幅に向上させることができるいくつかのパフォーマンス強化があります(単一ファイルの作成で1分から約0.5秒になりました):tcpdf.org/performances.php
Dan Smart

1
これらの「機能強化」はFPDFでも同様に機能し、ベンチマークには役立ちません。TCPDFは約24,000行のコードですが、FPDFは約2400行のコードです。
Christoffer Bubach

@DanSmartのリンクを更新:tcpdf.org/docs/performances
Albert

22

HTMLレンダリングに関しては、mpdfがtcpdfよりも優れていることがわかりました。CSSスタイルをより適切に解析し、元のHTMLと非常によく似たPDFを作成できます。

mpdfは、border-radiusやgradientなどのcssもサポートしています。

htmlからpdfになると、mpdfがあまり話題にならない理由を知って驚いています。

こちらの例を確認してくださいhttp://www.mpdf1.com/mpdf/index.php?page=Examples

請求書、領収書、簡単なプリントなどのデザインに役立ちました。しかし、ウェブサイト自体は、mpdfから生成されたpdfはサイズが大きくなる傾向があると述べています。


2
リンクが壊れています。これは新しいリンクである可能性があります:mpdf1.com/mpdf/index.php?page
Stefan

2019年8月の更新:これを参考にしてくださいmpdf.github.io
CodeJunkie

mpdfは残念ながら大きなテーブルセルをうまく処理できないようです。コンテンツがページを超えるとすぐに縮小し始めます。そのため、大きなテーブルのあるプロジェクトでは役に立たなくなります。それとは別に; 使いやすく、パフォーマンスが高く、十分に文書化されています。
zumek

13

TCPDFを試してください。私はそれが今のところ最高だと思います。

最も人気のある2つのpdf生成クラスの使用に関する詳細なチュートリアルについては、TCPDFとFPDFを参照してください。PHP:TCPDFとFPDFを使用して、その場で簡単にPDFを作成できます。

それが役に立てば幸い。


Firefoxで接続がリセットされるとクラッシュすることがあります。ただし、他のブラウザでは確認していません。
kta

11

個人的には、非常に高速なので、単純なPDFページにはdompdfを使用することを好みます。HTMLソースをフィードするだけで、必要なページが生成されます。

ただし、より複雑なデザインの場合は、PHPのpeclとして使用できるより古典的なpdflibを好みます。デザインをより細かく制御でき、ピクセルパーフェクトフォームなどのより複雑なデザインを実行できます。


しかし、dompdfを使用する場合の短所は、一度に複数のPDFを作成したりループで作成したりする場合には機能しないことです。
hmjha 2017

5

http://sourceforge.net/projects/html2ps/は、CSSと3Cを互換性が必要な場合に最適です。

サーバーにソフトウェアをインストールできる場合は、http://wkhtmltopdf.org/を使用することをお勧めします。

wkhtmltopdfを使用するdrupalモジュールもあります:)

PHPはhtmlをpdfに変換するために多くのリソースを必要とします、imho、phpはそれを行うのに適切な言語ではありません(変換する多数のカバーまたは大きなファイルを期待する場合)


私はwkhtmltopdfに賛成ですが、特に外部コンバーターPHPを使用するような方法を使用する場合、速度の低下のせいではありません。私は、asp.netからwkhtmltopdfまたはprinceを使用すると、PHPを使用する場合とほぼ同じくらい高速になると思います(私はasp.netを使用しています)。確かに、PHPは.netのすべてのプロセス制御を備えているわけではありませんが、ほとんどのプロジェクトでは十分に高速に動作します
Joel Peltonen 2012

4

Zend FrameworkのZend_Pdfは本当に優れています。出力の制御と複雑さの点でpdflibと同等であり、純粋なphpソリューションであるため、移植性が高くなります。とは言っても、pdflibよりも遅く、より多くのメモリを使用します。Peclモジュールは常にphpソリューションよりも効率的です。

DOMPdfは、PDFをすばやく作成する最も簡単な方法です。マイクが言ったように、それをhtmlに供給し、それはpdfを出力します。内部的には、レンダリングエンジンとしてr&ospdfまたはpdflibを使用するオプションがあります。


1
Zend PDFには重要な機能があります(透明度のあるPNGを埋め込んだ場合のパフォーマンスの問題)[ framework.zend.com/issues/browse/ZF-3392]。また、Zend PDFは、完全なPDF標準に近いものを処理できず、クラッシュするため、サードパーティのPDFのメタデータを変更するための非常に悪いツールです。ただし、これらの機能を必要としない場合、Zend PDFは非常に適切に機能し、UTF-8が適切にサポートされます。
chrishiestand

3

私は個人的にPHPからXSL:FOを生成し、Apache FOPを使用してPDFに変換しています。PHPネイティブのソリューションではなく、あまり効率的でもありませんが、非常に複雑なレイアウトでPDFを生成する必要がある場合でもうまく機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.