0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[OutSystems]Reactive Web AppでもUltimate PDFを使えるコンポーネント

Last updated at Posted at 2021-08-28

2021/8/29
Ultimate PDFが更新され、アプリケーションの種類がTraditional Web → Reactive Web Appに更新されました。この記事で書いているコンポーネントの内容も取り込まれているようです。よって、今後はReactive Web Appのコンポーネントに変わったUltimate PDFを使ったほうがいいですね。

ScreenをPDFとして出力するForgeコンポーネントUltimate PDFを、Reactive Web Appで使うためのコンポーネントUltimate PDF Reactive Blocksの利用手順を確認してみます。

Ultimate PDFは以前に、以下の記事で手順を紹介しています。
Screenを帳票作成に使用する方法(UltimatePDF)

確認環境

Personal Environment(Version 11.13.0 (Build 31107))
Service Studio (Version 11.11.14)
Ultimate PDF Reactive Blocks(Version 1.0.0)

チュートリアル

モジュールと参照

Reactive Web Appのモジュールを作って、Ultimate PDF Reactive Blocksの要素への参照を追加しておきます。
image.png

画面作成

作成手順

このコンポーネントにはScreen Templateがないので、他のテンプレートで画面を作ります。
Emptyのテンプレートが使いやすいですね。

  1. UI Flowを選択し、右クリック
  2. Add Web Screenを選択
  3. 「Empty」テンプレートを選択し「CREATE SCREEN」ボタンをクリックして画面作成

Layoutを変更

画面を作ったら、Layoutを部品提供のPrintLayout_Reactiveに変更します。

image.png

  1. 画面右上のWidget Treeをクリック
  2. WidgetTree表示に切り替わったら、Treeの画面名の直下のBlockを選択。Source Blockプロパティを部品提供のPrintLayout_Reactiveに変更

帳票用画面のコンテンツを作成する

Ultimate PDFの記事と同じ構成の画面を作って行きます。

ヘッダにテキストを表示

各ページのヘッダ部分にテキストを表示するには、そのコンテンツをHeader Placeholderに配置します。
image.png

Screenは普通の画面と同じように作成できます。
上の例では、Header PlaceholderにContainer、その要素としてExpression Widgetをを配置。
Valueの値はログインユーザーのIdを設定。

本文は改ページを挟んで2ページ出力する

任意の場所で改ページを行うには、改ページしたい場所にPagination\PageBreak_Reactive Blockを配置します。

本文は、MainContent Placeholderに配置です。
image.png

上の配置では、1ページ目の左上に数字の1、2ページめの左上に数字の2が出力されます。

フッタには、「現在のページ / 総ページ数」

現在のページを表すには、PageNumbers\PageNumber_Reactive Block、総ページ数はPageNumbers\PageCount_Reactiveを表示したい場所に配置してください。

ページ下部に固定で表示したい内容はFooter Placeholderです。

image.png

PDF出力処理を実装

Ultimate PDF本体と違い、ScreenToPDF がないため、PDFを出力するには明示的に処理を呼ぶ必要があります。

Server Action

UltimatePDF (Traditional Webの方)が提供するPrintToPDF Actionに作成した画面のURLを渡して、PDFのバイナリを返すActionを作ります。

image.png

Input Parameter: Text型。画面のURLを渡す
Output Parameter: Binary Data型。作成したPDFのバイナリデータを返す

PrintToPDFのパラメータには受け取ったURLを渡します。
image.png

PDF出力ボタンを配置

出力したPDFには表示せず、画面上にだけは表示するボタンを作るためには、部品提供のVisibility/HideOnPrint_Reactiveを使い、そのPlaceholder内にWidgetを配置します。
image.png

イベントハンドラ

PDF出力ボタンとして配置したBUttonをダブルクリックして、イベントハンドラを以下のように実装してください。

image.png

GetPDFは上で実装したServer Actiopn。GetBookmarkableURLで現在のURLを渡しています。
Ultimate PDFのPrintToPDFによってこのURLをサーバー内のブラウザで開いて、その印刷機能でPDFにする構成。

動作確認

以上の開発が終わったら画面をブラウザで開き、配置したButtonをクリック。
すると、出力されたPDFファイルをダウンロードするダイアログが表示されるはず。

1ページめのスクリーンショット
image.png

0
0
24

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?