FPdfCompress bevat de publieke streamtransformatoren die worden gebruikt nadat PDFium een document serialiseert, plus records die elke transformator configureren en zijn resultaat rapporteren
De full-rewrite-hulpjes materialiseren de actieve objectgraaf, behouden of bouwen kruisverwijzingen doelbewust opnieuw op en wijzen invoer af die niet veilig kan worden herschreven; rapportgebaseerde procedures melden fouten via Succeeded en ErrorMessage
De meeste applicaties gebruiken de overeenkomstige TPdf-save-, inspectie- of objectgraafmethoden, terwijl de unitprocedures beschikbaar blijven voor aanroepers die al serialized PDF-streams in handen hebben
TPdfTreeEditor = class
class function TryLoad(Source: TStream; Kind: TPdfTreeKind;
const RootReference: TPdfTreeObjectReference;
const Options: TPdfTreeEditOptions; out Editor: TPdfTreeEditor;
out Report: TPdfTreeValidationReport): Boolean; static;
class function Load(Source: TStream; Kind: TPdfTreeKind;
const RootReference: TPdfTreeObjectReference;
const Options: TPdfTreeEditOptions): TPdfTreeEditor; static;
function UpsertName(const Key, RawValue: AnsiString): Boolean;
function UpsertNumber(Key: Int64; const RawValue: AnsiString): Boolean;
function RemoveName(const Key: AnsiString): Boolean;
function RemoveNumber(Key: Int64): Boolean;
procedure Clear;
function Validate(out Report: TPdfTreeValidationReport): Boolean;
function BuildBalancedObjects(out Objects: TPdfTreeSerializedObjects;
out Report: TPdfTreeValidationReport): Boolean;
function SaveIncremental(Source, Dest: TStream;
out Report: TPdfTreeValidationReport): Boolean;
property Count: Integer;
property Entries[Index: Integer]: TPdfTreeEntry; default;
end;
TPdfOutlineEditor = class
class function TryLoad(Source: TStream;
const Options: TPdfOutlineEditOptions; out Editor: TPdfOutlineEditor;
out Report: TPdfOutlineValidationReport): Boolean; static;
class function Load(Source: TStream;
const Options: TPdfOutlineEditOptions): TPdfOutlineEditor; static;
function Add(ParentId, SiblingIndex: Integer; const Title: WideString;
PageNumber: Integer): Integer;
function Delete(Id: Integer): Boolean;
function Move(Id, NewParentId, SiblingIndex: Integer): Boolean;
procedure SetTitle(Id: Integer; const Title: WideString);
procedure SetStyle(Id: Integer; const Style: TPdfOutlineStyle);
procedure SetExpanded(Id: Integer; Expanded: Boolean);
procedure SetColor(Id: Integer; Red, Green, Blue: Single);
procedure ClearColor(Id: Integer);
procedure Retarget(Id, PageNumber: Integer;
const DestinationSuffix: AnsiString = '/Fit';
DestinationInAction: Boolean = False);
function ApplyPageMap(const NewPageNumbers: array of Integer;
DeleteDangling: Boolean; out Report: TPdfOutlineValidationReport): Boolean;
function Validate(out Report: TPdfOutlineValidationReport): Boolean;
function SaveIncremental(Source, Dest: TStream;
out Report: TPdfOutlineValidationReport): Boolean;
property Count: Integer;
property Items[Index: Integer]: TPdfOutlineItem; default;
end;
TPdfCrossDocumentGraftMap = class
constructor Create(const SourceIdentity: AnsiString);
procedure Clear;
function TryResolve(const Source: TPdfGraftObjectReference;
out Destination: TPdfGraftObjectReference): Boolean;
procedure Add(const Source, Destination: TPdfGraftObjectReference);
property Count: Integer;
property Entries[Index: Integer]: TPdfGraftMapEntry; default;
property SourceIdentity: AnsiString;
end;
TPdfSparseDictionaryReader = class
constructor Create(Source: TStream);
function ReadDictionary(ObjectNumber, Generation: Integer;
out Dictionary: AnsiString): Boolean;
function ReadLatestDictionary(ObjectNumber: Integer;
out Generation: Integer; out Dictionary: AnsiString): Boolean;
function ReadDecodedStream(ObjectNumber, Generation,
MaximumDecodedBytes: Integer; out Data: TBytes): Boolean;
property Valid: Boolean;
end;
procedure CompressPdfStream(Source, Dest: TStream);
procedure LinearizePdfStream(Source, Dest: TStream);
procedure PackPdfObjectStreams(Source, Dest: TStream;
MaxObjectsPerStream: Integer = 100;
MaxDecodedBytesPerStream: Integer = 65536);
procedure NormalizePdfDocumentContent(Source, Dest: TStream;
const Options: TPdfContentNormalizeOptions;
out Report: TPdfContentNormalizeReport);
function GraftPdfAcroForm(Source, Destination, Output: TStream;
const PageMappings: TPdfGraftPageMappings;
const Options: TPdfAcroFormGraftOptions;
GraftMap: TPdfCrossDocumentGraftMap;
out Report: TPdfAcroFormGraftReport): Boolean;
procedure PruneUnreachablePdfStream(Source, Dest: TStream;
out Report: TPdfPruneReport);
procedure PruneUnusedPdfResources(Source, Dest: TStream;
out Report: TPdfResourcePruneReport;
AllowSignedDocument: Boolean = False);
procedure DeduplicateResourcesPdfStream(Source, Dest: TStream;
out Report: TPdfDedupReport);
procedure RecompressFlatePdfStream(Source, Dest: TStream;
const Options: TPdfFlateRecompressOptions;
out Report: TPdfFlateRecompressReport);
procedure ExternaliseInlineImagesPdfStream(Source, Dest: TStream;
const Options: TPdfInlineImageExternaliseOptions;
out Report: TPdfInlineImageExternaliseReport);
procedure ReproduciblePdfStream(Source, Dest: TStream;
out Report: TPdfReproducibleReport);
procedure AppendPdfDirtyRevision(BaselineState, CurrentState,
PreviousOutput, Dest: TStream; out ChangedObjectCount: Integer;
out AppendedByteCount: Int64);
procedure ApplyDefaultOpenAction(Source, Dest: TStream;
PdfVersion: Integer = 0);
procedure PageLabelledPdfStream(Source, Dest: TStream;
const Ranges: TPdfPageLabelRanges; ReplaceExisting: Boolean;
out Report: TPdfPageLabelReport);
procedure InspectOptionalContentPdfStream(Source: TStream;
Usage: TPdfOptionalContentUsage; ConfigurationIndex: Integer;
out Inventory: TPdfOptionalContentInventory);
procedure ConfigureOptionalContentPdfStream(Source, Dest: TStream;
const Changes: TPdfOptionalContentStateChanges;
const Options: TPdfOptionalContentConfigureOptions;
out Report: TPdfOptionalContentConfigureReport);
procedure SanitiseActiveContentPdfStream(Source, Dest: TStream;
const Options: TPdfSanitiseOptions;
out Report: TPdfSanitiseReport);
procedure SanitiseActiveContentPdfStream(Source, Dest,
PruneWorkspace: TStream; const Options: TPdfSanitiseOptions;
out Report: TPdfSanitiseReport);
procedure ExportPdfObjectGraph(Source, Dest: TStream;
const Options: TPdfObjectGraphInspectOptions;
out Report: TPdfObjectGraphReport);
procedure PatchPdfObjectGraph(Source, Dest: TStream;
const Operations: TPdfObjectPatchOperations;
out Report: TPdfObjectGraphReport;
AllowSignedDocument: Boolean = False);
procedure PostProcessSavedPdf(Source, Dest: TStream;
PdfVersion: Integer = 0);
procedure PostProcessSavedPdf(Source, Dest, NormalizedWorkspace,
RepairedWorkspace, ValidationWorkspace: TStream;
PdfVersion: Integer = 0);
procedure RepairSubsetToUnicodeCMaps(Source, Dest: TStream);
function ReadPdfVersionInfo(Source: TStream; out Info: TPdfVersionInfo;
out ErrorText: string): Boolean;
function ReadPdfSparseRevisionInfo(Source: TStream;
out Info: TPdfSparseRevisionInfo): Boolean;
function ComposePdfSparseUpdateId(Source: TStream;
const Info: TPdfSparseRevisionInfo;
const DocumentId, InstanceId: TBytes): AnsiString;
function ReadPdfSparseCatalogSubDict(Source: TStream;
const Name: AnsiString; out SubDict: AnsiString): Boolean;
function ReadPdfSparsePageDictionaries(Source: TStream;
out Pages: TPdfSparsePageDictionaries): Boolean;
| Callable | Description |
|---|---|
TPdfTreeEditor.TryLoad | Laadt en valideert één indirecte NameTree of NumberTree via sparse exact-generation-opzoeking en geeft structureel bewijs terug zonder een exceptie te verhogen bij misvormde invoer |
TPdfTreeEditor.Load | Laadt één boom en verhoogt een exceptie met de validatiefout wanneer de structuur niet veilig te bewerken is |
TPdfTreeEditor.UpsertName en UpsertNumber | Voegen één gesorteerde invoer in of vervangen die, waarbij de volledige ruwe PDF-waarde behouden blijft, inclusief indirecte verwijzingen en samengestelde objecten |
TPdfTreeEditor.RemoveName, RemoveNumber en Clear | Verwijderen geselecteerde invoeren of maken de boom leeg vóór deterministische rebalancing |
TPdfTreeEditor.Validate | Controleert sleutelvolgorde, duplicaatsleutels, ruwe waarden, invoerlimieten en de huidige editor-invarianten |
TPdfTreeEditor.BuildBalancedObjects | Bouwt begrensde leaf- en interne knooppunten met exacte /Limits, behoudt de root-identiteit en hergebruikt waar mogelijk compatibele geladen indirecte knooppuntverwijzingen |
TPdfTreeEditor.SaveIncremental | Voegt de gebalanceerde objecten toe als geverifieerde incrementele revisie en laadt het resultaat onafhankelijk opnieuw voordat succes wordt gemeld |
TPdfOutlineEditor.TryLoad en Load | Lezen een outline-hiërarchie via sparse exact-generation-opzoeking, valideren ouder- en sibling-koppelingen, detecteren cycli en bewaren niet-ondersteunde destinations en actions als ondoorzichtige dictionary-invoeren |
TPdfOutlineEditor.Add, Delete en Move | Bewerken complete outline-subbomen via stabiele item-identificatoren met behoud van depth-first sibling-volgorde |
TPdfOutlineEditor.SetTitle, SetStyle, SetExpanded, SetColor en ClearColor | Werken de zichtbare outline-presentatie bij zonder niet-herkende item-dictionary-invoeren weg te gooien |
TPdfOutlineEditor.Retarget | Wijst een één-gebaseerde expliciete paginadestination toe als directe /Dest-data of als GoTo-action met een gevalideerd destination-achtervoegsel |
TPdfOutlineEditor.ApplyPageMap | Verbruikt de één-gebaseerde destination-mapping die door pagina-planvalidatie is opgeleverd, werkt overlevende expliciete destinations bij en verwijdert dan的政策 of meldt dan afgebroken subtrees |
TPdfOutlineEditor.SaveIncremental | Bouwt root-, parent-, sibling-, child-, count-, style-, kleur- en destination-invoeren opnieuw op, voegt een incrementele revisie toe en laadt het semantische resultaat onafhankelijk opnieuw vóór succes |
TPdfCrossDocumentGraftMap.Create | Koppelt herbruikbare source-naar-destination-mappingen van indirecte objecten aan één door de aanroeper aangeleverde bronidentiteit |
TPdfCrossDocumentGraftMap.Add en TryResolve | Bewaren en resolven exacte objectnummer- en generatieparen, accepteren identieke herhalingen en wijzen conflicterende destinations af |
GraftPdfAcroForm | Importeert veldhiërarchieën, widgets, appearances, berekeningsvolgorde, standaardresources, actions en waarden naar gemapte destination-pagina's, voegt een sparse incrementele revisie toe en laadt het resultaat onafhankelijk opnieuw vóór succes |
CompressPdfStream | Comprimeert in aanmerking komende ongecomprimeerde streams met Flate en bouwt de geserialiseerde PDF-structuur opnieuw op |
LinearizePdfStream | Herschikt en hernummert de actieve objectgraaf naar een linearized PDF-layout met first-page- en shared-object-hintdata |
PackPdfObjectStreams | Pakt in aanmerking komende non-stream-objecten in begrensde ObjStm-groepen en schrijft een cross-reference stream; beide groeperingslimieten moeten positief zijn |
NormalizePdfDocumentContent | Normaliseert elke paginacontentreeks met TPdfContentNormalizeOptions en geeft een documentniveau-TPdfContentNormalizeReport terug |
PruneUnreachablePdfStream | Herschrijft alleen objecten die vanuit de catalogus bereikbaar zijn naar één klassieke revisie, met behoud van overlevende objectnummers en generaties |
PruneUnusedPdfResources | Scant gedecodeerde contentoperatoren in pagina-, overgeërfde-, Form XObject-, pattern-, appearance- en geneste resourcescopes, verwijdert alleen ongebruikte resourcenamen, voegt een sparse revisie toe en snoeit objecten weg die onbereikbaar zijn geworden |
DeduplicateResourcesPdfStream | Snoeit onbereikbare objecten weg en voegt byte-identieke font-, afbeeldings- en Form XObject-subgrafen samen |
RecompressFlatePdfStream | Decodeert en hercomprimeert bereikbare FlateDecode-streams wanneer aan beide gevraagde besparingsdrempels wordt voldaan |
ExternaliseInlineImagesPdfStream | Verplaatst inline-afbeeldingsblokken naar image XObjects, werkt paginasources bij en herschrijft de betrokken contentstreams |
ReproduciblePdfStream | Levert deterministische uitvoer met één revisie door onbereikbare objecten weg te snoeien, Info-tijdstempels te verwijderen en de bron-/ID weg te laten |
AppendPdfDirtyRevision | Vergelijkt baseline- en huidige semantische momentopnamen, voegt gewijzigde of nieuwe indirecte objecten toe aan de vorige uitvoer en rapporteert toegevoegde aantallen |
AppendEncryptedPdfDirtyRevision | Voegt gewijzigde of nieuwe indirecte objecten toe onder de overgeërfde encryptiecontext en valideert of vernieuwt de revisie-authenticatie |
ApplyDefaultOpenAction | Injecteert een first-page Fit-Height open action wanneer er geen bestaat en de gekozen PDF-versie dat toestaat, met begrensde streamvensters en sparse luie opzoeking over klassieke, xref-stream-, hybride en object-stream-revisies heen |
PageLabelledPdfStream | Schrijft een /PageLabels-nummerboom in de catalogus vanuit nul-gebaseerde bereiken en vervangt optioneel een bestaande boom, met begrensde streamvensters en sparse catalogusopzoeking op het normale xref-pad |
InspectOptionalContentPdfStream | Leest optional-content-groepen, configuraties, lidmaatschappen, usage-metadata en effectieve zichtbaarheid in een inventaris |
ConfigureOptionalContentPdfStream | Past gevraagde groepszichtbaarheid toe op een geselecteerde configuratie en schrijft de vereiste optional-content-updates |
SanitiseActiveContentPdfStream | Verwijdert geselecteerde catalogus- en trailer-invoeren met actieve content via sparse opzoeking en begrensd range-kopiëren, en kan daarna objecten snoeien die door die verwijdering onbereikbaar zijn geworden; de workspace-overload accepteert door de aanroeper eigen begrensde of op schijf ondergebrachte opslag voor de snoei-invoer |
ExportPdfObjectGraph | Serialiseert begrensde indirecte-objectdata als pdf-object-graph-v1-JSON met optionele encoded-stream SHA-256-digests |
PatchPdfObjectGraph | Zet of verwijdert top-level dictionary-invoeren op basis van objectidentiteit en voegt een geverifieerde incrementele revisie toe |
PostProcessSavedPdf | Draait default-open-action-afhandeling, versiespecifieke normalisatie en native incrementele xref-stream-reparatie; de overload met drie afzonderlijke seekable workspaces laat aanroepers hun eigen begrensde of op schijf ondergebrachte opslagbeleid toepassen |
RepairSubsetToUnicodeCMaps | Herschrijft ToUnicode CMaps van subsetfonts waarvan de arrayelementen hun bfchar-invoeren tegenspreken, met gelijk lange in-place elementbewerkingen (bfchar-waarden winnen, een paar dat alleen in de high bit verschilt valt terug op de kleinste code point, elk ander conflict houdt de eerste mapping aan); documenten zonder /ToUnicode of met een xref-stream-, hybride- of object-stream-layout gaan onaangetast door, en elke volledige niet-incrementele TPdf-save past dezelfde reparatie automatisch toe |
ReadPdfVersionInfo | Leest header, catalogusoverride, effectieve core-versie en Adobe developer-extension-informatie |
ReadPdfSparseRevisionInfo | Leest begrensde feiten van de laatste revisie, catalogusbytes, objectgeneraties, xref-stijl, encryptiestatus, documentidentificatoren en tagged-structure-bewijs via de sparse objectindex |
ComposePdfSparseUpdateId | Formatteert een incrementele trailer-/ID door identificatoren van de aanroeper of bron te behouden en ontbrekende waarden af te leiden via een begrensde streaming-digest |
ReadPdfSparseCatalogSubDict | Leest een directe of indirecte catalogus-subdictionary, zoals MarkInfo of ViewerPreferences, via de sparse objectindex |
ReadPdfSparsePageDictionaries | Doorloopt de actieve paginaboom via sparse klassieke, xref-stream-, hybride en object-stream-opzoeking en geeft paginadictionaries in paginaorde terug |
TPdfSparseDictionaryReader.Create | Bouwt één herbruikbare sparse index over een door de aanroeper eigen bronstream en meldt initialisatiesucces via Valid; de bron moet in leven blijven zolang de lezer wordt gebruikt |
TPdfSparseDictionaryReader.Destroy | Geeft de vastgehouden indexbuffers vrij zonder de door de aanroeper eigen bronstream vrij te geven |
TPdfSparseDictionaryReader.ReadDictionary | Resolveert één exact objectnummer en generatie via de vastgehouden index en geeft begrensde actieve dictionary-bytes terug |
TPdfSparseDictionaryReader.ReadLatestDictionary | Resolveert de actieve xref-invoer voor een objectnummer, geeft zijn generatie terug en leest zijn dictionary via de vastgehouden index |
TPdfSparseDictionaryReader.ReadDecodedStream | Leest en decodeert één directe ongefilterde of enkele FlateDecode-stream met handhaving van MaximumDecodedBytes |
TPdfOptionalContentConfigureOptions.Default | Kiest configuratie 0 en View-usage, verwijdert automatic-state-regels en handhaaft radiogroepen |
TPdfSanitiseOptions.Default | Zet open-action-, catalogus-action-, name-tree-, associated-file- en onbereikbaar-object-verwijdering aan terwijl AcroForm en metadata behouden blijven |
TPdfObjectGraphInspectOptions.Default | Geeft limieten van 100000 objecten, diepte 32, 64 MiB uitvoer, 1 MiB strings en ingeschakelde stream-digests terug |
| Type | Description |
|---|---|
TPdfTreeKind | Kiest een byte-gesorteerde NameTree met ptkName of een ondertekende 64-bits NumberTree met ptkNumber |
TPdfTreeObjectReference | Identificeert één indirect boomknooppunt via ObjectNumber en Generation |
TPdfTreeEntry | Bewaart NameKey of NumberKey plus één genormaliseerd compleet PDF-object in RawValue; TPdfTreeEntries is zijn dynamische array |
TPdfTreeEditOptions | Begrenst MaxEntries, MaxNodes, MaxDepth, MaxLeafEntries en MaxKidsPerNode; Default levert conservatieve productielimieten |
TPdfTreeValidationIssue | Eén probleem met objectbewijs en diagnostische Message; TPdfTreeValidationIssues is zijn dynamische array |
TPdfTreeValidationIssueKind | Probleemwaarden ptviInvalidRoot, ptviUnreadableNode, ptviCycle, ptviDepthLimit, ptviNodeLimit, ptviEntryLimit, ptviInvalidNodeShape, ptviInvalidKey, ptviInvalidValue, ptviInvalidLimits, ptviDuplicateKey, ptviUnsortedKey en ptviDeadlineExceeded |
TPdfTreeValidationReport | Rapporteert NodeCount, EntryCount, MaximumDepth, Issues, objectbewijs, successtatus en fouttekst |
TPdfTreeSerializedObject | Bevat één gebalanceerde knooppuntverwijzing, complete indirecte-objectdata en of de verwijzing hergebruikt werd |
TPdfTreeEditor | Muteerbaar gesorteerd boommodel dat ondoorzichtige PDF-waarden bewaart en een gebalanceerde indirecte hiërarchie oplevert |
TPdfOutlineStyleFlag | Presentatiewaarden posItalic en posBold; TPdfOutlineStyle is hun verzameling |
TPdfOutlineObjectReference | Identificeert een vastgehouden outline-object via objectnummer en generatie |
TPdfOutlineItem | Bewaart stabiele identiteit, ouderidentiteit, titel, expliciete destination, action-vorm, IsOpen, stijl, HasColor, ColorRed, ColorGreen, ColorBlue en vastgehouden objectverwijzing; TPdfOutlineItems is zijn dynamische array |
TPdfOutlineEditOptions | Begrenst MaxItems en hiërarchiediepte, met conservatieve standaardwaarden via Default |
TPdfOutlineValidationIssueKind | Probleemwaarden poviNone, poviInvalidCatalog, poviUnreadableItem, poviCycle, poviDepthLimit, poviItemLimit, poviInvalidParent, poviInvalidSibling, poviMissingTitle, poviInvalidDestination, poviInvalidPageMap, poviEncryptedInput, poviWriteFailure en poviVerificationFailure |
TPdfOutlineValidationReport | Rapporteert IssueKind, objectbewijs, ItemCount, MaximumDepth, RemappedDestinationCount, RemovedDanglingItemCount, successtatus en fouttekst |
TPdfOutlineEditor | Muteerbaar depth-first outline-model met geverifieerde pagina-plan-remapping en incrementele persistentie |
TPdfGraftObjectReference | Identificeert één bron- of destination-indirect object via exact objectnummer en generatie |
TPdfCrossDocumentGraftMap | Herbruikbare aan bronidentiteit gebonden objectmap, ondersteund door TPdfGraftMapEntries, die cycli en gedeelde verwijzingen bewaart en invoeren van een mislukte graft terugschuift |
TPdfGraftPageMapping | Mapt één-gebaseerd SourcePageNumber op één-gebaseerd DestinationPageNumber voor widget-/P- en pagina-/Annots-updates |
TPdfAcroFormCollisionPolicy | Kiest pagcpReject of pagcpRename wanneer een bron-root-veldtitel botst met een destination-root-veldtitel |
TPdfAcroFormGraftOptions | Stuurt CollisionPolicy, RenamePrefix, object- en recursiebudgetten en AllowSignedDestination |
TPdfAcroFormGraftReport | Rapporteert SourceFieldCount, GraftedFieldCount, ReusedObjectCount, DestinationFieldCount, MappedPageCount, GraftedObjectCount, RenamedFieldCount, uitvoergrootte, successtatus en fouttekst |
TPdfVersionInfo | Versierapport met HeaderVersion, CatalogVersion, CoreVersion, AdobeBaseVersion, AdobeExtensionLevel, HasCatalogVersion, HasDeveloperExtensions en HasAdobeExtension |
TPdfSparseRevisionInfo | Momentopname van de laatste revisie met RootObjectNumber, RootGeneration, InfoObjectNumber, InfoGeneration, SizeValue, MaximumObjectNumber, PreviousXrefOffset, UsesXrefStream, HasEncrypt, HasDocumentId, HasTaggedStructure, FirstDocumentId, CatalogDictionary en InfoDictionary |
TPdfSparseUpdateObject | Eén revisie-invoer met ObjectNumber, Generation en een complete Data-body met N G obj ... endobj-bytes |
TPdfSparseUpdateObjects | Dynamische array van TPdfSparseUpdateObject-invoeren die door AppendPdfSparseUpdate wordt toegevoegd |
TPdfSparsePageDictionary | Eén actief paginaobject met ObjectNumber, Generation en begrensde Dictionary-bytes |
TPdfSparsePageDictionaries | Dynamische array van actieve paginadictionaries in paginaboomvolgorde |
TPdfSparseDictionaryReader | Herbruikbare eigenaar van een sparse klassieke, xref-stream-, hybride en object-stream-index voor herhaaldelijke exact-generation-dictionary-opzoeking zonder toewijzing op brongrootte |
TPdfPruneReport | Bereikbaarheidsresultaat met SourceByteCount, OutputByteCount, KeptObjectCount, PrunedObjectCount, Succeeded en ErrorMessage |
TPdfResourcePruneReport | Resource-snoeiresultaat met ScannedScopeCount, UpdatedScopeCount, RemovedNameCount, RemovedObjectCount, streamtellers, bytetotalen, successtatus en fouttekst |
TPdfDedupReport | Deduplicatieresultaat met SourceByteCount, OutputByteCount, KeptObjectCount, PrunedObjectCount, MergedFontCount, MergedImageCount, MergedFormXObjectCount, Succeeded en ErrorMessage |
TPdfFlateRecompressOptions | Vervangingsdrempels MinSavingBytes en MinSavingRatio |
TPdfFlateRecompressReport | Recompressieresultaat met SourceByteCount, OutputByteCount, RecompressedCount, SkippedCount, FailedCount, OriginalStreamBytes, RecompressedStreamBytes, Succeeded en ErrorMessage |
TPdfInlineImageExternaliseOptions | Bevat SkipUnsafePages, dat pagina's bewaart waarvan de inline-afbeeldingsgrenzen niet opgelost kunnen worden |
TPdfInlineImageExternaliseReport | Externalisatieresultaat met SourceByteCount, OutputByteCount, ExternalisedCount, SkippedPageCount, FailedCount, CreatedXObjectCount, Succeeded en ErrorMessage |
TPdfReproducibleReport | Deterministisch herschrijfresultaat met SourceByteCount, OutputByteCount, KeptObjectCount, PrunedObjectCount, StrippedTimestampCount, Succeeded en ErrorMessage |
TPdfPageLabelStyle | Nummeringsstijlen plsNone, plsDecimal, plsUppercaseRoman, plsLowercaseRoman, plsUppercaseLetters en plsLowercaseLetters |
TPdfPageLabelRange | Eén labelbereik met nul-gebaseerde StartPageIndex, Style, Prefix en StartNumber |
TPdfPageLabelRanges | Dynamische array van TPdfPageLabelRange-waarden |
TPdfPageLabelReport | Label-herschrijfresultaat met SourceByteCount, OutputByteCount, AppliedRangeCount, ReplacedExistingLabels, Succeeded en ErrorMessage |
TPdfOptionalContentUsage | Zichtbaarheidscontexten ocuView, ocuPrint, ocuExport en ocuDesign |
TPdfOptionalContentState | Per-usage-statussen ocsUnspecified, ocsOn en ocsOff |
TPdfOptionalContentBaseState | Configuratiebasistatussen ocbsOn, ocbsOff en ocbsUnchanged |
TPdfOptionalContentMembershipPolicy | Lidmaatschapsbeleiden ocmpAnyOn, ocmpAllOn, ocmpAnyOff, ocmpAllOff en ocmpUnknown |
TPdfOptionalContentIntegerArray | Dynamische integer-array voor optional-content-objectnummerverzamelingen |
TPdfOptionalContentStringArray | Dynamische AnsiString-array voor PDF-naamverzamelingen |
TPdfOptionalContentWideStringArray | Dynamische WideString-array voor gedecodeerde optional-content-tekst |
TPdfOptionalContentRadioGroup | Eén wederzijds uitsluitende groep, vertegenwoordigd door GroupObjectNumbers |
TPdfOptionalContentRadioGroups | Dynamische array van TPdfOptionalContentRadioGroup-waarden |
TPdfOptionalContentGroup | OCG-record met ObjectNumber, Generation, Name, Intents, ViewState, PrintState, ExportState, PageElementSubtype, Language, LanguagePreferred, UserType, UserNames, HasZoomRange, MinimumZoom, MaximumZoom, EffectiveVisible, Locked en RadioGroupIndex |
TPdfOptionalContentGroups | Dynamische array van TPdfOptionalContentGroup-waarden |
TPdfOptionalContentConfiguration | Configuratierecord met ObjectNumber, Generation, Name, Creator, BaseState, Intents, OnGroupObjectNumbers, OffGroupObjectNumbers, LockedGroupObjectNumbers, OrderGroupObjectNumbers, RadioGroups en HasAutomaticState |
TPdfOptionalContentConfigurations | Dynamische array van TPdfOptionalContentConfiguration-waarden |
TPdfOptionalContentMembership | OCMD-record met ObjectNumber, Generation, GroupObjectNumbers, Policy, VisibilityExpression en EffectiveVisible |
TPdfOptionalContentMemberships | Dynamische array van TPdfOptionalContentMembership-waarden |
TPdfOptionalContentInventory | Inspectieresultaat met Usage, SelectedConfigurationIndex, Groups, Configurations, Memberships, Succeeded en ErrorMessage |
TPdfOptionalContentStateChange | Gevraagde Visible-status voor één GroupObjectNumber |
TPdfOptionalContentStateChanges | Dynamische array van TPdfOptionalContentStateChange-waarden |
TPdfOptionalContentConfigureOptions | Geselecteerde configuratie en usage plus de schakelaars DisableAutomaticState en EnforceRadioGroups |
TPdfOptionalContentConfigureReport | Configuratieresultaat met SourceByteCount, OutputByteCount, GroupCount, ChangedGroupCount, UpdatedUsageStateCount, SelectedConfigurationIndex, RemovedAutomaticState, Succeeded en ErrorMessage |
TPdfSanitiseOptions | Onafhankelijke schakelaars StripOpenAction, StripCatalogActions, StripNames, StripAssociatedFiles, StripAcroForm, StripMetadata en RemoveUnreachable |
TPdfSanitiseReport | Sanitatieresultaat met SourceByteCount, OutputByteCount, StrippedEntryCount, PrunedObjectCount, geneste PruneReport, Succeeded en ErrorMessage |
TPdfObjectGraphInspectOptions | Begrenst de JSON-export met MaxObjects, MaxDepth, MaxOutputBytes, MaxStringBytes en IncludeStreamDigests |
TPdfObjectGraphReport | Gedeeld export- en patchresultaat met SourceByteCount, OutputByteCount, ObjectCount, ExportedObjectCount, PatchedObjectCount, AppliedOperationCount, Truncated, Succeeded en ErrorMessage |
TPdfObjectPatchOperationKind | Patchacties popSet en popRemove |
TPdfObjectPatchValueKind | Waardesoorten povNull, povBoolean, povInteger, povReal, povName, povTextString en povReference |
TPdfObjectPatchValue | Getagdewaarde met Kind, BooleanValue, IntegerValue, RealValue, TextValue, ReferenceObjectNumber en ReferenceGeneration |
TPdfObjectPatchOperation | Eén bewerking met Kind, ObjectNumber, Generation, Key en Value |
TPdfObjectPatchOperations | Dynamische array van TPdfObjectPatchOperation-waarden |
TPdfTreeEditor, TPdfOutlineEditor en GraftPdfAcroForm wijzen versleutelde invoer af omdat hun zelfstandige serializers geen documentbeveiligingsparameters overerven, en alle bron- en doelstreams moeten seekable blijven tijdens de geverifieerde saveGraftPdfAcroForm wijst XFA, hangende verwijzingen, niet-gemapte widgetpagina's, duplicaat-paginamappingen en standaardresource-botsingen af; ondertekende destinations vereisen expliciete autorisatieTPdf-methoden op hoger niveau bieden expliciete autorisatie waar ondertekende invoer geaccepteerd kan wordenPatchPdfObjectGraph weigert duplicaatbewerkingen, ontbrekende objecten, misvormde of dubbele dictionary-sleutels, beschermde streamfilter- en length-sleutels en ontbrekende referentiedoelenAppendPdfDirtyRevision vereist overeenkomende baseline- en vorige-uitvoer-catalogusverwijzingen en kan een indirect object dat was vrijgegeven niet coderenSanitiseActiveContentPdfStream-workspace-overload vereist drie afzonderlijke seekable streams wanneer RemoveUnreachable=TrueTPdfOutlineEditor.SetUri vervangt een destination door een UTF-8 URI-actie en codeert letterlijke scheidingstekens veilig; save-verificatie negeert de uitgeklapte status van bladitems omdat PDF hun branch Count weglaat
De options-overload van GraftPdfAcroForm ondersteunt pagcpReject, pagcpRename, pagcpNamespace en het samenvoegen van compatibele terminale tekst- en keuzevelden met pruning van geselecteerde widgets, geisoleerde resources, appearances en berekeningsorde; zie FPdfFormMerge voor beleid en transactionele documentintegratie
TPdfAcroFormGraftOptions.NamespacePrefix benoemt de parent die door het namespace-beleid wordt ingevoegd; TPdfAcroFormCollisionPolicy.pagcpMergeCompatible voegt ondersteunde compatibele terminale tekst- of keuzevelden samen
TPdfAcroFormGraftReport.FilteredFieldCount en TPdfAcroFormGraftReport.FilteredWidgetCount tellen bronvermeldingen die door filtering op geselecteerde paginas zijn verwijderd; TPdfAcroFormGraftReport.ResourceRenameCount telt geisoleerde standaardresourcenamen en TPdfAcroFormGraftReport.MergedFieldCount telt compatibele velden die aan een bestaande owner zijn gekoppeld
CapturePdfNavigation en WritePdfNavigation leggen benoemde destinations en paginalink-annotaties vast en remappen die met expliciete owner-paginamappingen; zie FPdfMerge voor raw key-semantiek, destinationparameters, limieten en transactionele integratie
TPdfNavigationNamedDestination= record
// Keep the original PDF string bytes, including a UTF-16 BOM when present
NameKey: AnsiString;
// Absolute one-based page number; zero denotes an unresolved target
PageNumber: Integer;
// Exact destination mode and parameters, including null values
DestinationSuffix: AnsiString;
end;
TPdfNavigationNamedDestinations= array of TPdfNavigationNamedDestination;
TPdfNavigationPageLink= record
// Owner page is one-based; annotation and link-only ordinals are zero-based
PageNumber, AnnotationIndex, LinkIndex: Integer;
HasDestination, HasGotoAction: Boolean;
DestinationPageNumber, ActionPageNumber: Integer;
DestinationSuffix, ActionSuffix: AnsiString;
end;
TPdfNavigationPageLinks= array of TPdfNavigationPageLink;
ReadPdfActiveObjects geeft de nieuwste actieve objectwaarden terug met hun exacte generatienummers en de actieve catalogusrevisie, en resolveert klassieke xref-tabellen, xref-streams, incrementele revisies en gecomprimeerde object-streamleden
Body sluit de indirect-object-header en de endobj-marker uit; gewone streams behouden hun dictionary en gecodeerde payload, terwijl gecomprimeerde leden als gewone waarden worden gematerialiseerd, en xref-/object-streaminfrastructuur wordt uitgesloten van de teruggegeven collectie
De bronpositie wordt hersteld en een fout geeft een lege objectcollectie met diagnostiek terug; versleutelde invoer wordt afgewezen, terwijl handtekeningen kunnen worden geinspecteerd zonder hun bytes te wijzigen
Standaardwaarden staan 256 MiB bronbytes toe, 64 MiB per gematerialiseerd body, 256 MiB cumulatieve bodies, 64 MiB per gedecodeerde object-stream, 256 MiB cumulatieve caches van gedecodeerde object-streams en 1,000,000 objectnummer-slots
Body-limieten worden gecontroleerd voordat elk body wordt gekopieerd en tellen tijdelijke infrastructuur-bodies mee naast teruggegeven waarden; de afzonderlijk benoemde limieten voor de decodeercache stoppen het decoderen van object-streams voordat het budget van de aanroeper wordt overschreden
Dit zijn logische bufferlimieten, geen procesbrede geheugenlimiet: bronkopieen, de staging-stream voor directe objecten, scanbuffers, werkopslag van de decoder en objectmetadata verbruiken extra begrensde toewijzingen, en scanbuffers kunnen behouden bodies dupliceren
type
TPdfActiveObject = record
ObjectNumber, Generation: Integer;
Body: TBytes;
end;
TPdfActiveObjects = array of TPdfActiveObject;
TPdfActiveObjectReadOptions = record
MaxSourceBytes, MaxObjectBytes, MaxTotalObjectBytes: Int64;
MaxDecodedObjectStreamBytes, MaxTotalDecodedObjectStreamBytes: Int64;
MaxObjects: Integer;
class function Default: TPdfActiveObjectReadOptions; static;
end;
function ReadPdfActiveObjects(Source: TStream;
const Options: TPdfActiveObjectReadOptions; out Objects: TPdfActiveObjects;
out Revision: TPdfSparseRevisionInfo; out ErrorText: string): Boolean;