機械翻訳について

RTFテンプレートのPDF分割の実装

この項では、RTFテンプレートから生成されたレポートに対してPDF分割を有効にする方法について説明します。

このセクションには、次のトピックが含まれています:

RTFテンプレートのコマンドの入力

この機能を使用するテンプレートを設計する場合は、これらの問合せを指定するコマンドを追加する必要があります。

  • データ内で繰り返される要素(単純なfor-eachコマンドを使用)

  • 各PDFファイルに要素が出現する回数

  • 索引ファイルに含める情報(データ要素)

これを実現するには、文書を分割する要素のfor-eachループ内のテンプレートに、次の2つのコマンドを入力する必要があります:

  • <?catalog-index-info:name;element_name?>

    where

    nameは、各ドキュメントに含まれるレコード:自およびレコード:至を識別するために索引ファイルで使用される、選択した名前です。

    element_nameは、上で識別する名前の値を提供する要素のXMLタグ名です。

    catalog-index-infoコマンドは、作成される索引ファイルの作成を定義します。

  • <?if:position() mod n = 0?><?document-split:?><?end if?>

    where

    nは、PDFファイルごとに含めるレコードの数です。

    このコマンドは、カウントされる要素のfor-eachループ内に配置する必要があります。 このコマンドは、レコード数がn値と等しい場合に、次の改ページの後にドキュメントを分割するように「パブリッシャ」に指示します。

    document-splitが実行されるたびに、catalog-index-infoコマンドで定義された名前と値のペアがインデックス・ファイルに書き込まれます。

例 - 各部門で分割

この例は、ここに示したXMLデータに基づいています。

この例は、次のXMLデータに基づいています:

<DATA_DS>
 <G_EMP>
  <DEPARTMENT_NAME>Sales</DEPARTMENT_NAME> 
  <FIRST_NAME>Ellen</FIRST_NAME> 
  <LAST_NAME>Abel</LAST_NAME> 
  <HIRE_DATE>1996-05-11T00:00:00.000-07:00</HIRE_DATE> 
  <SALARY>11000</SALARY> 
 </G_EMP>
 <G_EMP>
  <DEPARTMENT_NAME>Sales</DEPARTMENT_NAME> 
  <FIRST_NAME>Sundar</FIRST_NAME> 
  <LAST_NAME>Ande</LAST_NAME> 
  <HIRE_DATE>2000-03-24T00:00:00.000-08:00</HIRE_DATE> 
  <SALARY>6400</SALARY> 
 </G_EMP>
 <G_EMP>
  <DEPARTMENT_NAME>Shipping</DEPARTMENT_NAME> 
  <FIRST_NAME>Mozhe</FIRST_NAME> 
  <LAST_NAME>Atkinson</LAST_NAME> 
  <HIRE_DATE>1997-10-30T00:00:00.000-08:00</HIRE_DATE> 
  <SALARY>2800</SALARY> 
 </G_EMP>
 <G_EMP>
  <DEPARTMENT_NAME>IT</DEPARTMENT_NAME> 
  <FIRST_NAME>David</FIRST_NAME> 
  <LAST_NAME>Austin</LAST_NAME> 
  <HIRE_DATE>1997-06-25T00:00:00.000-07:00</HIRE_DATE> 
  <SALARY>4800</SALARY> 
 </G_EMP>

...
</DATA_DS>

この例では、出力PDFレポートに各従業員のドキュメントが含まれています。 部門ごとに新しいPDFファイルを生成します。 PDFファイルに含まれる各レコードのFIRST_NAMEおよびLAST_NAMEを索引にリストします。

この出力を実現するには、テンプレートに次のように入力します:

<?for-each-group:ROW;./DEPARTMENT_NAME?>
<?for-each:current-group()?>
<?catalog-index-info:'First Name';FIRST_NAME?>
<?catalog-index-info:'Last Name';LAST_NAME?>
...
<?end for-each?>
<?document-split:?>
<?end for-each-group?>