> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PDF/XPS エクスポート時のエラー処理

> PDF 2.0 に準拠していないメタデータの日付が原因で発生する ABBYY FineReader Engine の PDF/XPS エクスポートエラー（FREN_E_INVALID_CREATION_DATE_FORMAT、FREN_E_INVALID_MODIFICATION_DATE_FORMAT）に対処します。

ドキュメントを PDF または XPS 形式にエクスポートする際に、次のような特定のエラーが発生することがあります。

* FREN\_E\_INVALID\_CREATION\_DATE\_FORMAT;
* FREN\_E\_INVALID\_MODIFICATION\_DATE\_FORMAT.

これらのエラーは、ドキュメントのメタデータで指定された作成日または更新日が PDF 2.0 標準に準拠していない場合に発生します。正しい日付形式は D:YYYYMMDDHHmmSSOHH'mm です。ここで、YYYY は年、MM は月、DD は日、HHmmSS は時刻、OHH'mm は協定世界時からのオフセットの絶対値を表します。

この種のエラーに対処するには、日付のエクスポート設定を変更するか、形式に合うように日付を修正します。

日付のエクスポート設定を変更するには:

1. 出力形式のエクスポートパラメーターオブジェクトから [DocumentContentInfoWritingParams](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/documentcontentinfowritingparams) サブオブジェクトを取得します。
   * PDF エクスポートの場合は、[PDFExportParams](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/pdfexportparams) オブジェクトの [PDFFeatures](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/pdfexportparams#pdffeatures) プロパティを使用して [PDFExportFeatures](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/pdfexportfeatures) オブジェクトにアクセスし、その [MetaDataWritingParams](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/pdfexportfeatures#metadatawritingparams) プロパティを使用して [DocumentContentInfoWritingParams](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/documentcontentinfowritingparams) オブジェクトを取得できます。
   * XPS エクスポートの場合は、[XPSExportParams](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/xpsexportparams) オブジェクトの [MetaDataWritingParams](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/xpsexportparams#metadatawritingparams) プロパティを使用します。
2. DocumentContentInfoWritingParams オブジェクトの [WriteCreationDate](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/documentcontentinfowritingparams#writecreationdate) プロパティと [WriteModificationDate](/ja/fine-reader/engine/api-reference/parameter-objects/export-parameters/documentcontentinfowritingparams#writemodificationdate) プロパティでは、出力ドキュメントに保存する日付を指定します。この場合、日付の保存を無効にするには WD\_No 値を使用し、現在の日付を使用するには WD\_Current 値を使用できます。
3. たとえば、[FRDocument](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument) オブジェクトの [Export](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/export-method) メソッドを使用し、設定したばかりのパラメーターオブジェクトを最後の入力パラメーターとして渡して、ドキュメントのエクスポートを再実行します。

日付を修正するには:

1. [FRDocument](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument) オブジェクトの [DocumentContentInfo](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument#documentcontentinfo) プロパティを使用して、[DocumentСontentInfo](/ja/fine-reader/engine/api-reference/document-related-objects/documentcontentinfo) オブジェクトにアクセスします。
2. DocumentСontentInfo オブジェクトの [CreationDate](/ja/fine-reader/engine/api-reference/document-related-objects/documentcontentinfo#creation_date) プロパティまたは [ModificationDate](/ja/fine-reader/engine/api-reference/document-related-objects/documentcontentinfo#modification_date) プロパティの日付を修正します。
3. FRDocument オブジェクトの [Export](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/export-method) メソッドを使用して、ドキュメントのエクスポートを再実行します。

<div id="samples">
  ## サンプル
</div>

<Note>
  このトピックで示すコードサンプルは、Windows 固有のものです。
</Note>

<Accordion title="C++ コード">
  ```cpp theme={null}
  // 作成日と更新日のエクスポートパラメーターオブジェクトを設定します
  FREngine::IPDFExportParamsPtr pdfExportParams = Engine->CreatePDFExportParams();
  pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteCreationDate ( FREngine::WD_DocumentContentInfo );
  pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteModificationDate ( FREngine::WD_DocumentContentInfo );
   
  // 作成日/更新日を修正して、ドキュメントを再度エクスポートします
  const int numberOfExportAttempts = 3;
  for (int i = 0; i < numberOfExportAttempts; i++)
  {
    try
    {
       frDocument->Export( pdfExportPath, FREngine::FEF_PDF, pdfExportParams );
    }
    catch (_com_error & e)
    {
       if (e.Error() == (int) FREngine::FREN_E_INVALID_CREATION_DATE_FORMAT) {
           frDocument->DocumentContentInfo->put_CreationDate( L"D:20181011234506Z" );
       }
       else if (e.Error() == (int) FREngine::FREN_E_INVALID_MODIFICATION_DATE_FORMAT) {
           pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteModificationDate ( FREngine::WD_Current );
       }
       else
       {
             // 元の未処理例外をそのまま再スローします
             throw;
       }
    }
  }
  ```
</Accordion>

<Accordion title="C# コード">
  ```csharp theme={null}
  // 作成日と更新日のエクスポートパラメーターを設定します
  FREngine.PDFExportParams pdfExportParams = engineLoader.Engine.CreatePDFExportParams();
  pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteCreationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
  pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
   
  // 2 種類のエクスポートエラーを処理するため、エクスポートの試行回数は最大 3 回です
  const int numberOfExportAttempts = 3;
  for (int i = 0; i < numberOfExportAttempts; ++i)
  {
      try
      {
         document.Export( "D:\\Demo.pdf", FREngine.FileExportFormatEnum.FEF_PDF, pdfExportParams );
         break;
      }
      catch (COMException error)
      {
         if (error.ErrorCode == (int)FREngine.ErrorCodes.FREN_E_INVALID_CREATION_DATE_FORMAT)
         {
             // 作成日を修正します
             document.DocumentContentInfo.CreationDate = "D:20181011234506Z";
         }
         else if (error.ErrorCode == (int)FREngine.ErrorCodes.FREN_E_INVALID_MODIFICATION_DATE_FORMAT)
         {
             // 更新日のエクスポートパラメーターを変更します
             pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_Current;
         }
         else
         {
             // 元の未処理例外をそのまま再スローします
             throw;
         }
      }
  }
  ```
</Accordion>

<div id="see-also">
  ## 関連項目
</div>

[DocumentСontentInfo](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument#documentcontentinfo)

[標準戻りコード](/ja/fine-reader/engine/api-reference/return-codes)

[エクスポート パラメーターの調整](/ja/fine-reader/engine/guided-tour/advanced-techniques/tuning-export-parameters)

[エラー処理](/ja/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/error-handling)
