PDF フォームは Lotus Forms とは異なるタイプの電子フォームで、対話式フィールドを持たない静的なバイナリー・ファイル、または XML が埋め込まれた動的な XFA (XML Forms Architecture) フォームのいずれかです。Lotus Forms Conversion Tool 3.0 は、PDF フォームを Lotus Forms 3.0 に自動的に変換できる Lotus Forms Designer 用プラグインです。静的 PDF ファイルおよび動的 XFA フォームの両方をサポートしています。また、変換プロセスに適用できるカスタマイズ済みルールや最適化プログラムも数多く含まれています。自動変換後は、プレゼンテーション層、XForms インスタンス、およびビジネス・ロジックに関し、変換されたフォームを手動で更新するためのプラグインが必要です。
この記事では、PDF の移行プロジェクトの概要を簡潔に述べてから、Lotus Forms 3.0 の変換ツールについて詳しく説明します。また、手動での作業および要件についての詳細なリストも示します。これは、プロジェクトのサイジングや見積もりのための重要なリストです。読者の方は、IBM Lotus Forms 製品に習熟している必要があります。この記事は、フォームのサービス・プロジェクトに関するプロジェクト経験を理解および共有したい IBM Lotus Forms のあらゆるユーザーに適しています。
PDF は Portable Document Format の頭字語であり、Adobe® Systems Inc. によって開発されたファイル・フォーマットです。PDF はフォーマット情報をさまざまなデスクトップ・パブリッシング・アプリケーションから取り込み、フォーマットした文書を送信して受信者のモニターまたはプリンターに意図どおりに出力することを可能にします。PDF ファイルを表示するには Adobe Reader が必要で、PDF ファイルを作成または変更するにはAdobe Acrobat Professional または Adobe Acrobat Designer が必要です。
PDF フォームは、静的 PDF フォームと対話式 PDF フォームの 2 つのタイプに分類できます。静的 PDF フォームは、対話式の要素を持たない従来型の PDF 文書です。フォームは、静的要素 (テキスト、点、線、グラフィックなど) で構成されています。ファイルはバイナリー形式で保存されます。
もう 1 つの PDF フォームのタイプは、対話式の PDF フォームです。PDF 仕様によると、対話式フォームには次の 2 つのタイプがあります。
- AcroForm.PDF 仕様 1.2 で導入されたこのフォームは、ユーザーから情報を対話式に収集するフィールドの集まりです。対話式フォームのコンテンツおよびプロパティーは、PDF ファイル内の文書カタログの AcroForm エントリーから参照される対話式フォームの辞書によって定義されます。
- XML Forms Architecture (XFA). XFA は、テンプレート・ベースの文法と、ユーザーによる対話式フォームの構築を可能にする処理ルールのセットを備えています。テンプレート・ベースの文法により、ユーザーがデータを入力するフィールドが定義されます。XFA のオープンな特性により、対話式フォームを記述する共通の XML 文法がもたらされます。これが共通の基盤となって、フォーム処理アプリケーション間でフォームに関連するやりとりが行われます。このオープンな特性は、XFA が多様なビジネスに適用されることを意味します。XFA フォームは、次のような幅広い機能を持っています。
- Workflow. このタイプのフォームには、データのプレゼンテーション、データのキャプチャー、およびデータの編集が含まれます。XFA は、バックエンド・サーバーにデータを送信するフロントエンド・アプリケーションとして機能します。また、印刷の目的で使用することもできます。
- Dynamic interactions. 動的な機能には、ユーザーによって編集され、動的な計算、検証、および他のイベントをともなう対話式のフォームから、サーバーによって生成され、マシンによって値が入力されたフォームまで、さまざまなものがあります。
- Dynamic layout. フォームは、ユーザーまたは外部データ・ソース (データベース・サーバーなど) から供給されたデータを収容するために、自分自身の構成を自動的に変更することができます。たとえば、サーバーから取り出したデータが 100 行の場合、フォームは 100 行を表示します。
- Complexity. この機能には、単一ページの静的フォーム、データの内容に基づく動的な文書組み立て、および数十万のトランザクションが含まれる巨大な生産工程などが含まれます。
対話式フォームの 1 つのタイプである XFA は、次の点で AcroForm よりも高度です。
- XFA は XML ベースのワークフローで使用できます。
- XFA はデータを XFA テンプレートから分離します。これにより、サポートされるデータ構造の柔軟性が大幅に高まり、データをフォームから分離してパッケージ化できます。
- XFA は、動的に拡大するフォームを指定できます。
- XFA は、HTTP や WSDL (Web Services Description Language) などの Web 対話を指定できます。このような対話を使用すると、データをサーバーに送信したり、データの計算を実行し、その結果をリターンするようサーバーに要求したりすることができます。
- XFA は他の XML 文法でも機能します。
これらの情報に基づき、XFA は特性面で Lotus Forms に非常によく似ています。表 1 に、両者の詳細な比較を示します。
表 1. Lotus Forms と XFA の比較
| 機能リスト | Lotus Forms | XFA |
|---|---|---|
| 要素 | XFDL (Extensible Forms Description Language) 項目、オプション、およびXForms 項目、オプション | XFA 項目およびオプション |
| 動的 | XForms の繰り返し | サブフォームおよびサブフォームのセット |
| 検証テスト | Null、データ型、データ・パターン、および正規表現のテスト | Null、データ型、フォーマット、およびスクリプトのテスト |
| スクリプト | XForms 計算および XFDL 計算 | JavaScript™ |
| データ・インスタンス | XML データ・インスタンスまたは XForms データ・インスタンス | XFA データ・テンプレート |
| データ・インスタンス | サポート | サポート |
| デジタル署名 | XFDL デジタル署名 | XML デジタル署名および PDF デジタル署名 |
| ActiveX Data Object (ADO) API | サポートなし | サポート |
| 埋め込み | HTML への埋め込みをサポート | XDP (XML Data Package)、PDF への埋め込み |
| レイアウト | ピクセルまたは相対位置で表された項目の場所 | オブジェクトのコンテナーでのレイアウト・プロセッサーによる処理 |
| HTML | サポートなし | HTML フラグメントの埋め込みをサポート |
PDF の移行プロジェクトでは、既存の PDF フォームから Lotus Forms への変換が行われます。PDF フォームは、静的または動的のいずれかです。移行を開始する前に、プロジェクトの要件を明確に文書化することが重要です。フォーム開発者が明確な指示に基づいて各項目を処理できるように、この要件で各フォームの要素レベルの詳細を明らかにする必要があります。
通常、要件文書には次の内容が含まれています。
- 一般的な指示. 移行についての一般的なガイドラインです。移行の範囲、機能リスト、および PDF から変換すべきものと変換すべきではないものを示す明確な要約が含まれます。
- テンプレート XFDL フォーム. このテンプレート・フォームには、共通スタイルおよび再利用可能なコンポーネント (ツールバー、背景のカラー、印刷設定、ラベルのフォント・サイズとカラー、国と州のリストなど) が含まれます。
- 各フォームの詳細スプレッドシート. Lotus Forms と PDF では、タイプおよびプロパティーが異なる可能性があるため、変換するフォームごとに、コンテンツおよび PDF と XFDL 間のマッピングを記述したスプレッドシートを用意する必要があります。マッピング情報がないと、フォーム開発者が、適切な項目タイプおよびオプション値を把握できないおそれがあります。表 2 に、スプレッドシートに含める必要がある情報を示します。
表 2. 必須情報のサンプル
| 列名 | 説明 | サンプル値 |
|---|---|---|
| 項目名 | 要素ラベル | エージェンシー名 |
| タイプ | 変換後の要素タイプで、PDF と異なる可能性があります | フィールド・チェック・グループ |
| 項目ルール | 要素データのタイプ | 整数、1 つの選択肢 |
| フォーマット | 値のフォーマット (日付または郵便番号など) | 日付: MM/DD/YYYY |
| デフォルト値 | 要素はデフォルト値を持つか? | デフォルト: 100 |
| 必須 | 要素への値の入力は必須か? | 「はい」または「いいえ」 |
| 範囲 | 値の範囲で、通常は数値の範囲に使用されます | 1 から 100 |
| 項目長 | 要素のサイズ | 20 |
| 無効/有効 | 要素の有効/無効を決める機能のロジック | 最初の質問に「はい」と答えた場合に有効 |
| 表示/非表示 | 要素の表示/非表示を決める機能のロジック | 最初の質問に「はい」と答えた場合に表示 |
| ヘルプ・メッセージ | 要素のヘルプ・テキスト | エージェンシー名の入力 |
| SID | 要素の SID | Agency_Name |
| データ・インスタンス名 | 要素にバインドされたデータ・インスタンス名 | Agency_Name |
| 計算 | 要素が他の要素によって計算される場合の式 | =Month1+Month2 |
| パターン | この要素に適用できる再利用可能なパターン | 署名ボタン・タイプ 1 |
| その他 | 要素に関する他の情報またはロジック | セクション 1 と 2 にのみ適用される署名 |
要件を定義して文書化した後は、PDF から Lotus フォームへの実際の移行を実行できます。通常は、次に示す 2 つの主な移行ステップを完了する必要があります。
- 変換ツールを使用して、PDF から Lotus Forms へのロー変換 (raw conversion) を自動的に行います。Lotus Forms 変換ツールは、PDF フォームから Lotus Forms への変換に使用できる Lotus Forms Designer プラグインです。このツールを使用することで、移行時の手作業を減らせます。
- ロー変換されたデータを手動で更新します。ロー変換されたデータには、レイアウトとロジックだけが含まれています。フォーム開発者は要件スプレッドシートに基づき、フォーム上の各項目をチェックし、Forms Designer で項目を 1 つずつ更新できます。
次の 2 つのセクションで、これらのステップについて詳しく説明します。
IBM Lotus Forms 3.0.1 用の変換ツール (Forms Conversion Tool プラグイン) は、事業オーナーおよびフォーム開発者が PDF (Portable Document Format) ファイルおよび FileNet 電子フォームを Lotus Forms に容易に変換できる革新的で使いやすいツールです。このツールは、既存の Lotus Forms の変形にも使用できます。Lotus Forms 3.5 では、Lotus Forms変換ツールは Designer 3.5 の一部として組み込まれています。「リソース」セクションのリンクによって Forms Conversion Tool プラグインまたは Lotus Forms 3.5 試用版をダウンロードし、インストールしてください。
変換ツールのインストール後、「ファイル」->「新規」->「Lotus Forms への変換」をクリックします。図 1 に示すウィンドウが表示されます。
図 1. 最初の「フォームの変換」ウィンドウ

