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:
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.
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.
Die in diesem Thema bereitgestellten Codebeispiele sind Windows-spezifisch.
C++-Code
// Das Exportparameterobjekt für das Erstellungs- und Änderungsdatum festlegenFREngine::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 exportierenconst 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; } }}
C#-Code
// Die Exportparameter für das Erstellungs- und Änderungsdatum festlegenFREngine.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 erforderlichconst 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; } }}