Zum Hauptinhalt springen
Wenn Sie ein Dokument in das PDF- oder XPS-Format exportieren, können bestimmte Fehler auftreten:
  • FREN_E_INVALID_CREATION_DATE_FORMAT;
  • FREN_E_INVALID_MODIFICATION_DATE_FORMAT.
Diese Fehler treten auf, wenn das in den Dokumentmetadaten angegebene Erstellungs- oder Änderungsdatum nicht dem PDF-2.0-Standard entspricht. Das korrekte Datumsformat lautet D:YYYYMMDDHHmmSSOHH’mm, wobei YYYY — das Jahr, MM — der Monat, DD — das Datum, HHmmSS — die Uhrzeit und OHH’mm — der Absolutwert der Abweichung von der Weltzeit ist. Um Fehler dieses Typs zu beheben, können Sie entweder die Einstellungen für den Datumsexport ändern oder das Datum so korrigieren, dass es dem erforderlichen Format entspricht. So ändern Sie die Einstellungen für den Datumsexport:
  1. Rufen Sie das Unterobjekt DocumentContentInfoWritingParams des Exportparameterobjekts für Ihr Ausgabeformat ab:
  2. Die Eigenschaften WriteCreationDate und WriteModificationDate des Objekts DocumentContentInfoWritingParams geben an, welche Datumsangaben im Ausgabedokument gespeichert werden sollen. In diesem Fall können Sie den Wert WD_No verwenden, um das Speichern von Datumsangaben zu deaktivieren, und den Wert WD_Current, um das aktuelle Datum zu verwenden.
  3. Starten Sie den Dokumentexport erneut, indem Sie zum Beispiel die Methode Export des Objekts FRDocument verwenden und das soeben konfigurierte Parameterobjekt als letzten Eingabeparameter übergeben.
So korrigieren Sie das Datum:
  1. Greifen Sie mithilfe der Eigenschaft DocumentContentInfo des Objekts FRDocument auf das Objekt DocumentСontentInfo zu.
  2. Ändern Sie das Datum in der Eigenschaft CreationDate oder ModificationDate des Objekts DocumentСontentInfo.
  3. Starten Sie den Dokumentexport erneut mit der Methode Export des Objekts FRDocument.

Beispiele

Die in diesem Thema bereitgestellten Codebeispiele sind Windows-spezifisch.
// Das Exportparameterobjekt für das Erstellungs- und Änderungsdatum festlegen
FREngine::IPDFExportParamsPtr pdfExportParams = Engine->CreatePDFExportParams();
pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteCreationDate ( FREngine::WD_DocumentContentInfo );
pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteModificationDate ( FREngine::WD_DocumentContentInfo );
 
// Erstellungs-/Änderungsdatum korrigieren und das Dokument erneut exportieren
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
     {
           // Die ursprüngliche unbehandelte Ausnahme wieder auslösen und weitergeben
           throw;
     }
  }
}
// Die Exportparameter für das Erstellungs- und Änderungsdatum festlegen
FREngine.PDFExportParams pdfExportParams = engineLoader.Engine.CreatePDFExportParams();
pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteCreationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
 
// Zwei Arten von Exportfehlern behandeln, daher sind nicht mehr als 3 Exportversuche erforderlich
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)
       {
           // Das Erstellungsdatum korrigieren
           document.DocumentContentInfo.CreationDate = "D:20181011234506Z";
       }
       else if (error.ErrorCode == (int)FREngine.ErrorCodes.FREN_E_INVALID_MODIFICATION_DATE_FORMAT)
       {
           // Die Exportparameter für das Änderungsdatum ändern
           pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_Current;
       }
       else
       {
           // Die ursprüngliche unbehandelte Ausnahme wieder auslösen und weitergeben
           throw;
       }
    }
}

Siehe auch

DocumentСontentInfo Standardrückgabecodes Exportparameter anpassen Fehlerbehandlung