ヘッダーをスキップ

Oracle XML Publisher Enterpriseユーザーズ・ガイド
リリース5.6.2
B31296-01
目次へ
目次
前のページへ
前へ
次のページへ
次へ

PDFテンプレートの作成

PDFテンプレートの概要

PDFテンプレートを作成するには、既存のPDF文書を取得してXML Publisherのマークアップを適用します。PDF文書のソースは関係ないため、PDFテンプレートの設計には多くの選択肢があります。次に例を示します。

注意: サード・パーティのPDFからテンプレートを作成する際に必要な手順は、フォーム・フィールドが文書に追加されているかどうかで異なります。詳細は、「ダウンロードしたPDFからのテンプレートの作成」を参照してください。

レイアウトを設計している場合は、レイアウトをPDFに変更すると、レイアウトが一連の背景として取り扱われることに注意してください。テンプレートをマークアップする場合は、この背景上にフィールドを描画します。レイアウトを編集するには、元の文書を編集して、それを再度PDFに変換する必要があります。

そのため、PDFテンプレートは、レイアウトを頻繁に更新する必要がある文書には不向きです。一方、請求書や発注書など、固定レイアウトのフォームには適しています。

サポートされているモード

XML Publisherでは、Adobe Acrobat 5.0(PDF仕様バージョン1.4)をサポートしています。Adobe Acrobat Professional 6.0以上を使用している場合は、「File」メニューの「Reduce File Size Option」を使用して、Adobe Acrobat 5.0互換としてファイルを保存してください。

また、XML Publisherでは、PDF変換のためにAdobe Acrobat DistillerなどのPDF変換ユーティリティをサポートしています。

レイアウトの設計

テンプレートのレイアウトを設計するには、PDFに変換可能な文書を作成できるデスクトップ・アプリケーションを使用します。あるいは、用紙に印刷された文書を取り込み、テンプレートの背景として使用します。

次に、発注書のレイアウト・サンプルを示します。このサンプルは、Microsoft Wordを使用して設計し、Adobe Acrobat Distillerを使用してPDFに変換したものです。

テキストで説明されている画像

次に、このテンプレートへの入力として使用されるXMLデータを示します。

<?xml version="1.0"?>
<POXPRPOP2>
 <G_HEADERS>
  <POH_PO_NUM>1190-1</POH_PO_NUM>
  <POH_REVISION_NUM>0</POH_REVISION_NUM>
  <POH_SHIP_ADDRESS_LINE1>3455 108th Avenue</POH_SHIP_ADDRESS_LINE1>
<POH_SHIP_ADDRESS_LINE2></POH_SHIP_ADDRESS_LINE2>
<POH_SHIP_ADDRESS_LINE3></POH_SHIP_ADDRESS_LINE3>
<POH_SHIP_ADR_INFO>Seattle, WA 98101</POH_SHIP_ADR_INFO>
<POH_SHIP_COUNTRY>United States</POH_SHIP_COUNTRY>
<POH_VENDOR_NAME>Allied Manufacturing</POH_VENDOR_NAME>
<POH_VENDOR_ADDRESS_LINE1>1145 Brokaw Road</POH_VENDOR_ADDRESS_LINE1>
<POH_VENDOR_ADR_INFO>San Jose, CA 95034</POH_VENDOR_ADR_INFO>
<POH_VENDOR_COUNTRY>United States</POH_VENDOR_COUNTRY>
<POH_BILL_ADDRESS_LINE1>90 Fifth Avenue</POH_BILL_ADDRESS_LINE1>
<POH_BILL_ADR_INFO>New York, NY 10022-3422</POH_BILL_ADR_INFO>
<POH_BILL_COUNTRY>United States</POH_BILL_COUNTRY>
<POH_BUYER>Smith, J</POH_BUYER>
<POH_PAYMENT_TERMS>45 Net (terms date + 45)</POH_PAYMENT_TERMS>
<POH_SHIP_VIA>UPS</POH_SHIP_VIA>
<POH_FREIGHT_TERMS>Due</POH_FREIGHT_TERMS>
<POH_CURRENCY_CODE>USD</POH_CURRENCY_CODE>
<POH_CURRENCY_CONVERSION_RATE></POH_CURRENCY_CONVERSION_RATE>
<LIST_G_LINES>
<G_LINES>
<POL_LINE_NUM>1</POL_LINE_NUM>
<POL_VENDOR_PRODUCT_NUM></POL_VENDOR_PRODUCT_NUM>
<POL_ITEM_DESCRIPTION>PCMCIA II Card Holder</POL_ITEM_DESCRIPTION>
<POL_QUANTITY_TO_PRINT></POL_QUANTITY_TO_PRINT>
<POL_UNIT_OF_MEASURE>Each</POL_UNIT_OF_MEASURE>
<POL_PRICE_TO_PRINT>15</POL_PRICE_TO_PRINT>
<C_FLEX_ITEM>CM16374</C_FLEX_ITEM>
<C_FLEX_ITEM_DISP>CM16374</C_FLEX_ITEM_DISP>
<PLL_QUANTITY_ORDERED>7500</PLL_QUANTITY_ORDERED>
<C_AMOUNT_PLL>112500</C_AMOUNT_PLL>
<C_AMOUNT_PLL_DISP> 112,500.00 </C_AMOUNT_PLL_DISP>
</G_LINES>
</LIST_G_LINES>
<C_AMT_POL_RELEASE_TOTAL_ROUND>312420/<C_AMT_POL_RELEASE_TOTAL_ROUND>
</G_HEADERS>
</POXPRPOP2>

