PDFium Delphi Component Docs

SaveAsPdfX Método

Componente: TPdf  ·  Unidad: PDFium
Guarda un candidato PDF/X con metadatos de identificación y un perfil de salida incrustado para la variante ISO 15930 seleccionada

Syntax

function SaveAsPdfX(const FileName: string): Boolean; overload;
function SaveAsPdfX(const FileName: string; const Options: TPdfXSaveOptions): Boolean; overload;

Description

SaveAsPdfX realiza primero el SaveAs normal, y luego coloca una actualización incremental sobre los bytes guardados para la variante PDF/X de intercambio de impresión seleccionada. El posprocesamiento inyecta cinco clases de bytes en el flujo guardado:

El trailer se reescribe para añadir una matriz /ID. La salida permanece byte-idéntica al resultado base de SaveAs hasta el final del PDF original; solo se anexa la actualización incremental. Las dos sobrecargas difieren solo en cómo se pasa la configuración: la forma solo de nombre de archivo usa TPdfXSaveOptions.Default (PDF/X-4 + sRGB + /Trapped /False) con autorrelleno de los campos Info / DocumentId desde FPDF_GetMetaText y FPDF_GetFileIdentifier

Devuelve True tras escribir los bytes preparados, o False si el documento está inactivo o el guardado base falla. Una serialización con éxito no establece la conformidad PDF/X completa

Para pxc1a, IccProfileData debe contener un perfil de salida ICC v2 estructuralmente válido con clase de dispositivo prtr, espacio de color de datos CMYK, un PCS Lab o XYZ y las LUT bidireccionales requeridas. Los datos de perfil ausentes, RGB, truncados, clasificados incorrectamente o no soportados lanzan EArgumentException; no existe una alternativa sRGB para PDF/X-1a

Para PDF/X-1a, los valores de OutputCondition, OutputConditionIdentifier y OutputIntentInfo que sigan siendo el valor predeterminado integrado sRGB IEC61966-2.1 se sustituyen por la descripción del perfil comprobado. Si el perfil no tiene descripción, suministre un OutputConditionIdentifier no vacío y no predeterminado; aporta la etiqueta de sustitución, o la llamada lanza EArgumentException. Las etiquetas explícitas del llamador se conservan

La serialización y estas comprobaciones de perfil terminan en un almacén de guardado temporal antes de que el archivo de destino se abra para escritura. Un destino existente permanece por tanto sin cambios si la validación del perfil lanza una excepción o el guardado base falla. Esto no es una garantía de sustitución atómica del archivo: un fallo de E/S después de abrir el destino puede dejar salida parcial

Remarks

Example

// PDF/X-4 simple con OutputIntent sRGB incluido
if Pdf1.SaveAsPdfX('C:\AdProof.pdfx.pdf') then
  ShowMessage('Saved PDF/X-4');

// PDF/X-1a con un perfil ICC CMYK personalizado (p. ej. FOGRA39)
var
  Opts: TPdfXSaveOptions;
begin
  Opts := TPdfXSaveOptions.Default;
  Opts.Conformance := pxc1a;
  Opts.IccProfileData := TFile.ReadAllBytes('C:\ICC\FOGRA39.icc');
  Opts.OutputCondition := 'Coated FOGRA39 (ISO 12647-2:2004)';
  Opts.OutputConditionIdentifier:= 'FOGRA39';
  Opts.RegistryName := 'http://www.color.org';
  Opts.Trapped := ptFalse;
  Pdf1.SaveAsPdfX('C:\AdProof.cmyk.pdfx.pdf', Opts);
end;

See Also

SaveAsPdfXToStream, ValidatePdfX, PdfXConformance, SaveAsPdfA, SaveAsPdfE