web-dev-qa-db-ja.com

htmlファイルをPDF

PHP出力バッファを使用して動的な「データレビュー」ページのHTMLファイルを作成しています。次に、この出力をHTMLファイルとしてサーバーに保存し、=を作成したいと思いますPDFこのHTMLファイルのファイル(サーバーに保存されています)ですが、これまでに見てきたすべてのソリューションでは、HTMLコードを変数に挿入する必要がありますが、.HTMLファイルをPDFに自動的に変換しますが、解決策を見つけることができないようです。

ここでの全体的なアイデアは、ユーザーにメールでデータレビューの「コピー」を提供することです。そのため、PDFが最適だと思いますが、他に提案がある場合は、喜んで検討します。他の何か。

どんな助けでも大歓迎です。

ありがとうございました!

7
Cal Brown

私はPHPでPDFを生成することに重点を置いて調べたので、ここに私が数年にわたって見つけたものがあります...


PDF変換ツール

  • [〜#〜] fpdf [〜#〜]

    • このオプションは、PDF methodを使用してPDFファイルを生成する場合に非常に便利です(PDF個ずつ)。

      • 機能は次のとおりです。

        • 測定単位、ページ形式、マージンの選択
        • ページのヘッダーとフッターの管理
        • 自動改ページ
        • 自動改行とテキストの位置揃え
        • 画像のサポート(JPEG、PNG、GIF)
        • リンク集
        • TrueType、Type1、エンコーディングサポート
        • ページ圧縮
      • ノート

        • パフォーマンス:Fast
        • コスト:Free
        • 使いやすさ:Difficult
          • たくさん遊んでいかないと使いづらい。
          • 良いドキュメント。
        • その他:
          • ファイルの複製(PDFを生成する必要がある場合は、HTMLバージョンのページとFPDFバージョンのページが必要です)
  • [〜#〜] mpdf [〜#〜]
    • このオプションは、HTMLおよびCSSからPDFファイルを生成し、さらに追加の広範なPDFカスタマイズを行う場合に最適です。
      • 機能は次のとおりです。
        • UTF-8エンコードされたHTMLからのPDF生成
        • FPDFとHTML2FPDFに基づいており、多くの機能強化が施されています
      • ノート
        • パフォーマンス:Mediocre
          • 最速ではありませんが、仕事をします
        • コスト:Free
        • 使いやすさ:Easy
          • 最も難しい部分は、MPDFの有効なHTMLとCSSを理解することです。
          • 素晴らしいドキュメント。
        • すべてのCSSがサポートされているわけではなく、一部のCSSが拡張されて混乱が生じている
  • PrinceXML
    • このオプションは、高いパフォーマンスと高い信頼性が必要な場合に最適です。
      • 機能は次のとおりです。
        • 強力なレイアウト
          • ヘッダーとフッター
          • ページ番号、両面印刷
          • テーブル、リスト、列、フロート
          • 脚注、相互参照
        • Web標準
          • HTML、XHTML、XML、SVG
          • カスケードスタイルシート(CSS)
          • JavaScript/ECMAScript
          • JPEG、PNG、GIF、TIFF
        • PDF出力
          • ブックマーク、リンク、メタデータ
          • 暗号化とドキュメントセキュリティ
          • フォントの埋め込みとサブセット
          • PDF添付ファイル
        • 簡単な統合
          • PHPおよびRuby on Rails
          • サーブレットのJavaクラス
          • C#およびASP用の.NET
          • VB6のActiveX/COM
        • フォントとUnicode
          • OpenTypeフォント、TrueTypeおよびCFF
          • カーニング、リガチャ、スモールキャップ
          • 中国語、日本語、韓国語、アラビア語、ヘブライ語、ヒンディー語など
        • フレンドリーなサポート
          • 迅速なメールサポート
          • ウェブフォーラム、ユーザーガイド
          • 定期的なアップグレード
      • ノート
        • パフォーマンス:Fast
        • 価格:_$$$_
          • サーバーライセンス
            • 1ライセンス-$ 3,800
            • 2ライセンス-3,420ドル
            • 3ライセンス-$ 3,040
            • 4ライセンス-$ 2,850
            • 5以上のライセンス-$ 2,800
          • OEM(最低2年間のコミットメントで、任意の数のサーバーで実行できるため、本当に必要な場合はサーバーファームを作成できます)
            • 20,000ドキュメント/月$ 5,000
            • 100,000ドキュメント/月$ 7,500
            • 500,000ドキュメント/月、10,000ドル
          • 彼らはまた、1900ドルで50%のアカデミック割引、他のプランと同様に495ドルのデスクトップライセンスを持っています(完全なリストについては こちら を参照してください)。
        • 使いやすさ:Easy
        • 私はPrinceXMLを直接使用していません(価格)が、現在、ビジネスのオプションとしてこれを検討しています。
  • DocRaptor

    • このオプションは、高品質のAPIが必要な場合に最適です。これは、PDFおよびXLSファイルを作成するためのクラウドでホストされるオプションです。バックエンドでPrinceXMLを使用します。

      • 機能は次のとおりです。

        • HTML、JS、CSSを送信するだけです
        • 稼働時間保証
        • 無制限のドキュメントサイズ
        • ドキュメントのデバッグを含むエキスパートサポート
        • PrinceXMLが提供するすべての機能はほとんど提供されていますが、サポートまたはドキュメントで、必要となる可能性のある特定のものを再確認してください。
        • APIベース:PHP、NodeJS、Ruby、Python、Java、C#で動作します
      • ノート
        • パフォーマンス:Fast
          • インターネット接続に依存しているので、インターネットがダウンすると、コードのこの部分もダウンします。
        • 価格:_$_-_$$$_
          • 現在、価格プランは次のとおりです( website から取得):
            • 基本-125ドキュメント/月-$ 15 /月
            • プロフェッショナル-325 docs/mo-$ 29 /月
            • プレミアム-1,250ドキュメント/月-$ 75 /月
            • 最大-5,000ドキュメント/月-$ 149 /月
            • ブロンズ-15,000ドキュメント/月-$ 399 /月
            • シルバー-40,000ドキュメント/月-$ 1,000 /月
            • ゴールド-100,000ドキュメント/月-$ 2,250 /月
            • エンタープライズ-∞docs/mo-非公開(連絡する)
        • 使いやすさ:_Very easy_
          • 実際にはドキュメントや設定などを処理しないため、おそらく最も簡単です。ファイルを送信してPDFを返送するだけです。
          • 素晴らしいドキュメント
        • 私は過去に彼らのサポートに連絡しました、そしてそれは実際に非常に役に立ちました。
        • 独自のJavaScriptエンジンを使用して、 遅延または非同期JavaScript を使用できるようにします
  • wkhtmltopdf
    • このオプションは、上記の購入したオプション(PrinceXMLおよびDocRaptor)の後ろに次善のものが必要な場合に最適です。
      • 機能は次のとおりです。
        • [用途] Qt WebKitレンダリングエンジン
        • PDF(または画像)に変換するHTMLドキュメントを作成します。ツールを使用してHTMLドキュメントを実行します。
      • ノート
        • パフォーマンス:Fast
        • コスト:Free
        • 使いやすさ:Easy
          • MikeHaertl で作成されたライブラリなどのライブラリを使用しない限り、コマンドラインを使用します。
        • 現在このオプションを使用しており、パフォーマンスが非常に高く、HTMLタグとCSSプロパティを強力にサポートしています。
        • 生成する必要があるPDFページに変数を送信する必要がある場合は、_$_SESSION_変数を使用できません。これは、コマンドラインから実行され、別のブラウザーを使用するためです。すべての変数を_$_GET_変数を介して渡す必要があります。
  • その他のオプション:多くは this 質問から取得

別のオプション

多くのベンダーと取引しています。一部のベンダーは請求書またはその他のドキュメントのPDFを私たちに送信し、他のベンダーはHTML電子メール(すべての請求書情報が含まれている)を送信し、他のベンダーは請求書へのリンクを送信します。

最も簡単なオプションは、HTMLでドキュメントを作成し、そのドキュメントへのリンクをユーザーに送信することです(明らかに保護されています)。これにより、ユーザーはいつでも(およびブラウザーを備えた任意のデバイスから)請求書を表示でき、必要に応じてブラウザーから印刷することもできます。この方法はまたあなたのウェブサイトへのトラフィックを生成します。これは通常ビジネスにとっても有益です。

これまでに行ったのは、Webサイトにファイルへのリンク(保護された)を作成して、ブラウザーで表示できるようにし、次に請求書をダウンロードするためのボタン(PDF上記のPDF変換ツールの1つで生成されたWebページのバージョン-現在はwkhtmltopdf)。

私の意見では、最善の方法は、すべての配信アプローチを1つにまとめることです。メールのHTMLコンテンツにファイル情報を含むメールを送信し、そのファイルのPDFを添付します。電子メールコンテンツのヘッダー部分(電子メールの上部)内に、すべての情報(安全なポータルのアカウント内にある)を含むWebページへの直接アクセスを受信者に許可するリンクを送信します。これにより、メールで適切に表示できない場合や、PDFビューアがない場合に備えて、ブラウザで表示することができます(最近では珍しいと思いますが、古くなったシステムを持っている人がどれだけいるかに驚いています-まだメールがないので、一部のクライアントにFAXを送信する必要があります。はい、2017年もまだです。ウェブサイトで、PDFドキュメントのダウンロードリンクも提供します(これにより、現在表示されているページが取得され、PDFに変換されて自動的にダウンロードされますブラウザ)。

これが役に立てば幸いです!

22
ctwheels

考えられる解決策のリストに別のオプションを追加したいと思います。 Aspose.PDF Cloud API は、HTMLをPDFに変換する機能も提供します。すべての一般的なプログラミング言語に SDK を提供します。

HTMLのPHPサンプルコードからPDF変換:

//Html file with resource files
$name = "HtmlWithImage.Zip";
$html_file_name = "HtmlWithImage.html";
$height = 650;
$width = 250;
$src_path = $name;
$response = pdfApi->getHtmlInStorageToPdf($src_path, $html_file_name, $height, $width);
print_r($response);
echo "Completed!!!!";

Asposeでは、開発者エバンジェリストとして働いています。

0
Tilal Ahmad