テンプレート・レイアウトへのマークアップの追加

文書をPDFに変換した後は、XML入力ファイルからのデータを表示するフォーム・フィールドを定義します。これらのフォーム・フィールドはデータのプレースホルダとして機能します。

XMLデータをPDFテンプレートに関連付けるプロセスは、RTFテンプレートのプロセスと同じです。XMLデータをテンプレート・レイアウトに関連付ける方法は、「テンプレート・レイアウトへのXMLデータの関連付け」を参照してください。

Adobe Acrobatでフォーム・フィールドを描画するときは、設計したレイアウトの上にフォーム・フィールドを描画します。テンプレートの設計要素とフォーム・フィールドの間に関係はありません。したがって、テンプレート上のデータを表示する位置に、正確にフィールドを配置する必要があります。

プレースホルダの作成

プレースホルダは、データを表示する方法によって、テキスト、チェック・ボックスまたはラジオ・ボタンとして定義できます。

注意: Adobe Acrobat 5.0を使用している場合は、標準ツールバーから「Form Tool」を使用できます。Adobe Acrobat 6.0以上を使用している場合は、「Tools」メニューから「Forms Toolbar」を表示します。表示するには、「Tools」->「Advanced Editing」->「Forms」->「Show Forms Toolbar」の順に選択します。

プレースホルダ名の指定

プレースホルダ名はXMLソース・フィールド名と一致している必要があります。

テキスト・プレースホルダの作成

PDF文書にテキスト・プレースホルダを作成する手順は、次のとおりです。

Acrobat 5.0ユーザーの場合

  1. 「Acrobat」ツールバーから「Form Tool」を選択します。

  2. テンプレート上のフィールドを表示する位置に、フォーム・フィールド・ボックスを描画します。フィールドを描画すると、「Field Properties」ダイアログ・ボックスが表示されます。

  3. 「Field Properties」ダイアログ・ボックスの「Name」フィールドに、フィールドの名称を入力します。

  4. 「Type」ドロップダウン・メニューから「Text」を選択します。

    「Field Properties」ダイアログ・ボックスを使用して、そのプレースホルダのその他の属性を設定できます。たとえば、最大文字サイズの規定、フィールドのデータ型の設定、データ型の検証、表示および書式に関する属性を設定できます。

  5. 意図している正確な位置にフィールドが配置されていない場合は、正しい位置までフィールドをドラッグします。

Acrobat 6.0(またはそれ以上)ユーザーの場合

  1. 「Forms Toolbar」から「Text Field Tool」を選択します。

  2. テンプレート上のフィールドを表示する位置に、フォーム・フィールド・ボックスを描画します。フィールドを描画すると、「Text Field Properties」ダイアログ・ボックスが表示されます。

  3. 「General」タブで、プレースホルダの名称を「Name」フィールドに入力します。

    「Text Field Properties」ダイアログ・ボックスを使用して、そのプレースホルダのその他の属性を設定できます。たとえば、最大文字サイズの規定、フィールドのデータ型の設定、データ型の検証、表示および書式に関する属性を設定できます。

  4. 意図している正確な位置にフィールドが配置されていない場合は、正しい位置までフィールドをドラッグします。

