ブラウザーで PDF ドキュメントを生成する方法

ドキュメント生成は長い間、PDFTron の完全なネイティブ ドキュメント ソフトウェア ツールキットの標準コンポーネントでしたが、近年では、PDFTron の高速 SDK を活用し、使い慣れた Office ツールで構築された Office 形式のテンプレートを使用して、クライアントサイドで、ブラウザー上でパーソナライズされた PDF 見積書、請求書、提案書、契約書、その他のカスタム ビジネス文書の作成をより簡単に行えるようになっています。

この記事では、これまでの PDF 生成の手法と、JavaScript によるあらゆるアプリケーションでのドキュメント生成を自動化するための新しいフレームワークを比較します。

この新しいドキュメント生成コンポーネントは、他の製品とは異なり、データをあらゆる Office ファイル テンプレートに直接、その場でマージします。ネットワーク データ転送の往復やサーバーの応答を待つ必要はありません。

サーバーレス処理で PDF ドキュメントを高速生成

新しい PDF ドキュメントを数秒で確実に入手することができます。また、このコンポーネントは、マージされたコンテンツを PDFTron の優れた精度で動的に再フローし、スタイルとフォーマットの一貫性と、ピクセル パーフェクトな結果を実現します。このクライアントサイドを使った方法は、無限に拡張可能です。作成できる PDF の数には、技術的な制限も、追加料金もありません。

ドキュメント生成のデモにて、ブラウザー上でのユニークな機能が動作することをご確認いただけます。サーバーへの依存、プラグイン、Microsoft Office ライセンス、Microsoft Office ソフトウェアは必要ありません。

この記事の最後に、クイックスタート手順や開発者向けドキュメントなど、さらなるリソースへのリンクがあります。

ブラウザー上でドキュメントを生成すべき理由

現在、オンライン上には大小さまざまなドキュメント ジェネレーターが存在し、それぞれがお客様に代わってドキュメントを瞬時に作成することを約束しています。

しかし、PDFTron のお客様からのフィードバックによると、これらのジェネレーターの一番の問題は、次のようなものでした。

  • サーバーは諸悪の根源である

ほとんどすべてのプロフェッショナルなドキュメント ジェネレーターは、データをマージするためにサーバーに依存しています。開発者は、サービスをホストすることもあります。多くの場合、REST API またはサードパーティの SaaS への HTTP コールを介して機能にアクセスします。

サーバー上でプロセスを実行するということは、ネイティブ コードの優れた精度、高い処理能力、そして多くの JavaScript ライブラリよりも優れた機能を活用できます。しかし、サーバーへの依存は、開発者の観点から見て複雑さを増加させます。単一障害点として機能し、そのウェブサービスに障害が発生した場合、ソフトウェアにも障害が発生します。その場合、ユーザーはドキュメント作成を必要とするミッション クリティカルなタスクを完了することができなくなります。また、データを第三者に転送することは、セキュリティ上の弱点になる可能性があり、より慎重な対応が必要になります。

同様に重要なのは、サーバーがユーザー エクスペリエンスに与える影響です。ユーザーはすでにデータを入力しているのに、ソフトウェアが要求を処理するまで何分も待たなければなりません。では、どうすればいいのでしょうか?

しかし、このような仕組みの裏側では、ソフトウェアではなくサーバーを待っていることに気づかないかもしれません。サーバーは、クライアントからデータを取得し、正しいテンプレートを選び、すべてをマージして、新しく作成された、非常に大きなサイズの PDF ファイルを送り返さなければなりません。ファイルのアップロードとダウンロードを行ったり来たり、ネットワークの遅延もあり、さらにサーバーの高負荷による遅延も加わって、トータルの処理時間がかかってしまいます。

結論: サーバーベースの生成は、特に大規模なユーザーベースにおいて、ソフトウェアのセキュリティ、信頼性、および費用対効果の高いスケーラビリティに影響を及ぼします。また、ソフトウェアや SaaS の動作が遅く見えるため、ユーザー エクスペリエンスにも悪影響を及ぼしますが、実際には、基盤となるサーバーが原因で動作が遅くなっています。

