Passer au contenu principal
Lors de l’export d’un document au format PDF ou XPS, vous pouvez rencontrer certaines erreurs spécifiques :
  • FREN_E_INVALID_CREATION_DATE_FORMAT ;
  • FREN_E_INVALID_MODIFICATION_DATE_FORMAT.
Ces erreurs surviennent si la date de création ou de modification spécifiée dans les métadonnées du document n’est pas conforme à la norme PDF 2.0. Le format de date correct est D:YYYYMMDDHHmmSSOHH’mm, où YYYY correspond à l’année, MM au mois, DD au jour, HHmmSS à l’heure, et OHH’mm à la valeur absolue du décalage par rapport au Temps Universel. Pour gérer les erreurs de ce type, vous pouvez soit modifier les paramètres d’export de la date, soit corriger la date pour qu’elle soit conforme au format requis. Pour modifier les paramètres d’export de la date :
  1. Récupérez le sous-objet DocumentContentInfoWritingParams de l’objet de paramètres d’export correspondant à votre format de sortie :
  2. Les propriétés WriteCreationDate et WriteModificationDate de l’objet DocumentContentInfoWritingParams déterminent quelles dates doivent être enregistrées dans le document de sortie. Vous pouvez utiliser la valeur WD_No pour désactiver l’enregistrement des dates et la valeur WD_Current pour utiliser la date actuelle.
  3. Relancez l’export du document en utilisant, par exemple, la méthode Export de l’objet FRDocument, en passant l’objet de paramètres que vous venez de configurer comme dernier paramètre d’entrée.
Pour corriger la date :
  1. Accédez à l’objet DocumentСontentInfo via la propriété DocumentContentInfo de l’objet FRDocument.
  2. Modifiez la date dans la propriété CreationDate ou ModificationDate de l’objet DocumentСontentInfo.
  3. Relancez l’export du document avec la méthode Export de l’objet FRDocument.

Exemples

Les exemples de code fournis dans cette rubrique sont spécifiques à Windows.
// Définir l'objet des paramètres d'export des dates de création et de modification
FREngine::IPDFExportParamsPtr pdfExportParams = Engine->CreatePDFExportParams();
pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteCreationDate ( FREngine::WD_DocumentContentInfo );
pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteModificationDate ( FREngine::WD_DocumentContentInfo );
 
// Corriger la date de création/modification et réexporter le document
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
     {
           // Restaurer l'exception d'origine non gérée et la relancer
           throw;
     }
  }
}
// Définir les paramètres d'export des dates de création et de modification
FREngine.PDFExportParams pdfExportParams = engineLoader.Engine.CreatePDFExportParams();
pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteCreationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
 
// Gérer deux types d'erreurs d'export ; il ne doit donc pas y avoir plus de 3 tentatives d'export
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)
       {
           // Corriger la date de création
           document.DocumentContentInfo.CreationDate = "D:20181011234506Z";
       }
       else if (error.ErrorCode == (int)FREngine.ErrorCodes.FREN_E_INVALID_MODIFICATION_DATE_FORMAT)
       {
           // Modifier les paramètres d'export de la date de modification
           pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_Current;
       }
       else
       {
           // Restaurer l'exception d'origine non gérée et la relancer
           throw;
       }
    }
}

Voir aussi

DocumentСontentInfo Codes de retour standard Réglage des paramètres d’export Gestion des erreurs