図 1 に示されているのは、変換ツールの変換選択ウィンドウです。変換するファイルを追加するときは、「ファイルの追加」ボタンをクリックします。フォーマット・リストでは、2 つのパーサーである PDF と FileNet を選択できます。PDF 変換には「PDF パーサー」を選択します。プロファイル・リストで pdf_default プロファイルを選択し、「次へ」をクリックします。
図 2. ファイルの場所の選択

図 2 に示されているのは、変換されたファイルの保存場所を選択するウィンドウです。デフォルトの場所は、PDF ファイルと同じフォルダーです。Designer ワークスペース内のフォルダーを選択することもできます。「完了」をクリックすると、PDF が変換されます。図 3 と 4 に、元の PDF フォームと変換後の XFDL フォームを示します。
図 3. 元の PDF フォーム

図 4. 変換されたLotus Formsフォーム

この 2 つの図から、ほとんどのラベルとレイアウトがツールによって変換されていることがわかります。
デフォルトの変換プロファイルを使用したときに、期待どおりの変換結果を得られないことがときどきあります。カスタマイズした変換ファイルを作成することにより、変換プロセスをより詳細に調整できます。Forms Designer の「ウィンドウ」->「設定」メニューを選択します。次に、「設定」ウィンドウの左側のペインで「フォームの変換およびトランスフォーム・プロファイル」を選択し、「新規」ボタンをクリックします。「プロファイルの編集」ウィンドウが図 5 のように表示されます。
図 5. 「フォーム変換プロファイルの編集」ウィンドウ

