PDFium Delphi Component Docs

FPdfContentNormalize-enhet

Unit: FPdfContentNormalize
Syntaxbevarande normalisering av en logisk sidinnehållssekvens i PDF och robust detektering av inline-bildgrä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 fogar samman de angivna innehållsströmmarna i arrayordning och tokeniserar resultatet som en logisk sidinnehållssekvens

Den bevarar literala strängar, hexsträngar, namn, arrayer, ordböcker, inline-bildnyttolaster och okända operatorer medan tokensepareringen kanoniseras; kommentarer kan tas bort och strukturell balans kan krävas

CollectPdfContentResourceUses registrerar resursnamn som konsumeras av text-, XObject-, graphics-state-, färgrymd-, mönster-, skuggnings-, marked-content-egenskaps- och inline-bildoperatorer inom den centrala tokenbudgeten

FindInlineImageBlock lokaliserar ett komplett BI-, ID- och EI-block utan att behandla en EI-bytesekvens inuti bildnyttolasten som avslutare

Constants

ConstantDescription
PdfContentNormalizeDefaultInputLimitStandardgräns på 256 MiB för logisk indata per sida
PdfContentNormalizeDefaultOutputLimitStandardgräns på 256 MiB för normaliserad utdata per sida
PdfContentNormalizeDefaultTokenLimitStandardgräns på 10000000 tokens per sida

Functions

FunctionDescription
TPdfContentNormalizeOptions.DefaultAktiverar borttagning av kommentarer, balansvalidering, gynnsam Flate-komprimering och hopp över osäkra sidor; tillåter inte omskrivning av signerade dokument och tillämpar de tre standardgränserna
NormalizePdfContentSequenceReturnerar normaliserade bytes och en detaljerad rapport, eller False med felstatus och diagnostisk text
CollectPdfContentResourceUsesReturnerar resursslaget och det avkodade PDF-namnet för varje resurskonsumerande innehållsoperator, eller False med diagnostisk text för felformaterad eller över budgetens indata
FindInlineImageBlockReturnerar offset för nästa kompletta inline-bildblock på eller efter StartPos

Types

TypeDescription
TPdfContentNormalizeStatusUtfall eller felkategori för sekvens- och dokumentnormalisering
TPdfContentNormalizeOptionsNormaliseringspolicy och per-sida-gränser för bytes och tokens
TPdfContentNormalizeReportStatus, totaler för bytes och sidor, ström- och tokenmått, syntaxobservationer och diagnostisk text
TPdfContentResourceKindResursvärdena pcrkFont, pcrkXObject, pcrkExtGState, pcrkColorSpace, pcrkPattern, pcrkShading och pcrkProperties
TPdfContentResourceUseEtt avkodat resurs-Name tillsammans med dess Kind
TPdfContentResourceUsesDynamisk array av insamlade resursanvändningar i innehållsordning

Status values

ValueMeaning
pcnsNotStartedRapporten har initierats men normaliseringen har inte slutförts
pcnsCompletedNormaliseringen slutfördes framgångsrikt
pcnsInputLimitExceededDen logiska indatan överskred MaxInputBytesPerPage eller en konfigurerad gräns var inte positiv
pcnsOutputLimitExceededDe normaliserade bytes skulle överskrida MaxOutputBytesPerPage
pcnsTokenLimitExceededInnehållssekvensen överskred MaxTokensPerPage
pcnsMalformedTokenEn PDF-innehållstoken kunde inte läsas helt
pcnsUnresolvedInlineImageEn komplett gräns för en inline-bildnyttolast kunde inte hittas
pcnsUnbalancedStateKrävd balans i graphics-, text-, marked-content-, kompatibilitets-, array- eller ordlistescope misslyckades
pcnsUnsupportedFilterDokumentnormaliseringen stötte på ett innehållsströmfilter som den inte kan avkoda
pcnsEncryptedDocumentDokumentnormaliseringen vägrade krypterad indata
pcnsSignedDocumentDokumentnormaliseringen vägrade signerad indata utan behörighet
pcnsDocumentRewriteFailedDen omslutande PDF-objektgrafsomskrivningen eller verifieringen misslyckades
pcnsResourceBudgetExceededDeadline för den processövergripande TPdfParserResourceBudget nåddes innan normaliseringen hann slutföras

Options

FieldDescription
RemoveCommentsUtelämnar PDF-kommentarer samtidigt som nödvändiga tokenavgränsare behålls
RequireBalancedStateKräver balanserade q/Q-, BT/ET-, marked-content-, kompatibilitets-, array- och ordlistescopes
CompressOutputTillåter att dokumentomslag Flate-komprimerar en normaliserad sidström när komprimeringen minskar dess storlek
SkipUnsafePagesTillåter att dokumentnormaliseringen bevarar en sida oförändrad efter ett osäkert eller stödlöst resultat i stället för att avbryta dokumentomskrivningen
AllowSignedDocumentTillåter uttryckligen fullständig omskrivning av signerad indata, vilket ogiltigförklarar befintliga signaturbyteintervall
MaxInputBytesPerPageMaximalt totalt antal bytes över de angivna innehållsströmmarna för en sida
MaxOutputBytesPerPageMaximalt antal bytes som tillåts i den normaliserade innehållssekvensen
MaxTokensPerPageMaximalt antal tokens som inspekteras för en sida

Report fields

FieldDescription
StatusAktuell TPdfContentNormalizeStatus
SourceByteCountTotalt antal källinnehållsbytes
OutputByteCountTotalt antal normaliserade eller omskrivna utdatabytes
PageCountSidor som inspekterats av dokumentnormaliseringen
NormalizedPageCountSidor som framgångsrikt ersatts med normaliserat innehåll
SkippedPageCountOsäkra sidor som bevarats oförändrade enligt skip-policyen
InputStreamCountKällinnehållsströmmar som fogats samman till logiska sidsekvenser
OutputStreamCountNormaliserade innehållsströmmar som producerats
CoalescedArrayCountFlervalssidor med /Contents-arrayer som ersatts av en enda normaliserad ström
TokenCountTokens som bearbetats
CommentCountKommentarer som påträffats, oavsett om de behållits eller tagits bort
InlineImageCountKompletta inline-bildblock som bevarats
UnknownOperatorCountOkända operatorer som bevarats ordagrant
ErrorMessageDiagnostisk text för det första felet

Inline-image offsets

See Also

FPdfCompress, TPdf.SaveAsNormalizedContent