1701

Firefox3およびIE7で正常にレンダリングされるHTML(XHTMLではない)ドキュメントがあります。これは、かなり基本的なCSSを使用してスタイルを設定し、HTMLで正常にレンダリングします。

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

  • DOMPDF:テーブルに大きな問題がありました。私は大きなネストされたテーブルを除外しましたが、それは役に立ちました(最大128Mのメモリを消費して死ぬ前に-php.iniのメモリの制限です)が、テーブルが完全に混乱し、画像。テーブルは、さまざまなポイントにいくつかの線を追加するためのいくつかの境界線スタイルを備えた基本的なものでした。
  • HTML2PDFとHTML2PS:私は実際にこれで運が良かった。一部の画像(すべての画像はGoogle Chart URL)をレンダリングし、テーブルのフォーマットははるかに優れていましたが、まだ理解していない複雑な問題があり、不明なnode_type()エラーで死に続けていたようです。ここからどこに行くべきかわからない。と
  • Htmldoc:これは基本的なHTMLで正常に機能するようですが、CSSはほとんどサポートされていないため、HTMLですべてを実行する必要があります(Htmldoc-landではまだ2001年であることに気づいていませんでした...)。

私はHtml2PdfPilotと呼ばれるWindowsアプリを試しましたが、実際にはかなりまともな仕事をしましたが、少なくともLinuxで実行され、理想的にはWebサーバーでPHPを介してオンデマンドで実行されるものが必要です。

何が欠けていますか、またはこの問題を解決するにはどうすればよいですか?

4

30 に答える 30

671

をご覧くださいwkhtmltopdf。これはオープン ソースであり、webkit に基づいており、無料です。

ここに小さなチュートリアルを書きました。

編集 (2017):

もし今日何かを作るとしたら、もうその道には行かないでしょう。
ただし、代わりにhttp://pdfkit.org/を使用します。
おそらく、ブラウザで実行するために、すべてのnodejs依存関係を取り除きます。

于 2009-08-31T13:36:14.910 に答える
562

重要: この回答は 2009 年に書かれたものであり、2019 年の現時点で最も費用対効果の高いソリューションではない可能性があることに注意してください。現在のオンラインの代替手段は、当時よりも優れています。

使用できるオンライン サービスは次のとおりです。


PrinceXMLを見てください。

これは間違いなく最高の HTML/CSS から PDF へのコンバーターですが、無料ではありません (ただし、プログラミングも無料ではない可能性があります。10 時間の作業を節約できれば、家にいる必要はありません)。代替ソリューションでは、適切なソフトウェアを備えた専用サーバーをセットアップする必要があることを考慮してください)

そうそう、これが完全なACID2を実行する最初の (そしておそらく唯一の) HTML2PDF ソリューションであると言いましたか?

PrinceXML サンプル

于 2009-01-12T08:47:28.523 に答える
128

mPDF バージョン 2.0を試してみませんか? PDF文書の作成に使用しました。それは正常に動作します。

一方、mPDF はバージョン 5.7 であり、HTML2PS/HTML2PDF とは対照的に、積極的にメンテナンスされています。

ただし、ドキュメントを扱うのは非常に難しい場合があることに注意してください。たとえば、このページを見てください: https://mpdf.github.io/

html から pdf までの非常に基本的なタスクはこのライブラリで実行できますが、より複雑なタスクを行うには、ドキュメントを読んで「理解」するのに時間がかかります。

于 2010-03-26T11:11:18.030 に答える
73
  1. MPDFを使用してください!==

a) で抽出yourfolder

b) file.phpを作成し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 もあると仮定します)。

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

于 2013-11-28T14:52:06.673 に答える
58

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

于 2009-02-21T20:50:48.933 に答える
33

スレッドをバンプするために、DOMPDFを試してみましたが、完全に機能しました。およびその他のブロック レベルの要素を使用DIVしてすべてを配置しました。厳密に CSS 2.1 を維持し、非常にうまく機能しました。

于 2009-01-21T23:32:29.830 に答える
32

DocRaptor ( PrinceXML「エンジン」として使用)をお勧めします

于 2010-11-13T00:48:16.677 に答える
30

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

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

私が始めるのを助けた素晴らしい記事。

于 2013-02-18T20:50:34.343 に答える
27

完璧な XHTML+CSS から PDF へのコンバーター ライブラリを探しているのなら、それは忘れてください。それは不可能です。それは完璧なブラウザー (XHTML+CSS レンダリング エンジン) を見つけるようなものだからです。持っていますか?IEまたはFF?

私はDOMPDFである程度の成功を収めました。問題は、ライブラリの動作方法に合わせて HTML+CSS コードを変更する必要があることです。それ以外は、かなり良い結果を残しています。

下記参照:

元の HTML

HTML から PDF への変換

于 2008-12-27T06:17:59.147 に答える
26

最初の投稿で最初に言及されたHTML2PDF と HTML2PSは、このリンクで 2009 パッケージについて話していました。

しかし、より良いHTML2PDFがあります

一部フランス語ですが、TCPDFに基づいています。

ページ上で繰り返される表のヘッダーまたはフッターを作成し、ページ番号と総ページ数を含めることができます。その例を参照してください。私はそれを3年以上使用しており、お勧めします。

于 2015-05-07T10:43:28.097 に答える
23

PHPを使用してPDFファイルを生成するためにfpdfを使用しています。これまでのところ、簡単な出力を生成するのにうまく機能しています。

于 2009-02-21T20:21:17.053 に答える
22