Office フォーマットから PDF を生成する理由

次に注目したのは、テンプレート作成に HTML/CSS を使用するソリューションです。開発者は複雑さを軽減するためにこのようなアプローチを採用し、それは全く理にかなっています。だからこそ、PDFTron は SDK の一部として HTML-to-PDF を完全にサポートしています。HTML を使うことで、フロントエンドの開発者は、テンプレートのプログラム設計とその処理作業 (通常は Node JS のようなサーバー環境で実行される) に使い慣れた Web コードを使用することができます。

しかし、問題はノーコード製品のフロントエンドで発生します。ノーコード製品は、技術に詳しくないビジネス ユーザーが構築できるよう、GUI テンプレート デザイナーが提供されます。簡単に言うと、これらのテンプレート ビルダーのユーザー エクスペリエンスは最高ではありません。

テンプレート作成に特化した Office ソフトのような柔軟性や直感性はなく、ベンダーは一から作り直す必要があり、エンドユーザーが実現したいすべてのユースケースを予測することはできません。

また、このようなプラットフォーム上でテンプレートの設計とデバッグに多大な時間を費やした結果、テンプレートがブラック ボックス化し、ベンダー ロックインが発生する可能性もあります。これに対して、オープン フォーマットのテンプレートを直接埋め込むドキュメント ジェネレーターは、テンプレートを完全にコントロールすることができます。

PDFTron によるサーバーレスで動的なドキュメント生成

パワフルなネイティブ機能と、フロントエンド開発者が好む JavaScript によるブラウザーベースの直接組み込み処理の簡便性という、2つの長所を融合させることを目標としました。

さらに、Word、Excel、PowerPoint など、あらゆる Office 形式のテンプレートを柔軟に利用できるように統合したいと考えました。これにより、既存のテンプレートの再利用が容易になり、その過程で多くの時間を節約することができます。

幸いなことに、PDFTron では、ネイティブ機能を Web に移行する経験が数多くあります。PDFTron の主力製品である WebViewer は、PDFTron のネイティブ ドキュメント SDK を最新の WebAssembly にポートしたもので、あらゆる Web アプリケーションにネイティブ ドキュメント レンダリングとネイティブ デジタル コンテンツ処理機能を迅速に追加することができます。

このように、PDFTron のネイティブ SDK の最新のアップデートにより、Office テンプレートから同じようにパワフルでダイナミックなドキュメント生成をブラウザー上で実現し、Web ネイティブにすることができました。

PDFTron は、あらゆる Office ファイルに JSON データを安全に結合します。

純粋な JavaScript で構築されたこのユニークな技術は、Web アプリケーションの一部のように見えるように直接埋め込むことができます。また、UI のカスタマイズも開発者フレンドリーなので、特定の要件に柔軟に対応できる UX を実現します。

その結果、企業規模、業界、セキュリティ要件に関係なく、プロフェッショナルなドキュメント生成をWebアプリケーションに追加することが、非常に簡単になりました。

あらゆる Office 形式のテンプレートと、交換用のデータレコードを提供することで、あとはサーバーの複雑化や遅延なしに素早くデータを結合する機能を備えているブラウザーベースのコンポーネントが処理します。さらに、ドキュメント作成プロセスの各ステップを効率化するための追加機能がそのまま提供されます。

動的なサーバーレス PDF ドキュメント生成のメリット

  • ブラウザー上で JSON データを Office ファイルのテンプレートに安全に結合します。機密データは、決して管理下から離れません。
  • 使い慣れた Office ツール (Microsoft Office、WPS、LibreOffice、Google Office など) や、DOCX、XLSX、PPTX ファイルを作成できるツールで設計されたオープン Office 形式のテンプレートを直接インポートすることができます。
  • プレースホルダー フィールドの自動検出と、直感的で視覚的なデータ マッピングにより、時間を節約できます。
  • 新しく作成された PDF で、テンプレートの元の書式とスタイルを維持するコンテンツの動的なリフローにより、手動でのデバッグを排除します。
  • ネイティブの PDFTron SDK と同様のパフォーマンス、安定性、精度を提供します。
  • サーバーレスでのリダクション、透かし、デジタル署名、注釈、フォーム入力など、包括的な様々な追加機能をいつでも利用可能です。

