PDFドキュメントを変更するWebアプリケーションの開発

Oracle Visual Builderには、外部のJavaScriptライブラリを使用してPDFドキュメントを作成、更新およびダウンロードできるWebアプリケーションを作成できるツールおよびテンプレートが用意されています。

アプリケーション・ユーザーは、多くのコンテキストおよび様々な目的でPDFドキュメントを使用、変更および生成します。多くの場合、アップロードされたPDF文書はアプリケーションによって読み取られ、この文書の内容はそれに応じて変更される必要があります。アプリケーションがPDFで実行できる一般的な変更には、次のようなものがあります。
  • 新規テキストの追加
  • ドキュメントの一部を囲む矩形の描画。
  • 様々なページでのPDFの分割。
  • イメージの挿入。
場合によっては、新しいPDFドキュメントを最初から作成し、アプリケーションによって生成された情報を移入する必要があります。

このソリューションは、WebおよびモバイルのVisual BuilderアプリケーションにPDF変更機能を実装するために必要なガイダンスを提供します。ここでは、ユーザーが新しいPDFファイルをアップロードまたは作成し、このドキュメントをカスタム・テキストで変更し、アプリケーションのメイン・ページにドキュメントを表示できる1ページのWebアプリケーションを開発する方法について説明します。必要に応じて、ユーザーはローカルクライアントリポジトリにファイルをダウンロードすることもできます。

GitHubリポジトリ(SampleVBCSModifyingPDFApplication)には、このような実装の例として使用できるOracle Visual Builder Webアプリケーションのソース・コードが含まれています。このリポジトリには、このプレイブックの「さらに探索」セクションからアクセスできます。

開始する前に

開発者は、Oracleのロー・コード・ビジュアル・ビルダーを使用して、PDFファイルを処理して次のようなタスクを実行できるWebまたはモバイル・アプリケーションを作成できます。

  • PDFファイルを作成中。
  • PDFコンテンツの変更(ページ、テキスト、イメージの追加または削除など)。
  • 異なるPDF文書を1つにマージするか、複数ページのPDF文書を分割します。
次に、アプリケーションで次のことが可能なPDF文書を生成できます。
  • アプリケーションUIに表示されます。
  • アプリケーションのユーザーによってダウンロードされます。
  • バケットに保存されます。
  • さらなる処理のために他のOCIサービスに送信されます(OCIドキュメント理解サービスなど)。
Oracle Visual Builderがこの操作のための開発プラットフォームである場合は、外部ライブラリをインポートしてPDFドキュメントを生成し、更新する必要があります。したがって、開始する前に、使用可能なJavaScriptライブラリを評価し、APIがアプリケーション要件を満たすことができるかどうかを判断する必要があります。

このソリューションは、PDF-LIB APIを使用して新しいPDFドキュメントを作成し、既存のPDFドキュメントを変更します。

アーキテクチャ

このアーキテクチャ図は、Oracle Visual Builderによって実装およびデプロイされたWebアプリケーションを開発および統合するための一般的な方法を示しています。


webapp-vb-arch.pngの説明が続きます
図webapp-vb-arch.pngの説明

webapp-vb-arch-oracle.zip

Oracle Visual Builderでは、バックエンド・ストレージ・サービスと通信できるアプリケーションを開発できます。これを使用して、アプリケーションのインタフェースをレンダリングするページを作成し、RESTサービスに接続するサービス接続を作成し、ビルド構成を定義して、Oracle Visual Builderのビルド・サービスでAndroid、iOS、Progressiveおよび基本的なWebアプリケーションを作成できるようにします。