サポートされているフィールド・プロパティ・オプション

XML Publisherでは、次のオプションをサポートしています。これらのオプションは「Field Properties」ダイアログ・ボックスから利用できます。これらのオプションの詳細は、Adobe Acrobatのドキュメントを参照してください。

チェック・ボックスの作成

チェック・ボックスは、複数を選択できるオプションを表示するために使用されます。各チェック・ボックスは、異なるデータ要素を表します。チェック・ボックスの表示を選択状態にする値を定義します。

たとえば、パワー・ステアリング、パワー・ウィンドウ、サンルーフ、アルミ・ホイールなどの自動車のオプションをリストするチェック・ボックスをフォームに配置したとします。これらの各オプションは、XMLファイルの異なる要素を表します。XMLファイルのこれらのフィールドに「Y」の値が含まれている場合は、チェック・ボックスが選択された状態で表示する必要があります。これらのオプションは、すべてを選択することも選択しないこともできます。

チェック・ボックス・フィールドを作成する手順は、次のとおりです。

Acrobat 5.0ユーザーの場合

  1. フォーム・フィールドを描画します。

  2. 「Field Properties」ダイアログ・ボックスで、フィールドの名称を入力します。

  3. 「Type」ドロップダウン・リストから「Check Box」を選択します。

  4. 「Options」タブを選択します。

  5. 「Export Value」フィールドに、XMLデータ・フィールドの値と一致し、チェック・ボックスを選択された状態で表示する値を入力します。

    たとえば、各チェック・ボックス・フィールドに「Y」と入力します。

Acrobat 6.0(またはそれ以上)ユーザーの場合

  1. 「Forms Toolbar」から「Check Box Tool」を選択します。

  2. チェック・ボックス・フィールドを目的の位置に描画します。

  3. 「Check Box Properties」ダイアログ・ボックスの「General」タブで、フィールドの名称を入力します。

  4. 「Options」タブを選択します。

  5. 「Export Value」フィールドに、XMLデータ・フィールドの値と一致し、チェック・ボックスを選択された状態で表示する値を入力します。

    たとえば、各チェック・ボックス・フィールドに「Y」と入力します。

ラジオ・ボタン・グループの作成

ラジオ・ボタン・グループは、1つのみを選択できるオプションを表示するために使用されます。

たとえば、XMLデータ・ファイルに<SHIPMENT_METHOD>というフィールドがあるとします。このフィールドに指定可能な値は「標準」または「夜間」です。フォームでは、このフィールドを「標準」および「夜間」というラベルが付いた2つのラジオ・ボタンで表します。両方のラジオ・ボタン・フィールドを、<SHIPMENT_METHOD>データ・フィールドのプレースホルダとして定義します。一方のフィールドは、値が「標準」の場合に選択状態になるように定義します。もう一方のフィールドは、値が「夜間」の場合に選択状態になるように定義します。

ラジオ・ボタン・グループを作成する手順は、次のとおりです。

Acrobat 5.0ユーザーの場合

  1. フォーム・フィールドを描画します。

  2. 「Field Properties」ダイアログ・ボックスで、フィールドの名称を入力します。この値を表すために定義する各ラジオ・ボタンには別の名称を指定できますが、同じXMLデータ・フィールドにマッピングする必要があります。

  3. 「Type」ドロップダウン・リストから「Radio Button」を選択します。

  4. 「Options」タブを選択します。

  5. 「Export Value」フィールドに、XMLデータ・フィールドの値と一致し、ラジオ・ボタンを選択された状態で表示する値を入力します。

    たとえば、「標準」のラベルを指定したフィールドには「標準」と入力し、「夜間」のラベルを指定したフィールドには「夜間」と入力します。

Acrobat 6.0(またはそれ以上)ユーザーの場合

  1. 「Forms Toolbar」から「Radio Button Tool」を選択します。

  2. テンプレート上の目的の位置にフォーム・フィールドを描画します。

  3. 「Radio Button Properties」ダイアログ・ボックスの「General」タブで、フィールドの名称を入力します。この値を表すために定義する各ラジオ・ボタンには別の名称を指定できますが、同じXMLデータ・フィールドにマッピングする必要があります。

  4. 「Options」タブを選択します。

  5. 「Export Value」フィールドに、XMLデータ・フィールドの値と一致し、ラジオ・ボタンを選択された状態で表示する値を入力します。

    たとえば、「標準」のラベルを指定したフィールドには「標準」と入力し、「夜間」のラベルを指定したフィールドには「夜間」と入力します。

