バーコードフォームの操作

バーコードフォームサービスについて

バーコードフォームサービスは、入力および印刷フォームからのデータのキャプチャを自動化し、取り込んだ情報を組織の主要なITシステムに統合します。

バーコードフォームサービスを使用すると、1次元および2次元のバーコードをインタラクティブPDF formsに追加できます。 その後、バーコードフォームをWebサイトに公開したり、電子メールまたはCDで配布したりできます。 ユーザーがAdobe Reader、Acrobat Professional、Acrobat Standardを使用してバーコードフォームに入力すると、ユーザーが指定したフォームデータがエンコードされるようにバーコードが自動的に更新されます。 ユーザーは、フォームを電子的に送信したり、紙に印刷してメール、ファックス、または手渡しで送信したりできます。 後で、ユーザーが提供したデータを自動ワークフローの一部として抽出し、承認プロセスやビジネスシステム間でデータをルーティングできます。

バーコードフォームサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

バーコードフォームデータのデコード

バーコードフォームサービスAPIを使用して、PDFフォームまたはバーコードを含む画像からデータをデコードできます。 フォームデータのデコードとは、バーコード内のデータを抽出することです。 PDFフォーム(または画像)からデータをデコードするには、ユーザーがフォームにデータを入力する必要があります。

メモ

バーコードフォームサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

PDFフォームからデータをデコードするには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. バーコードフォームクライアントAPIオブジェクトを作成します。
  3. バーコードデータを含むPDFフォームを取得します。
  4. PDFフォームからデータをデコードします。
  5. データをXMLデータソースに変換します。
  6. デコードされたデータを処理します。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、プロキシファイルを必ず含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-barcodedforms-client.jar
  • adobe-utilities.jar(AEM FormsがJBossにデプロイされている場合に必須)
  • jbossall-client.jar(AEM FormsがJBossにデプロイされている場合に必須)
  • xercesImpl.jar(<install directory>/directory/Adobe/Experience_Manager_forms/sdk/client-libs\thirdpartyにあります)

AEM FormsがJBOSS以外のサポート対象のJ2EEアプリケーションサーバーにデプロイされている場合は、adobe-utilities.jarとjbossall-client.jarを、AEM FormsがデプロイされているJ2EEアプリケーションサーバーに固有のJARファイルに置き換える必要があります。 すべてのAEM Forms JARファイルの場所について詳しくは、「AEM Forms Javaライブラリファイルを含める」を参照してください。

バーコードフォームクライアントAPIオブジェクトの作成

プログラムによってバーコードフォームサービス操作を実行する前に、Barcoded Formsサービスクライアントを作成する必要があります。 Java APIを使用している場合は、BarcodedFormsServiceClientオブジェクトを作成します。 バーコードフォームWebサービスAPIを使用している場合は、BarcodedFormsServiceServiceオブジェクトを作成します。

バーコードデータを含むPDFフォームの取得

ユーザーデータが入力されたバーコードを含むPDFフォームを取得する必要があります。

PDFフォームからのデータのデコード

バーコードを含むPDFフォーム(または画像)を取得したら、データをデコードできます。 Barcoded Formsサービスは、次の種類のバーコードをサポートします。

  • PDF417バーコード。
  • データ・マトリックス・バーコード。
  • QRコードバーコード。
  • コダバールバーコード。
  • Code 128バーコード。
  • Code 39バーコード。
  • EAN-13バーコード。
  • EAN-8バーコード。

デコードAPIで16進数で入力された文字セットは、バーコードのコンテンツが16進文字列としてエンコードされることを意味します。 例えば、フォームで文字エンコーディングにUTF-8を指定し、デコード操作でHexを指定した場合、バーコードのコンテンツはデコード出力のxb:content要素で16進文字列としてエンコードされます。 クライアントアプリケーションでアプリケーションロジックを作成することで、この16進数値を変換して元のコンテンツを取得できます。

データをXMLデータソースに変換する

フォームデータをデコードした後、XDPまたはXFDFデータに変換できます。 例えば、データを別のフォームに読み込むとします。 データをXFAフォームに読み込むには、データをXDPデータに変換する必要があります。 詳しくは、「フォームデータの読み込み」を参照してください。

デコードされたデータを処理する

