コンテンツにスキップ

ユーザーアプリケーション開発者操作ガイド - 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結合アプリケーション作成

  1. アプリケーション・ビルダーを開き、作成をクリックします。
  2. 新規アプリケーションをクリックし、アプリケーションの作成画面に遷移します。
  3. 名前PDF結合アプリケーションを入力し、アプリケーションの作成ボタンをクリックします。
PDF結合ページの作成
  1. PDF結合アプリケーションページ・デザイナに遷移します。
  2. ページの作成をクリックし、空白ページを選択します。
  3. ページ定義にて任意のページ名を入力し、ページ・モードにて標準を選択しページの作成をクリックします。
PDF結合ダウンロードボタンの設定
  1. 結合されたPDFファイルのダウンロードを実行する為のTextボタンを任意の場所に配置します。
  2. 識別 > ラベル結合PDFのダウンロードと入力します。
  3. 動作 > アクションにてページの送信が選択されていることを確認してください。
PDF結合プロセスの設定
  1. ページ・デザイナ左側のプロセスタブにてAjaxコールバックプロセスを作成します。
  2. 識別>名前にて任意の名称を設定します。(例: FORM_DOWNLOAD)を設定します。この名称は後程使用します。
  3. ソース>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結合用ブランチの設定
  1. プロセスの後ブランチを作成します。
  2. 動作 > タイプにて、ページまたはURL(リダイレクト)を選択します。
  3. ターゲットリンクが定義されていませんをクリックし、リンク・ビルダー-ターゲットに遷移します。
  4. ターゲット > ページ&APP_PAGE_ID.(現在のページ番号)を入力します。
  5. 詳細をクリックし、詳細入力項目(リクエスト、アンカー)を表示します。
  6. リクエストに、APPLICATION_PROCESS=<Ajaxコールバックに作成したプロセス名>(例: APPLICATION_PROCESS=FORM_DOWNLOAD)を入力します。

  7. DBXFORM/DBXAP_UTILパッケージのリファレンスは帳票生成API PL/SQLリファレンスを参考にしてください。

PDF結合ファイルのダウンロード

PDF結合アプリケーションの実行
  1. 編集内容を保存した後アプリケーションを実行し、作成したページに遷移します。
  2. 結合PDFのダウンロードボタンをクリックすると、結合を行ったファイルがダウンロードされます。