繰返しフィールドのグループの定義

PDFテンプレートでは、繰返しフィールドが含まれているページの領域を明示的に定義します。たとえば、発注書テンプレートの場合、繰返しフィールドは品目ヘッダー行と合計フィールドの間の一定の場所に表示されます。

繰返しフィールドのグループを含む領域を定義する手順は、次のとおりです。

  1. グループを含める領域の開始位置にフォーム・フィールドを挿入します(Acrobat 6.0ユーザーは、「Text Field Tool」を選択してからフォーム・フィールドを描画します)。

  2. 「Field Properties」ウィンドウの「Name」フィールドに一意の名称を入力します。このフィールドはマッピングされません。

  3. Acrobat 5.0ユーザーの場合: 「Type」ドロップダウン・リストから「Text」を選択します。

  4. 「Field Properties」ウィンドウの「Short Description」フィールド(Acrobat 5.0)または「Tooltip」フィールド(Acrobat 6.0)で、次の構文を入力します。

    <?rep_field="BODY_START"?>

  5. グループを含める領域の最後にフォーム・フィールドを挿入することで、グループ領域の終了を定義します。

  6. 「Field Properties」ウィンドウの「Name」フィールドに一意の名称を入力します。このフィールドはマッピングされません。このフィールドに割り当てる名称は、本文開始を示すフィールドに割り当てた名称とは異なる名称を指定する必要があります。

  7. Acrobat 5.0ユーザーの場合: 「Type」ドロップダウン・リストから「Text」を選択します。

  8. 「Field Properties」ウィンドウの「Short Description」フィールド(Acrobat 5.0)または「Tooltip」フィールド(Acrobat 6.0)で、次の構文を入力します。

    <?rep_field="BODY_END"?>

繰返しフィールドのグループを定義する手順は、次のとおりです。

  1. グループの最初の要素に対するプレースホルダを挿入します。

    注意: このフィールドの配置は、BODY_STARTタグと関連して、出現ごとに繰り返す行の間隔を定義します。「繰返しフィールドの配置」を参照してください。

  2. グループの各要素に対して、次の構文を「Short Description」フィールド(Acrobat 5.0)または「Tooltip」フィールド(Acrobat 6.0)に入力します。

    <?rep_field="T1_Gn"?>

    nは、テンプレート上の項目の行番号を示します。

    たとえば、サンプル・レポートのグループは、3行にレイアウトされています。

    次の図は、「Short Description」または「Tooltip」フィールドに対する入力を示しています。

    テキストで説明されている画像

  3. (オプション)フィールドを整列します。フィールドの単一の行を正しく整列するには、Adobe Acrobatの整列機能を使用することをお薦めします。

ページ番号および改ページの追加

この項では、PDFテンプレートに次のページ機能を追加する方法について説明します。

ページ番号の追加

ページ番号を追加するには、ページ番号を表示するフィールドをテンプレートに定義して、そのフィールドに初期値を入力します。手順は次のとおりです。

  1. ページ番号を表示するテンプレート上の位置を決定します。

  2. @pagenum@と呼ばれるプレースホルダ・フィールドを作成します(「テキスト・プレースホルダの作成」を参照)。

  3. 「Default」フィールドにページ番号の開始値を入力します。XMLデータにこのフィールドの値が含まれている場合は、テンプレートに割り当てられた開始値が上書きされます。開始値が割り当てられていない場合は、1にデフォルト設定されます。

次の図は、ページ番号フィールドの「Field Properties」ダイアログを示しています。

テキストで説明されている画像

改ページの追加

テンプレートの改ページは、繰返し可能フィールドの後ろに配置されるように定義できます。特定のフィールドの後ろに改ページを挿入するには、「Field Properties」ダイアログ・ボックスの「Short Description」フィールドに(Acrobat 6.0では「Tooltip」フィールドを使用して)、次の構文を追加します。

page_break="yes"

例:

<?rep_field="T1_G3", page_break="yes"?>

