Saltar al contenido principal
Al exportar un documento a formato PDF o XPS, puede encontrarse con algunos errores específicos:
  • FREN_E_INVALID_CREATION_DATE_FORMAT;
  • FREN_E_INVALID_MODIFICATION_DATE_FORMAT.
Estos aparecen si la fecha de creación o de modificación especificada en los metadatos del documento no cumple con el estándar PDF 2.0. El formato de fecha correcto es D:YYYYMMDDHHmmSSOHH’mm, donde YYYY — el año, MM — el mes, DD — el día, HHmmSS — la hora, OHH’mm — el valor absoluto del desfase con respecto al Tiempo Universal. Para gestionar errores de este tipo, puede cambiar la configuración de exportación de fechas o corregir la fecha para que se ajuste al formato. Para cambiar la configuración de exportación de fechas:
  1. Obtenga el subobjeto DocumentContentInfoWritingParams del objeto de parámetros de exportación correspondiente a su formato de salida:
  2. Las propiedades WriteCreationDate y WriteModificationDate del objeto DocumentContentInfoWritingParams especifican qué fechas deben guardarse en el documento de salida. En este caso, puede usar el valor WD_No para deshabilitar el guardado de fechas y el valor WD_Current para usar la fecha actual.
  3. Vuelva a iniciar la exportación del documento usando, por ejemplo, el método Export del objeto FRDocument, pasando como último parámetro de entrada el objeto de parámetros que acaba de configurar.
Para corregir la fecha:
  1. Acceda al objeto DocumentСontentInfo usando la propiedad DocumentContentInfo del objeto FRDocument.
  2. Cambie la fecha en la propiedad CreationDate o ModificationDate del objeto DocumentСontentInfo.
  3. Vuelva a iniciar la exportación del documento con el método Export del objeto FRDocument.

Ejemplos

Los ejemplos de código proporcionados en este tema son específicos de Windows.
// Configure el objeto de parámetros de exportación para las fechas de creación y modificación
FREngine::IPDFExportParamsPtr pdfExportParams = Engine->CreatePDFExportParams();
pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteCreationDate ( FREngine::WD_DocumentContentInfo );
pdfExportParams->PDFFeatures->MetaDataWritingParams->put_WriteModificationDate ( FREngine::WD_DocumentContentInfo );
 
// Corrija la fecha de creación o modificación y vuelva a exportar el 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
     {
           // Restaure la excepción no controlada original y propáguela
           throw;
     }
  }
}
// Configure los parámetros de exportación para las fechas de creación y modificación
FREngine.PDFExportParams pdfExportParams = engineLoader.Engine.CreatePDFExportParams();
pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteCreationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_DocumentContentInfo;
 
// Gestione dos tipos de errores de exportación, por lo que no debería haber más de 3 intentos de exportación
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)
       {
           // Corrija la fecha de creación
           document.DocumentContentInfo.CreationDate = "D:20181011234506Z";
       }
       else if (error.ErrorCode == (int)FREngine.ErrorCodes.FREN_E_INVALID_MODIFICATION_DATE_FORMAT)
       {
           // Cambie los parámetros de exportación de la fecha de modificación
           pdfExportParams.PDFFeatures.MetaDataWritingParams.WriteModificationDate = FREngine.WriteDateEnum.WD_Current;
       }
       else
       {
           // Restaure la excepción no controlada original y propáguela
           throw;
       }
    }
}

Consulte también

DocumentСontentInfo Códigos de retorno estándar Ajuste de los parámetros de exportación Gestión de errores