このアーキテクチャには、次のコンポーネントが含まれています。
  • Visual Builder Cloud Service

    Oracle Visual Builder Cloud Serviceは、クラウドベースのソフトウェア開発Platform as a Service (PaaS)であり、アプリケーション開発インフラストラクチャのためのホスト環境です。オープンソースの標準をベースとするソリューションで、Oracle Cloud内でのアプリケーションの開発やコラボレート、デプロイが可能です。また、アジャイルなコラボレーション開発、バージョン管理、継続的なデリバリの自動化を備えた統合ビジュアル開発環境も提供します。魅力的なカスタムUIでアプリケーションをエンリッチします。これは、標準のJavaScript、HTML、CSSおよびRESTを介した拡張可能なプラットフォームです。

  • Visual Builder Studio
    Oracle Visual Builder Studio(VB Studio)は、チームがアプリケーション開発ライフサイクルのすべてのステージ(設計、構築、テスト、デプロイ)にわたって作業を効果的に計画および管理するのに役立つ堅牢なアプリケーション開発プラットフォームです。Oracle Visual Builder Studioには、次の機能があります。
    • Gitでのコードのホスティングと、Maven依存関係などのバイナリをホストするための組込みリポジトリ。
    • ビルドおよびテスト・システムを自動化できる継続的な統合サービス。
    • Oracle Cloud Applicationsと緊密に統合された継続的なデリバリ・サービス。
    • 豊富なビジュアル・デザイナがソース・コントロール(Git)と統合されているため、開発者は変更を管理し、バージョン管理ベスト・プラクティスを適用し、チームメイトと協力してアプリケーションを開発できます。
    • 特定のOracle Cloud Applications(VB StudioおよびOracle JavaScript Extension Toolkit (Oracle JET)で構築されたユーザー)の個別のユーザーのニーズを満たすために、様々なUIを構築および表示する機能。
    • スプリント、タスク、欠陥、および機能を追跡するためのアジャイル・ボードと問題追跡システム。
    Oracle Visual Builder Studioでは、Oracle Cloud Applicationsのステージング・インスタンスでも本番インスタンスでも、Oracle Cloud Infrastructure (OCI)サービス・インスタンスでも、アプリケーションを優先ターゲットに簡単にデプロイできます。
  • VM (仮想マシン・ビルド・エグゼキュータ)

    VMビルド・エグゼキュータは、組織のメンバーがVB Studioプロジェクトで定義するジョブのビルドの実行専用のOCI VMコンピュート・インスタンスです。VMエグゼキュータは、常にビルド・エグゼキュータ・テンプレートに関連付けられています。組織のメンバーは、ジョブを作成するときに、適切なエグゼキュータ・テンプレートをジョブに関連付けます。ジョブのビルドがトリガーされると、VB Studioは、エグゼキュータ・テンプレートに関連付けられているVMエグゼキュータでビルドを実行します。VMエグゼキュータは、そのエグゼキュータ・テンプレートを参照するジョブのビルドがトリガーされると自動的に起動し、それに応じてその状態を変更します。VMエグゼキュータは、アクティブであるか、ビルドを実行するか、ビルドを実行するために自身を準備している場合にのみコストがかかります。

  • Dockerコンテナ(ビルド・エグゼキュータおよびイメージ)
    Dockerイメージは、組織のメンバーがDockerエグゼキュータでビルドを実行するために必要なオペレーティング・システムおよびソフトウェア・パッケージを定義します。Dockerイメージは、DockerHubなどの外部Dockerレジストリからインポートするか、ビルド・エグゼキュータ・テンプレートから作成できます。VMエグゼキュータとは異なり、Dockerエグゼキュータは特定のVMに直接関連付けられていません。組織のメンバーは、ジョブを作成するときに、Dockerイメージをビルド・テンプレートとしてジョブに関連付けます。ジョブのビルドがトリガーされると、VB Studioは任意のDockerデプロイメントVMでビルドを実行します。Dockerイメージについて覚えておくべき重要な点:
    • ビルド・エグゼキュータ・テンプレートからイメージを作成する場合、VB Studioは、そのテンプレートで構成されたソフトウェアをインストールして新しいDockerイメージを作成します。レジストリからイメージを作成すると、VB Studioはレジストリからイメージをプルし、ビルド・エージェントを追加し、新しいイメージを作成します。
    • イメージから作成できるエグゼキュータの最大数を指定できます。
    • 管理VMに十分な領域があるかぎり、必要な数のDockerイメージを作成できます。
  • 関数

    Oracle Cloud Infrastructure Functionsは、フルマネージドのマルチテナントでスケーラビリティに優れたオンデマンドのFunctions-as-a-Serviceプラットフォームです。エンタープライズグレードのOracle Cloud Infrastructure上に構築され、Fn Projectオープン・ソース・エンジンを搭載しています。OCI Functionsのサーバーレスで柔軟なアーキテクチャとは、インフラストラクチャ管理やソフトウェア管理を実行できないことを意味します。OCI Functionsは、Java、Python、Node、Go、RubyおよびC#でコードを記述できます(また、高度なユースケースの場合は独自のDockerfileおよびGraal VMを持ち込むことができます)。その後、コードをデプロイしたり、直接コールしたり、イベントに応じてトリガーしたりして、実行中に消費されたリソースに対してのみ請求できます。OCIファンクションには、コンソール、CLIおよびREST APIを使用してアクセスできます。OCIファンクションにデプロイするファンクションは、CLIを使用するか、署名付きHTTPリクエストを作成することで起動できます。OCIファンクションは、Oracle Cloud Infrastructure Identity and Access Management (IAM)と統合されており、ネイティブのOracle Cloud Infrastructureアイデンティティ機能で簡単に認証できます。

  • イベント

    Oracle Visual Builder Studioインスタンスに対して実行するアクションは、イベントを発行します。Oracle Cloudコンソールを使用すると、イベントの発生時に特定のアクションをトリガーするルールを定義できます。Oracle Cloud Infrastructure Eventsを使用すると、テナンシ全体でのリソースの状態変化に基づいた自動化を作成できます。リソースの状態が変化したときに開発チームが自動的に対応できるようにするには、イベントを使用します。たとえば、インスタンスの作成、削除または更新時に、通知を管理者に送信するルールを定義できます。

  • プロジェクト

    プロジェクトはVB Studio機能の集合です。プロジェクトを使用して、ソース・コード・ファイルのホスト、問題の追跡、コードでのコラボレーション、アプリケーションの構築およびデプロイを行うことができます。プロジェクトは複数のGitリポジトリをホストできます。各Gitリポジトリには、複数のブランチと数百のコード・ファイルを含めることができます。Gitリポジトリの各ブランチに対してマージ・リクエストを作成し、レビューアにコードのレビューを依頼できます。複数のビルド・ジョブを作成して構成し、Oracle CloudまたはオンプレミスWebサーバーにデプロイできる様々なプロジェクト・アーティファクトを生成できます。

  • Gitリポジトリ

    ソース・コード・ファイルをホストするソース・コード管理(SCM)および分散バージョン制御ツール。

  • コード・レビューおよびマージ要求

    Gitリポジトリ・ブランチを別のブランチにマージする方法。ブランチをマージする前に、チーム・メンバーは両方のブランチのファイル間の差異をレビューし、フィードバックを提供できます。

  • 継続的統合(CI)および連続配信(CD)パイプライン

    継続的な統合は、開発チームが小さなコード変更を実装し、コードをGitなどのバージョン管理リポジトリに頻繁にプッシュできるようにする一連のプラクティスです。継続的デリバリは、開発者が短期間でソフトウェアを作成できるようにする手法です。

  • 仮想クラウド・ネットワーク(VCN)のクラウド・サービス

    VCNは、Oracle Cloud Infrastructureリージョンに設定する、カスタマイズ可能なソフトウェア定義ネットワークです。VCNは、従来のデータ・センター・ネットワークと同様に、ネットワーク環境の完全な制御を可能にします。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

  • データ・リポジトリ(Oracle Autonomous Transaction Processingを使用)

    Oracle Autonomous Transaction Processingは、トランザクション処理ワークロード用に最適化された、自動運転、自己保護および自己修復が可能なデータベース・サービスです。ハードウェアの構成や管理、ソフトウェアのインストールを行う必要はありません。Oracle Cloud Infrastructureでは、データベースの作成、およびデータベースのバックアップ、パッチ適用、アップグレードおよびチューニングが処理されます。

  • Identity Cloud Services (IdCS)

    Oracle Identity Cloud Serviceは、マルチテナントのクラウド・プラットフォームを介してすべてのコアIDおよびアクセス管理機能を提供する、完全に統合された革新的なサービスを提供します。

  • 監査

    OCI Auditサービスは、サポートされているすべてのOCIパブリックAPIエンドポイントへのコールを、ログ・イベントとして自動的に記録します。

  • オブジェクト・ストレージ

    オブジェクト・ストレージでは、データベース・バックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージをシームレスに拡張できます。迅速、即時、頻繁にアクセスする必要があるホット・ストレージには、標準ストレージを使用します。アーカイブ・ストレージは、長期間保存し、ほとんどまたはほとんどアクセスしないコールド・ストレージに使用します。

