function SaveAs(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean;
| Stream | TStream value that receives the PDF data |
| Option | TSaveOption. Save option: saNone for a normal save, saIncremental for an incremental update, saNoIncremental to force a full rewrite, or saRemoveSecurity to remove security while saving |
| PdfVersion | TPdfVersion target; use pvUnknown to preserve the current version |
function SaveAs(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean;
| FileName | string. The output file path. A sibling temporary file is completed first, then atomically replaces the destination |
| Option | TSaveOption. Save option: saNone, saIncremental, saNoIncremental, or saRemoveSecurity |
| PdfVersion | TPdfVersion target; use pvUnknown to preserve the current version |
True if the document was saved successfully, or False on failureSaves the current document to a file path or a TStream
The PdfVersion parameter specifies the output PDF version;
pass pvUnknown to keep the document's existing version
The Compressed property controls stream compression. Hybrid-reference, xref-stream and object-stream inputs are preserved when a classic-xref rewrite cannot retain their complete cross-reference semantics
Explicit PDF-version checks follow the active cross-reference revision chain and active object-stream members, so stale or unreferenced object bodies do not affect the requested version gate
The file overload leaves an existing destination unchanged if compression, post-processing or version validation fails
pv13 normalizes inherited page resources, canonicalizes /ProcSet, and removes only initial transparency-state values including /BM /Normal, /SMask /None, /CA 1, /ca 1, /AIS false, and /TK truepv13 rejects active metadata streams because /Type /Metadata and XMP component metadata require PDF 1.4 or newerpv13 rejects document /EmbeddedFiles name trees while retaining older embedded-file stream references that do not use the PDF 1.4 name-tree entrypv13 rejects the document catalog /Lang entry because document-level natural-language identification requires PDF 1.4 or newerpv14 and older targets reject document catalog /PageLayout /TwoPageLeft and /TwoPageRight values because two-page layouts require PDF 1.5 or newerpv14 and older targets reject image XObjects with /BitsPerComponent 16 because 16-bit image components require PDF 1.5 or newerpv14 and older targets reject image XObject /SMaskInData entries because embedded JPEG 2000 soft-mask channels require PDF 1.5 or newerpv13 with saIncremental raises EPdfError because normalization cannot preserve signed prior revisionsEPdfError; callers must remove security before requesting a core-version target/ADBE developer extension with /BaseVersion /1.7 and /ExtensionLevel 1 or newer; a bare PDF 1.7 declaration is insufficientRichMediaExecute actions require an /ADBE developer extension with /BaseVersion /1.7 and /ExtensionLevel 3 or newer/Type /Measure /Subtype /GEO dictionaries and Projection annotations require an /ADBE developer extension with /BaseVersion /1.7 and /ExtensionLevel 3 or newer/Annots entry must contain the required /Subtype and /Rect entries/OCProperties validation requires array /OCGs, dictionary /D, valid default /BaseState /ON and /Intent /View values when present, and array-valued /Configs, /ON, /OFF, /AS, and /Order entries
// Save to file
Pdf.SaveAs('output.pdf');
// Save to stream
var MS: TMemoryStream;
MS := TMemoryStream.Create;
try
Pdf.SaveAs(MS);
MS.SaveToFile('output.pdf');
finally
MS.Free;
end;