働く必要があるため、私は最近、HTMLがPDFに変換される機能を研究しました。 HTMLからPDFへの主要な技術は、Webページで複雑なCSSスタイルを処理する方法です。
クライアントモード:フロントデスクでクライアントプログラムを呼び出し、クライアントプログラムの関数を使用してPDFファイル変換を完了します。このテストツールは、wkhtmltopdfおよびphantomjsです。 Java JARパッケージソリューション分析モード:Javaコード分析CSSスタイル、翻訳HTMLファイルはPDFファイルです。このテストカテゴリは次のとおりです。Itext、Flying Sauser、PD4ML。 JSフロント分析モード:JSフロントエンド分析HTMLファイルはPDFファイルです。今回インターネット上で導入されたソリューションについては、実際のプロジェクトのニーズを組み合わせて、パフォーマンスと機能の観点から次の分析を行うために1つずつ実行します。
1.テストページの紹介インターネット上で各変換ケースの導入を表示することにより、シンプルなHTMLスタイルである一般的なテーブルスタイルは、PDFファイル変換を行う際の上記のスキームによってサポートされます。ただし、実際のビジネスのニーズを考慮すると、このテストはCSSスタイルのブートストラップ(v 3.3.6)を特別に使用し、ページはCSS3の新しい機能も適用します。この新機能に基づいて、ブラウザ内のHTMLページのディスプレイ効果を次のように記述します。
2.wkhtmltopdfテストWKHTMLTOPDFは、WebKit Webページレンダリングエンジンを使用して開発されたツールであり、HTMLをPDFに変換します。PDFは、複数のスクリプト言語と統合してドキュメントを変換できます。公式ウェブサイトアドレスhttp://wkhtmltopdf.org/
技術的な機能:WKHTMLTOPDFは、WebページをPDFに直接閲覧できます。 Javaコードを使用する場合、CMD命令を呼び出してWebページの関数をPDFに完了できます。
関数テスト:CMDに直接テスト命令を入力して、処理の進行状況を表示します。
最初のパラメーター:wkhtmltopdf.exeが位置するパス
2番目のパラメーター:PDFのHTMLページに変換する必要があります
3番目のパラメーター:PDFファイルパスとファイル名
ページのエクスポート効果は次のとおりです。
テストの説明:
WKHTMLTOPDFは、BootStapのCSSスタイル全体をよりよくサポートしていることがわかりました。 CSS3の新機能は、丸い写真では十分にサポートされていません。一部のページスタイルは失敗します。チャートディスプレイの場合、各チャートのエクスポートプログラムはエラーを報告し、サポートしません。ただし、Echartには画像インターフェイスに変換されたチャートがあり、画像アドレスを取得してPDFにエクスポートできます。
3.phantomjsテストPhantomjsは、WebKitカーネルに基づいたヘッドレスブラウザです。つまり、UIインターフェイスはありません。つまり、ブラウザですが、手順設計に関連する操作のクリックスルー、ページターニングなどです。 JavaScript APIインターフェイスを提供します。つまり、JSプログラムを作成することで、このトップで直接対話できます。 C/C ++は、高品質のコレクターの制限に基づいてより適切に開発できます。また、Windows、Linux、Macなど、さまざまなOSインストールのインストールおよび使用を提供します。つまり、さまざまなプラットフォームでプロジェクトや自動プロジェクトテストを開発および収集できます。公式ウェブサイトアドレスhttp://phantomjs.org/
PhantomJは、今回は多くの機能があります。 CMDでのテストは次のとおりです。
テストページは次のようにガイドされています。
テストの説明:
PhantomjsがBootstapのスタイルをサポートしていることがわかりました。 CSS3の新機能は、丸い写真では十分にサポートされていません。一部のページスタイルは失敗します。 Echartチャートディスプレイの場合、直接エクスポートすることもできます。効果は次のとおりです。
3.ItextとFlying SauserITEXTは、HTML2PDF、高速速度、不十分なエラー補正能力を実装し、中国語(HTMLがUnicodeエンコードを使用する必要がある)をサポートしますが、中国は中国のフォント、オープンソースをサポートしています。 Flying Sauserは、エラー補正能力が低いHTML2PDFを実装し、さまざまな中国のフォント(一部のスタイルは認識できません)をサポートします。
技術的特徴:Javaプログラミングに基づくHTML CSSスタイルの分析と処理。現在、より単純なページとスタイルのみのサポートのみです。 CSS3のスタイルと複雑なCSSスタイルの互換性については、CSS3は非常に貧弱です。ページのコンテンツが長くなると、処理時間が遅くなります。参照アドレス:https://code.google.com/archive/p/flying-saucer/
テスト結果:この実験のテストページは、次のようなものです。
テストの説明:
ItextとFlying Sauserの2つのオープンソースプロジェクトは、基本的にデータをコンサルティングすることで、このテクノロジーは比較的古くなっています。簡単なテーブルの場合、統計データのエクスポート、および更新されたテクノロジーには、Bootstrapテーブル、EasyUI Datagridテーブルのエクスポートが含まれます。オンラインで導入されたこのスキームは推奨されません。
4.PD4MLテストPD4MLは、純粋なJavaのクラスライブラリであり、CSSはページレイアウトおよびコンテンツ定義形式として使用され、PDFドキュメントを生成するための強力なツールを生成します。参照ウェブサイト:http://www.pd4ml.com
ソフトウェアの利点は次のとおりです。
サポートされているHTMLタグとCSS属性は比較的いっぱいであり、コンバージョンの歪みは比較的少ない。 WebファイルタグとCSS文法エラーのフォールトトレランスの方が優れています。追加の制御がなければ、画像の変換出力をサポートします。
ソフトウェアの欠点は次のとおりです。
最新のデモバージョンであるオープンソースがなければ、ダウンロードとテスト後、中国の変換はサポートされていないことがわかります。コマーシャルバージョンを購入する必要があります。 (ここに非常にピットがあります。文字化けの問題をテストすることは利用できず、後でサポートされていないことがわかりました)。クラッキング後の古いバージョンの一部は、文字化けの問題を解決できますが、サポートされているCSSスタイルは完全ではありません。
テスト結果:
テストの説明:
中国の新しいバージョンは文字化けしていますが、いくつかのCSSスタイルをサポートしています。古いバージョンの解読の後、インターフェイスのスタイルの互換性が低く、BootsRTAPのサポートは基本的にデータを生成し、写真に問題がないことを示します。充電ソフトウェアであり、パフォーマンスは通常のページではありません。
5.html2canvasテストHTML2Canvasは、クライアントのWebページのスクリーンショットを実現するために、HTML5とCSS3のいくつかの新機能を使用しています。 HTML2CANVASは、ページのDOMおよび要素スタイル情報を使用し、ページスクリーンショットの機能を実現するためにキャンバス画像にレンダリングします。サーバーからのレンダリングは必要ありません。ブラウザがCanvas、FlashCanvasまたはExplorerCanvasをサポートしていない場合、代わりに使用されます。次のブラウザは、スクリプトをよくサポートできます:Firefox 3.5+、Google Chrome、Operaの新しいバージョン、IE9上のブラウザ。各ブラウザはページを異なる方法でレンダリングするため、生成された写真は同じではありません。まだ開発段階にありますが、楽しみにしています。このプラグインはjQueryプラグインに依存します。最新バージョンを使用することをお勧めします。
クロスドメインの写真をサポートせず、フラッシュをサポートせずにSVG写真をサポートせずにブラウザプラグの一部を使用できません。Ifreamをサポートしません(JSの元のコードを変更できます、ifreamをサポート)
この時点でHTML2Canvasを使用する場合、Echartチャートを含む多くのアイテムページが正常にスクリーンショットを撮ることができることがわかりました。少量のCSS3の新機能のみがサポートされていません。スクリーンショット効果の方が優れています。ただし、テストすると、致命的な問題が見つかりました。追跡分析の後、HTML2CanvasのJS関数が認識できないCSSスタイルを処理することがわかった。特に隠された表示されたモジュールの場合、それは非友好的なものをサポートします。
ページスクリーンショットの効果は次のとおりです。
ただし、元のページのCSSは失敗し、ページは異常、隠されたスタイル、表示されたスタイルディスプレイは混oticとしています。
テストの説明:
HTML2Canvasは、BootStapのスタイルをよりよくサポートしていることがわかりました。 CSS3の新機能は、丸い写真では十分にサポートされていません。その主な利点は、オリジナルのページを変更するスタイルについては、最初に画像をエクスポートでき、ページは再び更新されます。
6。概要上記のケースのテストを通じて、一般的に使用されているHTML変換のほとんどは、オンラインで導入されていますが、実際のアプリケーションでは、まだ多くの問題があり、適用が困難です。これらの方法の原則を分析することにより、次の結論を得ることができます。
HTML Webページは完全にPDFに変換され、すべてのソリューションが不十分です。フォームページのみである場合、HTMLスタイルは、CSS3の属性を可能な限り採用できません。 HTMLフロントスタイルは急速に発展しており、CSS3の新機能は良い効果があり、CSSは新しいルールと文法を定義しています。 ItextやFlying SauserなどのJavaコンバージョンクラスは、これらの変更機能を時間内に書き込むことができず、これらのオープンソースプロジェクトは古いテクノロジーであるためです。 PD4MLの本質は、CSSを互換性のあるCSS3と比較して、CSSを処理するスタイルです。しかし、それはまた、少数のCSSスタイルをサポートしていません。そして、中国の文字化けの問題は不便です。クライアントブラウザモードの場合、PhantomjsとWKHTMLTOPDFは、より強力です。 HTML2Canvasのスクリーンショットモードは柔軟で、軽量のフロントスクリーンショットツールです。現在、関数の一部は不完全ですが、全体的な効果は悪くありません。 PDFのスクリーンショット。
上記は、この記事のすべてのコンテンツです。