Oracle Visual Builderを使用したアプリケーション構築のステップ

Oracle Visual Builderでアプリケーションを開発する際に従う基本的なステップは、次のとおりです。

  1. スタンドアロンのVisual Builderサービスから、またはOracle Integration Cloud (OIC)から新しい統合インスタンス(まだ作成されていない場合)のVisual Builderサービスのインスタンスを作成します。
  2. 新規ビジュアル・ビルダー・アプリケーションを作成します。
  3. Oracle Visual Builderで新しいWebアプリケーションを作成します。
  4. ファイルをアップロードするボタン、新しいPDFドキュメントの作成、更新されたドキュメントのダウンロードなどのコントロールを公開するページおよび全体的なユーザー・インタフェースを作成します。
  5. 抽出または含まれる情報をPDF文書との間でホストする変数および定数を作成します。
  6. 必要な外部リソースおよびライブラリのインポート
  7. 必要なJavaScriptコードを開発して、次のことを行います。
    • ローカル・システムからファイルをアップロードします。
    • 入力したテキストでアップロードしたPDFファイルを変更します。
    • 新しいPDFドキュメントを作成します。
    • PDFファイルをダウンロードします。
  8. 適切なユーザーおよびドキュメントでアプリケーションをテストします。
  9. Webアプリケーションをステージングして公開します。

必要なサービスおよびロールについて

このソリューションには、Oracle Visual Builderサービスに加えて、次の追加サービスおよびそれぞれのロールが必要です。

サービス名: ロール 必要:
Oracle Cloud Infrastructure: 管理者 モバイル・ユーザー、ロールおよびレルムを管理します。
Oracle Visual Builder: ServiceDeveloperアプリケーション・レイヤー事前定義済ロールにマップするVisual Builder Developer事前定義ロール。 Webおよびモバイル・アプリケーションを作成、管理、保護および公開します。

必要なクラウド・サービスを入手するには、Oracleソリューション用のOracle Cloudサービスを取得する方法を確認するを参照してください。