このウィンドウを使用して、特定のタイプのファイル用に変換プロファイルをカスタマイズできます。変換プロファイルには、次の内容が含まれています。
- 変換ルール. ルールは、生成されたフォームの内容をカスタマイズするために使用されます。テンプレート・フォームからのツールバーの追加、要素のフォント、カラー、および境界線の更新、SID 生成ルールの変更、XFDL ソースでの要素の順序変更などが含まれています。
- XForms の生成. このオプションは、XForms データ・インスタンスにバインドされるコントロールのリストを選択するために使用されます。
- レイアウト用最適化プログラム. 最適化プログラムには、PDF 要素から XFDL 要素への変換中に調整できるパラメーターが含まれています。たとえば、4 つの行からチェック・ボックスを作成し、ラベルとフィールドを調整するパラメーターなどがあります。最適化プログラムの目的は、PDF 上の静的項目 (ラベル、行) に基づいて新しい対話式項目 (チェック・ボックス、フィールド) をフォーム上に作成し、フォーム上の既存の項目 (ラベルまたはフィールド) を整列することです。
私たちが実行した移行プロジェクトにより、プロファイルの調整方法に関する一般的なガイドラインとして、次のことが得られました。
- フォームのバッチごとにプロファイルを作成します。フォームの各バッチは、異なるスタイルを持つことができます。バッチごとにプロファイルを作成し、最良の結果を生み出すようパラメーターを調整するとよいでしょう。プロファイルはエクスポートおよびインポートできるため、どのフォーム開発者も同じ変換設定を使用できます。
- フォームの要件に詳細な XForms ルールが含まれる場合は、XForms インスタンスの生成を無効にするよう提案すべきです。生成されるインスタンス名は SID に基づいており、通常、バックエンドでの処理に適さないからです。
- ラベル用に十分な長さが設定されず、変換されたフォームで一部のラベルが切り捨てられる場合は、「デフォルトの幅と高さの使用」オプションを有効にします。このルールにより、ラベルの幅と高さが削除され、Lotus Forms ビューアーによって計算されたデフォルトのサイズが使用されます。
- フォームに生成されるフィールド数があまりにも少ない場合は、「隣接する線/ラベルの結合」オプションを無効にします。線およびラベルを結合すると、最適化プログラム「線またはボックスをフィールドにトランスフォーム」によって生成されるフィールドに影響します。結合により、フォーム上の一部の線およびラベルが削除されるためです。
ほとんどの場合、自動的に変換されたフォーム上のデータ・インスタンスは正しく構成されていないため、フォームをそのまま使用することはできません。通常、移行プロジェクトでは、バックエンドの処理フローに送信できる特定のスキーマにデータ・インスタンスを適合させる作業が必要です。
手動更新は、自動変換で処理できずに失われた機能を解決するための、移行プロジェクトにおける必須のステップです。手動更新で必要な手順は以下のとおりです。
- 文書化されたフォームのスプレッドシートに基づき、詳細なレイアウト、フォーマット、ロジック、および SID を調整します。
- ビジネス・ロジックに基づき、XForms データ・インスタンスおよびXForms バインディングを生成します。
- 自動変換後、変換されなかった PDF 要素 (認識されなかったカラー・スペースやイメージなど) によって、XFDL 内に XML コメントが作成されます。これらのコメントを解消する、またはコメントに基づいて未変換の項目を更新するには、手動更新が必要です。
- 要件に基づき、デジタル署名を更新します。自動変換によって Clickwap 署名だけが生成されることがあります。
- 要件に基づき、データ・サブミットを更新します。自動変換は、元の PDF フォーム内ではデータ・サブミットを処理しません。
- PDF フォーム内の JavaScript に基づき、ロジックを更新します。自動変換は、JavaScript を XFDL スクリプトに変換しません。
- グラフィック要素を更新します。PDF フォームには、ベクトル・イメージ、斜線、曲線などのグラフィック要素が含まれていることがあります。これらの要素は Lotus Forms ではサポートされていません。しかし、PDF フォームからキャプチャーした JPG イメージまたは GIF イメージを使用して、これらの要素を置換できます。
手動更新の後、フォームが生成され、品質保証 (QA) プロセスを実施します。私たちが行った移行プロジェクトから、QA プロセスで強調する必要がある項目をまとめたものを表 3 に示します。
表 3. QA チェックリスト
| 名前 | 名前 |
|---|---|
| フォントおよびカラー | PDF 内のフォントまたはカラーのうち、Lotus Forms で正しく表示されないものがあります。QA プロセスでは、その違いをチェックする必要があります。 |
| レイアウトのチェック | Lotus Forms ビューアーでのフォームのレイアウトと Webform サーバーでの元の PDF を比較します。ラベルと線に注目してください。たとえば、文字幅は PDF では調整可能ですが、Lotus Forms では固定です。この相違により、ラベルの表示が異なる場合があります。 |
| 印刷のチェック | 変換されたフォームおよび PDF の両方を印刷します。用紙に印刷されたフォームを比較し、相違点がないかチェックします。 |
| データ検証のルール | フォームにデータを入力し、PDF と変換後のフォームでデータ検証を比較します。 |
| スクリプトのロジック | XFDL および XForms ロジックを PDF 内の JavaScript と比較し、変換後のフォームに正しくインプリメントされているかチェックします。 |
| 動的な部分 | PDF および XFDL のどちらも、動的コンテンツの生成をサポートしています。データ・インスタンスでデータのすべてのセットを生成することにより、動的コンテンツの生成をテストできます。 |
一般に、PDF 移行プロジェクトには、フォームごとに十分に定義された要件、自動化された PDF 変換ツール、および手動更新と QA プロセスがかかわっています。プロセスの一部が自動化され、PDF の知識が必要という点で、Lotus Forms の他のプロジェクト (最初からフォームを新規作成する場合など) とは異なります。Lotus Forms 変換ツールを活用することは、PDF 移行プロジェクトにおける優れた取り組みです。
学ぶために
-
IBM Lotus Forms の製品ドキュメント(US)を参照してください。
-
XFDL 仕様(US)を参照してください。
-
XML Forms Architecture (XFA) 仕様バージョン 2.4 (US)を参照してください。
-
Adobe Portable Document Format バージョン 1.7(US) のドキュメントを参照してください。
製品や技術を入手するために
-
IBM Lotus Forms 3.5 の試用バージョン(US)をダウンロードできます。
-
Lotus Forms 3.0.1 用の IBM Conversion Tool(US) をダウンロードできます。
議論するために
Gu Yi は、IBM China Development Lab における IBM Software Services for Lotus (ISSL) Emerging Services Team の Lead Software Engineer です。2005 年から IBM Software Services プロジェクトに取り組み、IBM Lotus Forms を含む複数のサービス・プロジェクトに参加してきました。特に、プロジェクトを合理化し、IBM の製品化機能を高めるサービス資産の作成に重点を置いています。また、IBM WebSphere® Portal に従事した経験が 3 年あり、Java™ 2 Platform、Enterprise Edition 開発の業界で 4 年間の経験があります。連絡先は guyi@cn.ibm.com です。