変換後のデータは、ビジネス要件に合わせて処理できます。 例えば、データをデコードして変換した後に、ファイルに保存し、エンタープライズデータベースに保存し、別のフォームに入力するなどをおこなうことができます。 この節では、変換後のデータをXMLファイルとして保存する方法について説明します。

メモ

行区切り文字とフィールド区切り文字のパラメーターが同じ値の場合、バーコードフォームサービスはバーコードデータのデコードに失敗します

関連トピック

Java APIを使用したバーコードフォームデータのデコード

WebサービスAPIを使用したバーコードフォームデータのデコード

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

Java APIを使用してバーコードフォームデータをデコードする

Barcoded Forms API(Java)を使用してフォームデータをデコードします。

  1. プロジェクトファイルを含める

    クライアントJARファイルをJavaプロジェクトのクラスパスに含めます。

  2. バーコードフォームクライアントAPIオブジェクトの作成

    コンストラクターを使用し、接続プロパティを含むServiceClientFactoryオブジェクトを渡して、BarcodedFormsServiceClientオブジェクトを作成します。

  3. バーコードデータを含むPDFフォームの取得

    • コンストラクターを使用してPDFドキュメントの場所を指定する文字列値を渡すことで、バーコードデータを含むPDFフォームを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. PDFフォームからのデータのデコード

    BarcodedFormsServiceClientオブジェクトのdecodeメソッドを呼び出し、次の値を渡してフォームデータをデコードします。

    • PDFフォームを含むcom.adobe.idp.Documentオブジェクト。
    • PDF417バーコードをデコードするかどうかを指定するjava.lang.Booleanオブジェクト。
    • データマトリックスバーコードをデコードするかどうかを指定するjava.lang.Booleanオブジェクト。
    • QRコードバーコードをデコードするかどうかを指定するjava.lang.Booleanオブジェクト。
    • コーダバーコードをデコードするかどうかを指定するjava.lang.Booleanオブジェクト。
    • コード128バーコードをデコードするかどうかを指定するjava.lang.Booleanオブジェクト。
    • コード39バーコードをデコードするかどうかを指定するjava.lang.Booleanオブジェクト。
    • EAN-13バーコードをデコードするかどうかを指定するjava.lang.Booleanオブジェクト。
    • EAN-8バーコードをデコードするかどうかを指定するjava.lang.Booleanオブジェクト。
    • バーコードで使用される文字セットエンコーディング値を指定するcom.adobe.livecycle.barcodedforms.CharSet列挙値。

    decodeメソッドは、デコードされたフォームデータを含むorg.w3c.dom.Documentオブジェクトを返します。

  5. データをXMLデータソースに変換する

    BarcodedFormsServiceClientオブジェクトのextractToXMLメソッドを呼び出し、次の値を渡して、デコードされたデータをXDPまたはXFDFデータに変換します。

    • デコードされたデータを格納するorg.w3c.dom.Documentオブジェクト(decodeメソッドの戻り値を使用するようにしてください)。
    • 行の区切り文字を指定するcom.adobe.livecycle.barcodedforms.Delimiter列挙値。 Delimiter.Carriage_Returnを指定することをお勧めします。
    • フィールド区切り文字を指定するcom.adobe.livecycle.barcodedforms.Delimiter列挙値。 例えば、Delimiter.Tabと指定します。
    • バーコードデータをXDPまたはXFDF XMLデータに変換するかどうかを指定するcom.adobe.livecycle.barcodedforms.XMLFormat列挙値。 例えば、XMLFormat.XDPと指定してデータをXDPデータに変換します。
    メモ

    行区切り文字とフィールド区切り文字のパラメーターに同じ値を指定しないでください。

    extractToXMLメソッドはjava.util.Listオブジェクトを返します。各要素はorg.w3c.dom.Documentオブジェクトです。 フォーム上にあるバーコードごとに別々の要素があります。 つまり、フォームに4つのバーコードがある場合、返されるjava.util.Listオブジェクトに4つの要素があります。

  6. デコードされたデータを処理する

    • java.util.Listオブジェクトを繰り返し処理して、リスト内の各org.w3c.dom.Documentオブジェクトを取得します。
    • リスト内の各要素について、org.w3c.dom.Documentオブジェクトをcom.adobe.idp.Documentオブジェクトに変換します。 (Java APIの例を使用したバーコード化されたフォームデータのデコードでは、 org.w3c.dom.Documentオブジェクトをcom.adobe.idp.Documentオブジェクトに変換するアプリケーションロジックを示しています)。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileを呼び出し、そのXMLファイルを表すFileオブジェクトを渡すことにより、XMLデータをXMLファイルとして保存します。