Office ファイルからのドキュメント生成など

PDFTron の WebViewer には、Office エンジンが内蔵されています。つまり、従来の「メールマージ」と同様に、レガシー Office フォーマットに加え、PPTX、XLSX、DOCX といった標準的な Office テンプレートから、請求書、電話料金、契約書、その他あらゆるドキュメントを作成することが可能です。しかし、Microsoft Office ソフトウェア、Microsoft Office ライセンス、プラグインは一切必要ありません。

また、テンプレートのサイズ、マージする JSON データ レコードのサイズ、作成できるドキュメントやページ数など、技術的な制限も組み込まれていません。

プレースホルダー フィールドの自動検出と直感的なデータ マッピング

テンプレートにフィールドを配置するのは簡単です。任意のテキスト エディターで、プレースホルダー情報の周りに {{波状のブラケット}} を記述します。このコンポーネントは、アップロードされたテンプレート内のこれらのフィールドをすべて検出し、タイプミスや誤ったデータ マッピングを減らします。次に、プログラムでドキュメントに入力したり、直感的なインターフェースを介してユーザーにフィールドをマッピングさせたりすることができます。

データ クライアントサイドとダイナミック コンテンツ リフローでのマージ

テンプレートが完全にマッピングされたら、データ レコードを提供すると、PDFTron がパーソナライズされたドキュメントを作成します。

画像やロゴ、図などのコンテンツを自由に追加することができます。このコンポーネントは、シームレスなテキスト リフローとページネーションによって、新しいデータに合わせてその場で動的に調整されます。高度なリフロー機能により、必要に応じてテーブルや新しいページに行を追加し、新しい画像や図の周囲も含めて正確にテキストを調整します。このエンジンは、テンプレートのオリジナルのスタイルを自動的に検出し、それを維持します。

新しく作成したドキュメントでは、ブラウザーでファイルを操作するのと同じように、新しいコピーをローカルに保存したり、外部ストレージ プロバイダーに保存したり、メール送信など、ファイル Blob を必要とするその他の用途に使用することができます。

テンプレートの更新が必要な場合には、Office エディターで微調整を行い、ファイルを再アップロードします。

プレビュー機能をはじめとする多彩な機能を搭載

最後に、同じ技術により、ビューアーのオン/オフを切り替える 1 行のコードで、生成されたドキュメントの高品質なプレビューをアプリケーションに簡単に直接追加することができます。

また、同じコンポーネント内に、フロントエンドの操作やバックエンドの処理を補強する、何百ものユニークなサーバーレス機能をドロップインすることができます。追加機能として、サーバーレスのリダクション透かし、注釈、デジタル署名ページ操作など、さまざまな機能があります。

また、機密情報の閲覧や処理を許可するユーザーを指定するために、UI でユーザー権限を設定することも可能です。

次のステップ

PDFTron の JavaScript ベースの Office テンプレート生成ツールは、最小限のコードで起動および実行することができます。WebViewer をプロジェクトにダウンロードし、Office からの JavaScript 生成ガイドに記載されているクイック インストール手順に従ってください。

その後、PDF 生成ライブラリや WebViewer の他の多くのクライアントサイドの機能を深く掘り下げていくことができます。また、テーマ、詳細なカスタマイズ API を使用して WebViewer UI をカスタマイズする方法、または React のソースコードを GitHub でご覧いただけます。

PDFTron 製品の詳細は、弊社 Web サイトをご確認ください。

記事参照:
© 2022 PDFTron
How to Generate PDF Documents in the Browser