PDFium Delphi Component Docs

Unitatea FPdfContentNormalize

Unit: FPdfContentNormalize
Normalizare cu păstrarea sintaxei a unei singure secvențe logice de conținut de pagină PDF și detectare robustă a limitelor imaginilor inline

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 reunește fluxurile de conținut furnizate în ordinea vectorului și tokenizează rezultatul ca o singură secvență logică de conținut de pagină

Păstrează șirurile literale, șirurile hexazecimale, numele, vectorii, dicționarele, sarcinile utile ale imaginilor inline și operatorii necunoscuți, canonizând în același timp separarea token-urilor; comentariile pot fi eliminate, iar echilibrul structural poate fi cerut

CollectPdfContentResourceUses înregistrează numele resurselor consumate de operatorii de text, XObject, stare grafică, spațiu de culoare, pattern, shading, proprietăți de conținut marcat și imagine inline, sub bugetul central de token-uri

FindInlineImageBlock localizează un bloc complet BI, ID și EI, fără a trata o secvență de octeți EI din interiorul datelor imaginii ca terminator

Constants

ConstantDescription
PdfContentNormalizeDefaultInputLimitLimita implicită de intrare logică per pagină, de 256 MiB
PdfContentNormalizeDefaultOutputLimitLimita implicită de ieșire normalizată per pagină, de 256 MiB
PdfContentNormalizeDefaultTokenLimitLimita implicită per pagină, de 10000000 de token-uri

Functions

FunctionDescription
TPdfContentNormalizeOptions.DefaultActivează eliminarea comentariilor, validarea echilibrului, compresia Flate avantajoasă și sărirea paginilor nesigure; interzice rescrierile de documente semnate și aplică cele trei limite implicite
NormalizePdfContentSequenceReturnează octeții normalizați și un raport detaliat, sau False cu o stare de eșec și text de diagnostic
CollectPdfContentResourceUsesReturnează tipul resursei și numele PDF decodificat pentru fiecare operator de conținut care consumă resurse, sau False cu text de diagnostic pentru intrare malformată sau peste buget
FindInlineImageBlockReturnează offset-urile următorului bloc complet de imagine inline de la StartPos sau după

Types

TypeDescription
TPdfContentNormalizeStatusCategorie de rezultat sau de eșec pentru normalizarea de secvență și de document
TPdfContentNormalizeOptionsPolitica de normalizare și limitele de octeți și de token-uri per pagină
TPdfContentNormalizeReportStare, totaluri de octeți și de pagini, metrici de fluxuri și de token-uri, observații de sintaxă și text de diagnostic
TPdfContentResourceKindValori de resurse pcrkFont, pcrkXObject, pcrkExtGState, pcrkColorSpace, pcrkPattern, pcrkShading și pcrkProperties
TPdfContentResourceUseUn singur Name de resursă decodificat, împreună cu Kind-ul său
TPdfContentResourceUsesVector dinamic de utilizări de resurse colectate, în ordinea conținutului

Status values

ValoareSemnificație
pcnsNotStartedRaportul a fost inițializat, dar normalizarea nu s-a încheiat
pcnsCompletedNormalizarea s-a încheiat cu succes
pcnsInputLimitExceededIntrarea logică a depășit MaxInputBytesPerPage sau o limită configurată nu a fost pozitivă
pcnsOutputLimitExceededOcteții normalizați ar depăși MaxOutputBytesPerPage
pcnsTokenLimitExceededSecvența de conținut a depășit MaxTokensPerPage
pcnsMalformedTokenUn token de conținut PDF nu a putut fi citit complet
pcnsUnresolvedInlineImageLimita unei sarcini utile complete de imagine inline nu a putut fi găsită
pcnsUnbalancedStateEchilibrul cerut al domeniilor de grafică, text, conținut marcat, compatibilitate, vector sau dicționar a eșuat
pcnsUnsupportedFilterNormalizarea la nivel de document a întâlnit un filtru de flux de conținut pe care nu îl poate decodifica
pcnsEncryptedDocumentNormalizarea la nivel de document a refuzat intrarea criptată
pcnsSignedDocumentNormalizarea la nivel de document a refuzat intrarea semnată, fără autorizare
pcnsDocumentRewriteFailedRescrierea sau verificarea graficului de obiecte PDF care include a eșuat
pcnsResourceBudgetExceededTermenul limită al TPdfParserResourceBudget la nivel de proces a fost atins înainte ca normalizarea să se încheie

Options

FieldDescription
RemoveCommentsOmite comentariile PDF, păstrând limitele necesare de token-uri
RequireBalancedStateCere domenii echilibrate q/Q, BT/ET, de conținut marcat, de compatibilitate, de vector și de dicționar
CompressOutputPermite învelișului la nivel de document să comprime Flate un flux de pagină normalizat, când compresia îi reduce dimensiunea
SkipUnsafePagesPermite normalizării la nivel de document să păstreze o pagină neschimbată după un rezultat nesigur sau nesuportat, în loc să abandoneze rescrierea documentului
AllowSignedDocumentPermite explicit o rescriere completă a intrării semnate, ceea ce invalidează intervalele de octeți ale semnăturilor existente
MaxInputBytesPerPageNumăr maxim total de octeți de-a lungul fluxurilor de conținut furnizate, pentru o pagină
MaxOutputBytesPerPageNumăr maxim de octeți permis în secvența de conținut normalizată
MaxTokensPerPageNumăr maxim de token-uri inspectate pentru o pagină

Report fields

FieldDescription
StatusTPdfContentNormalizeStatus-ul curent
SourceByteCountTotalul octeților de conținut din sursă
OutputByteCountTotalul octeților de ieșire normalizați sau rescriși
PageCountPaginile inspectate de normalizarea la nivel de document
NormalizedPageCountPaginile înlocuite cu succes cu conținut normalizat
SkippedPageCountPaginile nesigure păstrate neschimbate, conform politicii de sărire
InputStreamCountFluxurile de conținut din sursă, reunite în secvențe logice de pagini
OutputStreamCountFluxurile de conținut normalizate produse
CoalescedArrayCountVectorii /Contents cu fluxuri multiple, înlocuiți de un singur flux normalizat
TokenCountToken-urile procesate
CommentCountComentariile întâlnite, fie păstrate, fie eliminate
InlineImageCountBlocurile complete de imagini inline păstrate
UnknownOperatorCountOperatorii nerecunoscuți păstrați întocmai
ErrorMessageText de diagnostic pentru primul eșec

Inline-image offsets

See Also

FPdfCompress, TPdf.SaveAsNormalizedContent