PDFium Delphi Component Docs

FPdfContentNormalize enhed

Enhed: FPdfContentNormalize
Syntaksbevarende normalisering af én logisk PDF-page-content-sekvens og robust detektion af inline-image-grænser

Syntax

const
  PdfContentNormalizeDefaultInputLimit = Int64(256) * 1024 * 1024;
  PdfContentNormalizeDefaultOutputLimit = Int64(256) * 1024 * 1024;
  PdfContentNormalizeDefaultTokenLimit = 10000000;

function NormalizePdfContentSequence(const Streams: array of TBytes;
  const Options: TPdfContentNormalizeOptions; out Output: TBytes;
  out Report: TPdfContentNormalizeReport): Boolean;

function CollectPdfContentResourceUses(const Data: TBytes;
  out Uses: TPdfContentResourceUses;
  out ErrorText: string): Boolean;

function FindInlineImageBlock(const Data: TBytes; StartPos: Integer;
  out BiPos, IdPos, DataStart, EndImageStart: Integer): Boolean;

Description

NormalizePdfContentSequence sammensætter de leverede indholdsstreams i array-rækkefølge og tokeniserer resultatet som én logisk page-content-sekvens

Den bevarer literal strenge, hex-strenge, navne, arrays, dictionaries, inline-image-payloads og ukendte operatorer, mens tokensepareringen kanoniseres; kommentarer kan fjernes, og strukturel balance kan kræves

CollectPdfContentResourceUses registrerer ressourcenavne, som tekst-, XObject-, graphics-state-, colour-space-, pattern-, shading-, marked-content-property- og inline-image-operatorer forbruger, under det centrale tokenbudget

FindInlineImageBlock finder en komplet BI-, ID- og EI-blok uden at behandle en EI-bytesekvens inde i image-payload-data som terminatoren

Constants

ConstantDescription
PdfContentNormalizeDefaultInputLimitStandard logisk inputgrænse pr. side på 256 MiB
PdfContentNormalizeDefaultOutputLimitStandard grænse for normaliseret output pr. side på 256 MiB
PdfContentNormalizeDefaultTokenLimitStandard grænse pr. side på 10000000 tokens

Functions

FunctionDescription
TPdfContentNormalizeOptions.DefaultAktiverer kommentarfjernelse, balancevalidering, fordelagtig Flate-komprimering og spring over usikre sider; forbyder signede omskrivninger og anvender de tre standardgrænser
NormalizePdfContentSequenceReturnerer normaliserede bytes og en detaljeret rapport eller False med fejlstatus og diagnostisk tekst
CollectPdfContentResourceUsesReturnerer ressourcekind og dekodet PDF-navn for hver ressourceforbrugende indholdsoperator eller False med diagnostisk tekst for misdannet eller over-budget input
FindInlineImageBlockReturnerer offsets for den næste komplette inline-image-blok på eller efter StartPos

Types

TypeDescription
TPdfContentNormalizeStatusUdfald eller fejlkategori for sekvens- og dokumentnormalisering
TPdfContentNormalizeOptionsNormaliseringspolitik og byte- og token-grænser pr. side
TPdfContentNormalizeReportStatus, byte- og sidetotaler, stream- og token-metrikker, syntaksobservationer og diagnostisk tekst
TPdfContentResourceKindRessourceværdier pcrkFont, pcrkXObject, pcrkExtGState, pcrkColorSpace, pcrkPattern, pcrkShading og pcrkProperties
TPdfContentResourceUseÉt dekodet ressourcenavn Name sammen med dets Kind
TPdfContentResourceUsesDynamisk array af indsamlede ressourceforbrug i indholds-rækkefølge

Status values

ValueMeaning
pcnsNotStartedRapporten er initialiseret, men normaliseringen er ikke fuldført
pcnsCompletedNormaliseringen fuldført med succes
pcnsInputLimitExceededDet logiske input oversteg MaxInputBytesPerPage, eller en konfigureret grænse var ikke positiv
pcnsOutputLimitExceededDe normaliserede bytes ville overstige MaxOutputBytesPerPage
pcnsTokenLimitExceededIndholdssekvensen oversteg MaxTokensPerPage
pcnsMalformedTokenEt PDF-indholdstoken kunne ikke læses fuldstændigt
pcnsUnresolvedInlineImageEn komplet inline-image-payload-grænse kunne ikke findes
pcnsUnbalancedStatePåkrævet balance i graphics-, tekst-, marked-content-, kompatibilitets-, array- eller dictionary-scope fejlede
pcnsUnsupportedFilterDokumentniveau-normalisering stødte på en content-stream-filter, den ikke kan dekode
pcnsEncryptedDocumentDokumentniveau-normalisering nægtede krypteret input
pcnsSignedDocumentDokumentniveau-normalisering nægtede signed input uden autorisation
pcnsDocumentRewriteFailedDen omsluttende PDF-objektgraf-omskrivning eller verifikation fejlede
pcnsResourceBudgetExceededDeadline for den procesbrede TPdfParserResourceBudget blev nået, før normaliseringen var fuldført

Options

FieldDescription
RemoveCommentsUdelader PDF-kommentarer, mens påkrævede token-grænser bevares
RequireBalancedStateKræver balancerede q/Q-, BT/ET-, marked-content-, kompatibilitets-, array- og dictionary-scopes
CompressOutputTillader, at document-level-wrapperen Flate-komprimerer en normaliseret sidestream, når komprimering reducerer dens størrelse
SkipUnsafePagesTillader, at dokumentniveau-normalisering bevarer en side uændret efter et usikkert eller ikke-understøttet resultat i stedet for at afbryde dokumentomskrivningen
AllowSignedDocumentTillader eksplicit en fuld omskrivning af signed input, hvilket invalidere eksisterende signatur-byte-intervaller
MaxInputBytesPerPageMaksimal samlet mængde bytes på tværs af de leverede indholdsstreams for én side
MaxOutputBytesPerPageMaksimalt tilladte bytes i den normaliserede indholdssekvens
MaxTokensPerPageMaksimalt antal tokens, der inspiceres for én side

Report fields

FieldDescription
StatusAktuel TPdfContentNormalizeStatus
SourceByteCountSamlede mængde kildeindholdsbytes
OutputByteCountSamlede mængde normaliserede eller omskrevne outputbytes
PageCountSider inspiceret af dokumentniveau-normalisering
NormalizedPageCountSider, der med succes blev erstattet med normaliseret indhold
SkippedPageCountUsikre sider bevaret uændret under skip-politikken
InputStreamCountKildeindholdsstreams, der er sat sammen til logiske pagesekvenser
OutputStreamCountNormaliserede indholdsstreams, der er produceret
CoalescedArrayCountMulti-stream /Contents-arrays erstattet af én enkelt normaliseret stream
TokenCountBehandlede tokens
CommentCountKommentarer, der blev stødt på, uanset om de blev bevaret eller fjernet
InlineImageCountKomplette inline-image-blokke bevaret
UnknownOperatorCountUkendte operatorer bevaret ordret
ErrorMessageDiagnostisk tekst for den første fejl

Inline-image offsets

See Also

FPdfCompress, TPdf.SaveAsNormalizedContent