次の例は、テンプレートへの改ページの挿入を示しています。XMLサンプルには、各部門の従業員の給与が含まれています。

<?xml version="1.0"?>
<! -  Generated by Oracle Reports version 6.0.8.22.0  - >
<ROOT>
  <LIST_G_DEPTNO>
    <G_DEPTNO>
      <DEPTNO>10</DEPTNO>
      <LIST_G_EMPNO>
        <G_EMPNO>
          <EMPNO>7782</EMPNO>
          <ENAME>CLARK</ENAME>
          <JOB>MANAGER</JOB>
          <SAL>2450</SAL>
        </G_EMPNO>
        <G_EMPNO>
          <EMPNO>7839</EMPNO>
          <ENAME>KING</ENAME>
          <JOB>PRESIDENT</JOB>
          <SAL>5000</SAL>
        </G_EMPNO>
        <G_EMPNO>
          <EMPNO>125</EMPNO>
          <ENAME>KANG</ENAME>
          <JOB>CLERK</JOB>
          <SAL>2000</SAL>
        </G_EMPNO>
        <G_EMPNO>
          <EMPNO>7934</EMPNO>
          <ENAME>MILLER</ENAME>
          <JOB>CLERK</JOB>
          <SAL>1300</SAL>
        </G_EMPNO>
        <G_EMPNO>
          <EMPNO>123</EMPNO>
          <ENAME>MARY</ENAME>
          <JOB>CLERK</JOB>
          <SAL>400</SAL>
        </G_EMPNO>
        <G_EMPNO>
          <EMPNO>124</EMPNO>
          <ENAME>TOM</ENAME>
          <JOB>CLERK</JOB>
          <SAL>3000</SAL>
        </G_EMPNO>
      </LIST_G_EMPNO>
      <SUMSALPERDEPTNO>9150</SUMSALPERDEPTNO>
    </G_DEPTNO>

    <G_DEPTNO>
      <DEPTNO>30</DEPTNO>
      <LIST_G_EMPNO>
        .
        .
        .

      </LIST_G_EMPNO>
      <SUMSALPERDEPTNO>9400</SUMSALPERDEPTNO>
    </G_DEPTNO>
  </LIST_G_DEPTNO>
  <SUMSALPERREPORT>29425</SUMSALPERREPORT>
</ROOT>

次のテンプレートのように、部門別に各従業員の給与情報をレポートするとします。

テキストで説明されている画像

各部門の後ろに改ページを挿入するには、SUMSALPERDEPTNOフィールドの「Short Description」(または「Tooltip」フィールド)に、次のように改ページ構文を指定します。

<?rep_field="T1_G3", page_break="yes"?>

次に、このフィールドの「Field Properties」ダイアログ・ボックスを示します。

テキストで説明されている画像

改ページを配置するためには、XMLファイルのデータを使用してフィールドを作成する必要があります。

次に、データが表示されているサンプル・レポートを示します。

テキストで説明されている画像

計算の実行

Adobe Acrobatでは、「Field Properties」ダイアログ・ボックスに計算機能が用意されています。計算された合計をレポートに表示するフィールドを作成する手順は、次のとおりです。

  1. 計算された合計を表示するテキスト・フィールドを作成します。フィールドに名称を指定します。

  2. 「Field Properties」ダイアログ・ボックスで、「Format」タブを選択します。

  3. 「Category」リストから「Number」を選択します。

  4. 「Calculate」タブを選択します。

  5. 「Value is the operation of the following fields:」の横にあるラジオ・ボタンを選択します。

  6. ドロップダウン・リストから「sum」を選択します。

  7. 「Pick...」ボタンを選択して、合計するフィールドを選択します。

完成したPDFテンプレート

次の図に、完成したPDFテンプレートを示します。

テキストで説明されている画像

実行時の動作

繰返しフィールドの配置

すでに説明したとおり、テンプレート上に作成するフィールドの配置、間隔および整列は、基礎となるフォーム・レイアウトから独立しています。実行時に、XML Publisherは、作成したフィールドの行の配置について実行される計算に従って、繰り返す各行のデータを次のように配置します。

1度目の表示

繰返しフィールドの1行目は、そのフィールドをテンプレート上に配置した位置に表示されます。

2度目の表示(単一行)

