技術者ブログとして日ごろ取り組んでいる学習内容をご紹介します。
今回は、ローコード開発をテーマにしているチーム2です。
今回のテーマ:『Ultimate PDFを使ったPDF出力』
今回はOutSystems内にある画面データをPDFとして出力する方法をご紹介します。
Ultimate PDFとは
OutSystemsに搭載されているForgeコンポーネントのひとつで、
Webページ(HTML+CSS)をPDFとして出力できます。
例えば、請求書・報告書・名刺・帳票などレイアウトされた内容をPDF化できます。
Ultimate PDFのインストール
Service Studioを起動しBrowse Forgeより”Ultimate PDF”で検索してインストールを行います。

モジュールへの参照追加
利用したいモジュールを開き、Manage Dependencies(CTRL+Q)よりUltimate PDFの要素を必要な分選択しApplyボタンをクリックします。
(今回はPrintLayout、HideOnPrint、PrintToPDF_Advancedを選択しました)

各要素の説明は以下の通りです。
・PrintLayout …”画面を印刷やPDF出力に最適化するためのレイアウトテンプレート” です。
・HideOnPrint …画面デザインで使えるCSSクラス(スタイル指定)のひとつで、その名の通り「印刷時に非表示にしたい要素」に付けるための機能です。
・PrintToPDF_Advanced …HTML画面(Webページ)をより細かく設定してPDF化できる拡張版の関数です
出力用の画面の作成
出力用の画面を作るときですがScreenを作る時と同じ要領で作成します。
画面に”PrintLayout”を配置しPDF出力したい画面を作成します。

PDF出力する際に出力されてほしくない文字は”HideOnPrint”を画面に追加しその中に文字を入力します。

PDF出力用のSever Actionの作成
今回は上記で作成した画面に出力ボタンを配置し押下時にダウンロードするServerActionを作成します。

各アクションのプロパティは以下の通りです。
・PrintToPDF_Advanced…Action>出力したい画面のURL(今回は現在の画面URLを取得しています)、PDFの画面サイズ、PDFの余白をそれぞれ設定します。

・Download…Action>PrintToPDF_Advancedの戻り値、PDFの名前をそれぞれ設定します。

実際に出力したPDFはこちら

注意事項
・Client Action と Server Action の使い分けに注意。
PDF生成は基本的にサーバー側で行うため、誤って Client Action から呼び出すと正しく動作しない場合があります。
・FileName には必ずダブルクォーテーション(””)を付ける。"Test.pdf" のように指定しないとエラーになります。
・画面の情報量が多いとタイムアウトしやすい。
テーブルや画像が多いと生成に時間がかかります。
まとめ
今回はUltimate PDFを使ってOutSystemsからPDFファイルを出力する方法をご紹介しました。
画像やグラフなども出力できますので帳票やレポート出力を行うアプリでぜひ活用してみてください。
チーム2ではこれからもOutSystemsなどのローコードツールを使った技術者ブログを展開していきますのでお楽しみに!