関連トピック

クイックスタート(SOAPモード):Java APIを使用したバーコードされたフォームデータのデコード

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用してバーコードされたフォームデータをデコードします

バーコードフォームAPI(Webサービス)を使用してフォームデータをデコードする:

  1. プロジェクトファイルを含める

    • Barcoded FormsサービスWSDLを使用するMicrosoft .NETクライアントアセンブリを作成します。 詳しくは、 Base64エンコーディングを使用したAEM Formsの呼び出しを参照してください。
    • Microsoft .NETクライアントアセンブリを参照します。 詳しくは、Base64エンコーディングを使用したAEM Formsの呼び出しの「.NETクライアントアセンブリの参照」を参照してください。
  2. バーコードフォームクライアントAPIオブジェクトの作成

    バーコードフォームサービスのWSDLを使用するMicrosoft .NETクライアントアセンブリを使用して、デフォルトのコンストラクタを呼び出してBarcodedFormsServiceServiceオブジェクトを作成します。

  3. バーコードデータを含むPDFフォームの取得

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、バーコードを含むPDFドキュメントを保存するために使用されます。
    • コンストラクターを呼び出し、PDFドキュメントのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを判断できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことによって、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトのbinaryDataプロパティにバイト配列の内容を割り当てて、オブジェクトを設定します。
  4. PDFフォームからのデータのデコード

    BarcodedFormsServiceServiceオブジェクトのdecodeメソッドを呼び出し、次の値を渡してフォームデータをデコードします。

    • PDFフォームを含むBLOBオブジェクト。
    • PDF417バーコードをデコードするかどうかを指定するBooleanオブジェクト。
    • データマトリックスバーコードをデコードするかどうかを指定するBooleanオブジェクト。
    • QRコードバーコードをデコードするかどうかを指定するBooleanオブジェクト。
    • コーダバーコードをデコードするかどうかを指定するBooleanオブジェクト。
    • コード128バーコードをデコードするかどうかを指定するBooleanオブジェクト。
    • コード39バーコードをデコードするかどうかを指定するBoleanオブジェクト。
    • EAN-13バーコードをデコードするかどうかを指定するBooleanオブジェクト。
    • EAN-8バーコードをデコードするかどうかを指定するBooleanオブジェクト。
    • バーコードで使用される文字セットエンコーディング値を指定するCharSet列挙値。

    decodeメソッドは、デコードされたフォームデータを含む文字列値を返します。

  5. データをXMLデータソースに変換する

    BarcodedFormsServiceServiceオブジェクトのextractToXMLメソッドを呼び出し、次の値を渡して、デコードされたデータをXDPまたはXFDFデータに変換します。

    • デコードされたデータを格納するstring値(decodeメソッドの戻り値を使用するようにしてください)。
    • 行の区切り文字を指定するDelimiter列挙値。 Delimiter.Carriage_Returnを指定することをお勧めします。
    • フィールド区切り文字を指定するDelimiter列挙値。 例えば、Delimiter.Tabと指定します。
    • バーコードデータをXDPまたはXFDF XMLデータに変換するかどうかを指定するXMLFormat列挙値。 例えば、XMLFormat.XDPと指定してデータをXDPデータに変換します。
    メモ

    行区切り文字とフィールド区切り文字のパラメーターに同じ値を指定しないでください。

    extractToXMLメソッドは、Object配列を返します。各要素はBLOBインスタンスです。 フォーム上にあるバーコードごとに別々の要素があります。 つまり、フォームに4つのバーコードがある場合、返されるObject配列には4つの要素が含まれます。

  6. デコードされたデータを処理する

    • コンストラクターを呼び出し、保護されたPDFドキュメントのファイルの場所を表す文字列値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • encryptPDFUsingPasswordメソッドで返されたBLOBオブジェクトのデータ内容を格納するバイト配列を作成します。 BLOBオブジェクトのbinaryDataデータメンバーの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をPDFファイルに書き込みます。

関連トピック

Base64エンコーディングを使用したAEM Formsの呼び出し

このページ