2度目に出現したグループを配置するために、XML Publisherによって、BODY_STARTタグと1度目に表示した最初のフィールドとの間隔が計算されます。2度目に出現したグループの最初のフィールドは、1度目の表示の下に、計算されたこの間隔を空けて配置されます。

2度目の表示(複数行)

1度目のグループに複数の行が含まれている場合、2度目に出現したグループは、1度目の最終行の下に、計算された間隔を空けて配置されます。

グループ内の各行間は、1度目の表示で定義された間隔が保持されます。

フィールドに対する更新可能または読取り専用の設定

テンプレートにフィールドを定義する際は、次の「Text Field Properties」サンプル・ダイアログに示すように、フィールドに対して読取り専用を選択するオプションがあります。

テキストで説明されている画像

設計時の「Read Only」チェック・ボックスの選択に関係なく、PDF処理エンジンのデフォルト動作では、出力PDFのすべてのフィールドが読取り専用に設定されます。XML Publisher構成ファイルで、次の構成プロパティを使用することで、この動作を変更できます。

最初の2つのオプションで、PDF出力のフィールドの状態を設定します。個別のフィールドの設定は、Adobe Acrobat Professionalを使用して出力内で変更できます。各フィールドが維持されるため、データは引き続き分離されていて抽出可能です。3番目のremove-pdf-fieldsオプションで、構造が水平化され、フィールドとデータの分離が保持されなくなります。

全フィールドを更新可能にする方法:

all-field-readonlyプロパティをFalseに設定します。設計時の個別のフィールド設定に関係なく、すべてのフィールドの読取り専用状態がFalseに設定されます。

全フィールドを読取り専用にする方法:

これがデフォルトの動作です。設定は必要ありません。

各フィールドの「Read Only」チェック・ボックスの選択状態を維持する方法:

出力PDFで、「Read Only」チェック・ボックスの設定を各フィールドごとに維持するには、all-fields-readonly-asisプロパティをTrueに設定します。このプロパティは、all-field-readonlyの設定より優先されます。

出力PDFから全フィールドを削除する方法:

remove-pdf-fieldsプロパティをTrueに設定します。

データのオーバーフロー

繰り返す行のデータの表示を確保するために複数のページが必要な場合は、定義されている繰返し領域を除き、各ページは同じように表示され、繰返しデータの続きが表示されます。たとえば、発注品目の行がテンプレートに定義されている領域を超えて伸びている場合、後続のページには、発注書フォームからのすべてのデータと、品目行の続きが表示されます。

ダウンロードしたPDFからのテンプレートの作成

レポート・データのテンプレートとしてオンラインで使用できる多くのPDFフォームがあります。たとえば、ある企業で、特定の行政関係の用紙を提出する必要があるとします。この場合は、ダウンロードしたPDFファイルをレポートのテンプレートとして使用し、実行時にXMLデータを提供することでレポートに記載されます。

一部のフォームにはすでにフォーム・フィールドがありますが、フィールドが定義されていないフォームもあります。ダウンロードしたPDFにフォーム・フィールドが定義されていない場合は、作成する必要があります。フォーム・フィールド・プレースホルダの挿入方法は、「テンプレート・レイアウトへのマークアップの追加」を参照してください。

ダウンロードしたPDFのテンプレートとしての使用

  1. PDFファイルをローカル・システムにダウンロードします。

  2. Adobe Acrobatでファイルを開きます。

  3. 「Text Field Tool」(Acrobat 6.0ユーザーの場合)または「Form Tool」(Acrobat 5.0ユーザーの場合)を選択します。すでに定義されているテキスト・フィールドが強調表示されます。

    次の図は、「Text Field Tool」を選択し、テキスト・フィールドが強調表示されたサンプルW-4 PDFフォーム(Acrobat 6.0)を示しています。

    テキストで説明されている画像

    既存のフォーム・フィールドを、受信したXMLファイルのデータにマップするには、XMLファイルの要素名と一致するようにフィールド名を変更する必要があります。

  4. フィールドをダブルクリックするか、フィールドを選択して右マウス・ボタンで「Properties」を選択し、テキスト・フォーム・フィールドの「Properties」ダイアログを開きます。

  5. 「Name」フィールドに、入力XMLファイルに従って要素名を入力します。

  6. データ・ファイルによって移入するフィールドすべてに対して、この手順を繰り返します。