外部ライブラリを使用せずにphp から pdf を生成する方法に関する Zend の devzone に関するチュートリアル (パート 1パート 2 ) があります。私はこの種のソリューションを実装したことはありませんが、すべて php であるため、実装とデバッグがより柔軟であることに気付くかもしれません。

于 2008-12-24T09:46:11.727 に答える
17

上記のTCPDFに関するDarrylHeinの言及は、おそらく素晴らしいアイデアです。NicolaAsuniのコードは非常に便利で強力です。唯一のキラーは、PDFファイルを生成されたPDFとマージすることを計画している場合、それらの機能がないことです。PDFを作成してから、Sid Steward(www.pdflabs.com/tools/pdftk-the-pdf-toolkit/)のPDFTKなどを使用してマージする必要があります。

于 2010-08-24T19:01:54.013 に答える
16

最新のナイトリーdompdfビルドを取得してみてください。私は古いバージョンを使用していましたが、これはリソースを大量に消費し、pdf のレンダリングに永遠に時間がかかりました。ここからナイトリーをつかんだ後。

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

于 2011-08-10T13:16:42.940 に答える
12

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

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

この正確な問題のために作成されたこのサンプルスクリプトを見てください。

于 2014-10-08T14:14:59.863 に答える
11

この質問はすでにかなり古いですが、CutyCaptについて言及している人を見たことがないので:)

CutyCapt

CutyCaptは、WebKitによるWebページのレンダリングをSVG、PDF、PS、PNG、JPEG、TIFF、GIF、BMPなどのさまざまなベクトル形式およびビットマップ形式にキャプチャするための小さなクロスプラットフォームコマンドラインユーティリティです。

于 2012-02-20T15:19:17.723 に答える
11

この順序で、TCPDF または DOMPDF をお勧めします。

于 2013-05-17T12:38:12.163 に答える
9

cssでxHtmlページをレンダリングするのにphpクラスが最適だとは思いません。

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

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

とにかく、PDFコンバーターとしてのfirefoxの実行にはまだ多くの問題があります...

現時点では、wkhtmltopdf が最高 (サファリ ブラウザで使用されるもの) で、速く、速く、素晴らしいと思います。はい、オープンソースも... 見てみましょう

于 2009-05-12T21:02:00.500 に答える
9

Web ページから PDF ファイルを作成するための公開 API を開発しました。非常に使いやすい素敵な PHP クライアント クラスがあります。wkhtmltopdf を使用して、クラウドで PDF をレンダリングします。

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

現在、このサービスには、米国東部、米国西部、欧州北部、東南アジアの 4 つの Azure リージョンにエンドポイントがあります。

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

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

テスト用または低使用量の無料アカウントを利用できます。Web サイトの詳細:

https://rotativahq.com

于 2016-06-22T14:22:52.100 に答える
8

おそらく、ファイルをコンバーターに渡す前に、Tidyを試して使用することをお勧めします。レンダラーの1つがHTMLの問題(閉じられていないタグなど)で窒息した場合、それが役立つ可能性があります。

于 2008-12-24T09:16:29.960 に答える
7

ファインレンダリングは何の意味もありません。検証しますか?

すべてのブラウザは、入力がどれほど悪くても、画面に何かを表示するためにできる限りのことをします。そしてもちろん、彼らは同じことをしません。FireFoxと同じレンダリングが必要な場合は、そのレンダリングエンジンを使用できます。そのためのPDFジェネレータがあります。しかし、それは非常に多くの作業です。

于 2008-12-24T09:09:27.183 に答える
7

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

  1. HTM2PDF - HTML を PDF に変換する API を提供し、PHP での実装を非常に簡単にする PHP SDK も備えています。ヨーロッパ、アジア、アメリカのサーバーの場所を選択できます
  2. PDFmyURL - URL と HTML を PDF に変換する API を提供します。HTM2PDF とほぼ同じ機能を備えていますが、負荷分散されたランドスケープで動作し、もう少し長く使用されています。

これら 2 つの API が前述のすべてのソリューションと異なる点は、CSS と JavaScript を使用して HTML を PDF に変換するだけでなく、PDF の著作権管理、透かし、暗号化も提供することです。そのため、すぐに使い始めたい人向けのオールインワン ソリューションです。

免責事項: 私は、これらの両方の Web サイトを運営する会社、Kaiomi で働いています。

于 2014-06-02T17:59:32.290 に答える
5

TCPDF は正常に動作し、依存関係はなく、無料であり、常にバグ修正されています。提供された HTML/CSS コンテンツが適切にフォーマットされている場合、妥当な速度が得られます。私は通常、50 から 300 kB の HTML 入力 (CSS を含む) から生成し、10 から 15 の PDF ページで 1 から 3 秒以内に PDF 出力を取得します。

TCPDF に何かを送信する前に、tidyライブラリを HTML プリティ フォーマッタとして使用することを強くお勧めします。

于 2013-12-08T11:09:22.980 に答える
5

HTML から PDF への変換は、PHP を使用してサーバー側で行う必要がありますか?

HTML5/JavaScript を使用したクライアント側のソリューションであるjsPDFに出会いました。MIT ライセンスのコードは GitHubにもあります。

于 2013-08-29T15:06:44.533 に答える
3

Web API

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

ここで確認してください

于 2014-04-23T14:40:16.993 に答える
2

PHPではなく、Javaライブラリが次のことを行います。

Flying Saucerは、XMLまたはXHTMLを取得し、それにCSS2.1準拠のスタイルシートを適用してPDFにレンダリングします。

PHPからsystem()または同様の呼び出しを介して使用できます。のXML整形式が必要ですがinput

于 2012-10-03T17:33:49.420 に答える