メインコンテンツへスキップ
ドキュメントを 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 サブオブジェクトを取得します。
  2. DocumentContentInfoWritingParams オブジェクトの WriteCreationDate プロパティと WriteModificationDate プロパティでは、出力ドキュメントに保存する日付を指定します。この場合、日付の保存を無効にするには WD_No 値を使用し、現在の日付を使用するには WD_Current 値を使用できます。
  3. たとえば、FRDocument オブジェクトの Export メソッドを使用し、設定したばかりのパラメーターオブジェクトを最後の入力パラメーターとして渡して、ドキュメントのエクスポートを再実行します。
日付を修正するには:
  1. FRDocument オブジェクトの DocumentContentInfo プロパティを使用して、DocumentСontentInfo オブジェクトにアクセスします。
  2. DocumentСontentInfo オブジェクトの CreationDate プロパティまたは ModificationDate プロパティの日付を修正します。
  3. FRDocument オブジェクトの Export メソッドを使用して、ドキュメントのエクスポートを再実行します。

サンプル

このトピックで示すコードサンプルは、Windows 固有のものです。
// 作成日と更新日のエクスポートパラメーターオブジェクトを設定します
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;
     }
  }
}
// 作成日と更新日のエクスポートパラメーターを設定します
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;
       }
    }
}

関連項目

DocumentСontentInfo 標準戻りコード エクスポート パラメーターの調整 エラー処理