PDFium Delphi Component Docs

SaveAsPdfX Methode

Komponente: TPdf  ·  Unit: PDFium
Speichert einen PDF/X-Kandidaten mit Identifikationsmetadaten und einem eingebetteten Output-Profil für die gewählte ISO-15930-Variante

Syntax

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

Description

SaveAsPdfX führt zuerst das normale SaveAs aus und legt dann ein inkrementelles Update über die gespeicherten Bytes - für die gewählte PDF/X-Druckaustausch-Variante. Die Nachbearbeitung fügt fünf Klassen von Bytes in den gespeicherten Stream ein:

Der Trailer wird neu geschrieben, um ein /ID-Array zu ergänzen. Bis zum Ende der ursprünglichen PDF bleibt die Ausgabe byte-identisch mit dem Basis-SaveAs-Ergebnis; nur das inkrementelle Update wird angehängt. Die beiden Overloads unterscheiden sich nur darin, wie die Konfiguration übergeben wird: Die Variante mit alleinigem Dateinamen nutzt TPdfXSaveOptions.Default (PDF/X-4 + sRGB + /Trapped /False) und befüllt die Info-/DocumentId-Felder automatisch aus FPDF_GetMetaText und FPDF_GetFileIdentifier

Liefert True zurück, nachdem die vorbereiteten Bytes geschrieben wurden, und False, wenn das Dokument inaktiv ist oder das Basis-Speichern fehlschlägt Eine erfolgreiche Serialisierung begründet noch keine vollständige PDF/X-Konformität

Für pxc1a muss IccProfileData ein strukturell gültiges ICC-v2-Output-Profil mit Device-Klasse prtr, Datenfarbraum CMYK, einem Lab- oder XYZ-PCS und den erforderlichen bidirektionalen LUTs enthalten Fehlende, RGB-, abgeschnittene, falsch klassifizierte oder nicht unterstützte Profildaten lösen EArgumentException aus; für PDF/X-1a gibt es keinen sRGB-Fallback

Bei PDF/X-1a werden OutputCondition-, OutputConditionIdentifier- und OutputIntentInfo-Werte, die noch dem eingebauten Standard sRGB IEC61966-2.1 entsprechen, durch die geprüfte Profilbeschreibung ersetzt Hat das Profil keine Beschreibung, geben Sie einen nicht leeren, nicht standardmäßigen OutputConditionIdentifier an; er liefert das Ersatz-Label, sonst löst der Aufruf EArgumentException aus Explizite Labels des Aufrufers bleiben erhalten

Serialisierung und diese Profilprüfungen laufen in einem temporären Save-Store ab, bevor die Zieldatei zum Schreiben geöffnet wird Ein vorhandenes Ziel bleibt daher unverändert, wenn die Profilvalidierung eine Exception auslöst oder das Basis-Speichern fehlschlägt Das ist keine Garantie für atomaren Dateiersatz: Ein I/O-Fehler nach dem Öffnen des Ziels kann eine Teilausgabe hinterlassen

Remarks

Example

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

// PDF/X-1a with a custom CMYK ICC profile (e.g. 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