ユーザーアプリケーション開発者操作ガイド - PDF結合
ドキュメント対応バージョン
バージョン | 更新日 |
---|---|
DBXFORM - Version 1 | 2024/05/31 |
目次
Oracle APEXでの利用例
本章は、DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルをもとに帳票の生成またはファイルの結合を行うための実装例を説明します。帳票テンプレートJSONファイルやその保存テーブル及びデータ取得元のテーブルが作成されていることを前提とします。
DBXFORM帳票開発アプリについてはDBXFORM帳票開発者操作ガイド
を参照してください。
想定読者 |
---|
アプリケーション開発者 |
PDFファイルの結合
DBXFORM帳票開発アプリにて生成したPDF結合用帳票テンプレートJSONファイル及び、結合するPDFファイルが存在することを前提とします。
PDF結合用帳票テンプレートJSONファイルのテーブル保存
PDF結合用帳票テンプレートJSONファイルをテーブルのBLOB列に保存します。
保存テーブルの例:
create table template_json_table(
blob_template_json_file BLOB
);
結合ファイルのテーブル保存
結合するPDFファイルをテーブルのBLOB列に保存します。
保存テーブルの例:
create table merge_file_sample_table(
merge_file BLOB
);
PDF結合アプリケーション作成
アプリケーション・ビルダー
を開き、作成
をクリックします。新規アプリケーション
をクリックし、アプリケーションの作成画面に遷移します。名前
にPDF結合アプリケーション
を入力し、アプリケーションの作成
ボタンをクリックします。
PDF結合ページの作成
PDF結合アプリケーション
のページ・デザイナ
に遷移します。ページの作成
をクリックし、空白ページ
を選択します。ページ定義
にて任意のページ名を入力し、ページ・モード
にて標準
を選択しページの作成
をクリックします。
PDF結合ダウンロードボタンの設定
- 結合されたPDFファイルのダウンロードを実行する為の
Text
ボタンを任意の場所に配置します。 識別
>ラベル
に結合PDFのダウンロード
と入力します。動作
>アクション
にてページの送信
が選択されていることを確認してください。
PDF結合プロセスの設定
- ページ・デザイナ左側の
プロセス
タブにてAjaxコールバック
にプロセス
を作成します。 識別
>名前
にて任意の名称を設定します。(例: FORM_DOWNLOAD)を設定します。この名称は後程使用します。ソース
>PL/SQLコード
に以下のコードを入力します。
declare
l_output_file_name VARCHAR2(255);
l_form_template_file BLOB;
l_form_template_json JSON_OBJECT_T;
l_result_blob BLOB;
begin
-- PDF結合用帳票テンプレートJSONファイルを保存したテーブルからBLOBを取得
select blob_template_json_file
into l_form_template_file
from template_json_table;
-- 取得したBLOBファイルをJSONオブジェクトに変換
l_form_template_json := JSON_OBJECT_T(l_form_template_file);
-- 結合するファイルをループ
FOR rec_file IN(
select merge_file
from merge_file_sample_table
) LOOP
-- 結合用帳票テンプレートJSONにファイルを追加
DBXFORM.ADD_TEMPLATE_FILE(
p_template_json => l_form_template_json,
p_file => rec_file.merge_file
);
END LOOP;
-- PDF結合用帳票テンプレートJSONを結合結果のPDFファイル(BLOB)に変換
l_result_blob := DBXFORM.GET_RESULT_FORM(
p_template_json => l_form_template_json
);
-- ダウンロードするファイル名
l_output_file_name := 'sample_file_name.pdf';
-- 生成したファイルのダウンロード
DBXAP_UTIL.DOWNLOAD_FILE(
p_file_name => l_output_file_name,
p_file_data => l_result_blob
);
exception
WHEN OTHERS THEN
rollback;
RAISE;
end;
PDF結合用ブランチの設定
プロセスの後
にブランチ
を作成します。動作
>タイプ
にて、ページまたはURL(リダイレクト)
を選択します。ターゲット
のリンクが定義されていません
をクリックし、リンク・ビルダー-ターゲット
に遷移します。ターゲット
>ページ
に&APP_PAGE_ID.
(現在のページ番号)を入力します。詳細
をクリックし、詳細入力項目(リクエスト、アンカー)を表示します。-
リクエスト
に、APPLICATION_PROCESS=<Ajaxコールバックに作成したプロセス名>
(例: APPLICATION_PROCESS=FORM_DOWNLOAD)を入力します。 -
DBXFORM/DBXAP_UTILパッケージのリファレンスは帳票生成API PL/SQLリファレンスを参考にしてください。
PDF結合ファイルのダウンロード
PDF結合アプリケーションの実行
- 編集内容を保存した後アプリケーションを実行し、作成したページに遷移します。
結合PDFのダウンロード
ボタンをクリックすると、結合を行ったファイルがダウンロードされます。