Vai al contenuto principale
Quando si esporta un documento in formato PDF o XPS, è possibile che si verifichino alcuni errori specifici:
  • FREN_E_INVALID_CREATION_DATE_FORMAT;
  • FREN_E_INVALID_MODIFICATION_DATE_FORMAT.
Questi errori si verificano se la data di creazione o di modifica specificata nei metadati del documento non è conforme allo standard PDF 2.0. Il formato corretto della data è D:YYYYMMDDHHmmSSOHH’mm, dove YYYY — l’anno, MM — il mese, DD — la data, HHmmSS — l’ora, OHH’mm — il valore assoluto dello scostamento dal Tempo Universale. Per gestire errori di questo tipo, è possibile modificare le impostazioni di esportazione della data oppure correggere la data in modo che rispetti questo formato. Per modificare le impostazioni di esportazione della data:
  1. Ottenere il sotto-oggetto DocumentContentInfoWritingParams dell’oggetto dei parametri di esportazione per il formato di output:
  2. Le proprietà WriteCreationDate e WriteModificationDate dell’oggetto DocumentContentInfoWritingParams specificano quali date devono essere salvate nel documento di output. In questo caso, è possibile usare il valore WD_No per disabilitare il salvataggio della data e il valore WD_Current per usare la data corrente.
  3. Riavviare l’esportazione del documento usando, ad esempio, il metodo Export dell’oggetto FRDocument, passando come ultimo parametro di input l’oggetto dei parametri appena configurato.
Per correggere la data:
  1. Accedere all’oggetto DocumentСontentInfo usando la proprietà DocumentContentInfo dell’oggetto FRDocument.
  2. Modificare la data nella proprietà CreationDate o ModificationDate dell’oggetto DocumentСontentInfo.
  3. Riavviare l’esportazione del documento con il metodo Export dell’oggetto FRDocument.

Esempi

Gli esempi di codice forniti in questo argomento sono specifici per Windows.
// Imposta l'oggetto dei parametri di esportazione per le date di creazione e modifica
FREngine::IPDFExportParamsPtr pdfExportParams = Engine->CreatePDFExportParams();
pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteCreationDate ( FREngine::WD_DocumentContentInfo );
pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteModificationDate ( FREngine::WD_DocumentContentInfo );
 
// Corregge la data di creazione/modifica ed esporta di nuovo il documento
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
     {
           // Ripristina l'eccezione originale non gestita e la propaga
           throw;
     }
  }
}
// Imposta i parametri di esportazione per le date di creazione e modifica
FREngine.PDFExportParams pdfExportParams = engineLoader.Engine.CreatePDFExportParams();
pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteCreationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
 
// Gestisce due tipi di errori di esportazione, quindi non saranno necessari più di 3 tentativi
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)
       {
           // Corregge la data di creazione
           document.DocumentContentInfo.CreationDate = "D:20181011234506Z";
       }
       else if (error.ErrorCode == (int)FREngine.ErrorCodes.FREN_E_INVALID_MODIFICATION_DATE_FORMAT)
       {
           // Modifica i parametri di esportazione della data di modifica
           pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_Current;
       }
       else
       {
           // Ripristina l'eccezione originale non gestita e la propaga
           throw;
       }
    }
}

Vedi anche

DocumentСontentInfo Codici di ritorno standard Ottimizzazione dei parametri di esportazione Gestione degli errori