function ValidatePdfX: TPdfXValidationResult;
ValidatePdfX recorre el documento abierto buscando los marcadores de
formato de archivo definidos por la familia ISO 15930
pdfxid:GTS_PDFXVersion (y opcionalmente pdfxid:GTS_PDFXConformance para PDF/X-1a / PDF/X-3)pdfaExtension:schemas para el espacio de nombres pdfxid (convención de esquema de extensión XMP)/GTS_PDFXVersion con el mismo valor que la propiedad XMP/OutputIntents del catalog que referencia un diccionario OutputIntent con un perfil ICC incrustado mediante /DestOutputProfile/Title del diccionario Info (PDF/X la recomienda encarecidamente)/ID en el trailer y la ausencia de /Encrypt (el cifrado está prohibido por todas las versiones PDF/X)xmp:CreateDate y xmp:ModifyDate en XMP para la paridad Info / XMPThe result is a TPdfXValidationResult record:
pxc1a (coincide con "PDF/X-1"), pxc3 ("PDF/X-3"), pxc4 ("PDF/X-4"), pxcNone (sin marcador PDF/X) o pxcUnknown (marcador presente pero no reconocido)TPdfXValidationIssues con cero o más de: pvxiMissingXmpMetadata, pvxiMissingPdfXIdentifier, pvxiMissingExtensionSchema, pvxiMissingInfoVersionEntry, pvxiInfoVersionMismatch, pvxiMissingOutputIntent, pvxiMissingIccProfile, pvxiMissingTitle, pvxiMissingTrailerId, pvxiEncryptionPresent, pvxiMissingXmpDatesValidatePdfX es una inspección de solo lectura. Úsalo antes de introducir una
carga útil PDF/X en un flujo de preimpresión para mostrar la no conformidad
al operador. Para la comprobación común de "¿qué nivel PDF/X es este?" que no
necesita la lista de problemas, prefiere la propiedad PdfXConformance, más ligera
ValidatePdfX es solo a nivel de formato de archivo — no impone reglas de PDF/X a nivel de contenido (completitud de incrustación de fuentes, reglas de transparencia para PDF/X-1a / PDF/X-3, prohibiciones de OPI / Reference XObjects / PostScript XObjects / JavaScript / anotaciones visibles, recomendaciones de TrimBox / BleedBox, anotaciones TrapNet, etc.). Para una validación completa combínalo con una herramienta de preflight como callas pdfaPilot o la Ghent PDF Workgroup Output SuitepvxiInfoVersionMismatch solo cuando tanto Info /GTS_PDFXVersion como XMP pdfxid:GTS_PDFXVersion están presentes y discrepanValidatePdfX sobre un documento inactivo devuelve un registro con Conformance = pxcUnknown y un conjunto Issues vacíopxcUnknown
uses System.TypInfo;
var
Outcome: TPdfXValidationResult;
Issue: TPdfXValidationIssue;
begin
Pdf1.FileName := 'C:\Incoming\ad.pdf';
Pdf1.Active := True;
Outcome := Pdf1.ValidatePdfX;
Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfXConformance),
Ord(Outcome.Conformance)));
for Issue in Outcome.Issues do
Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfXValidationIssue), Ord(Issue)));
end;