PDFium Delphi Component Docs

FPdfContentNormalize modulis

Modulis: FPdfContentNormalize
Sintaksę išlaikantis vienos loginės PDF puslapio turinio sekos normalizavimas ir patikimas inline paveikslų ribų aptikimas

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 sujungia pateiktus turinio srautus masyvo tvarka ir rezultatą suskaido į žetonus kaip vieną loginę puslapio turinio seką

Ji išlaiko literaliąsias eilutes, šešioliktaines eilutes, vardus, masyvus, žodynus, inline paveikslų duomenų paketus ir nepažįstamus operatorius, kanonizuodama žetonų atskyrimą; komentarai gali būti pašalinami, o struktūrinis subalansuotumas gali būti reikalaujamas

CollectPdfContentResourceUses užregistruoja išteklių vardus, kuriuos sunaudoja teksto, XObject, grafikos būsenos, spalvų erdvės, rašto, šešėliavimo, pažymėto turinio savybių ir inline paveikslų operatoriai, esant centralizuotam žetonų biudžetui

FindInlineImageBlock suranda pilną BI, ID ir EI bloką, laikydama EI baitų seką paveikslo duomenų paketo viduje ne terminatoriumi

Constants

ConstantDescription
PdfContentNormalizeDefaultInputLimitNumatytoji vieno puslapio loginės įvesties riba 256 MiB
PdfContentNormalizeDefaultOutputLimitNumatytoji vieno puslapio normalizuotos išvesties riba 256 MiB
PdfContentNormalizeDefaultTokenLimitNumatytoji vieno puslapio riba 10000000 žetonų

Functions

FunctionDescription
TPdfContentNormalizeOptions.DefaultĮjungia komentarų pašalinimą, subalansuotumo tikrinimą, naudingą Flate glaudinimą ir nesaugių puslapių praleidimą; draudžia pasirašytus perrašymus ir taiko tris numatytąsias ribas
NormalizePdfContentSequenceGrąžina normalizuotus baitus ir išsamią ataskaitą, arba False su nesėkmės būsena ir diagnostiniu tekstu
CollectPdfContentResourceUsesGrąžina išteklių rūšį ir dekoduotą PDF vardą kiekvienam išteklius naudojančiam turinio operatoriui, arba False su diagnostiniu tekstu netinkamai suformuotai arba biudžetą viršijančiai įvesčiai
FindInlineImageBlockGrąžina kito pilno inline paveikslo bloko, esančio StartPos arba vėliau, poslinkius

Types

TypeDescription
TPdfContentNormalizeStatusIšeities arba nesėkmės kategorija sekų ir dokumentų normalizavimui
TPdfContentNormalizeOptionsNormalizavimo politika ir vieno puslapio baitų bei žetonų ribos
TPdfContentNormalizeReportBūsena, baitų ir puslapių sumos, srautų ir žetonų metrika, sintaksės stebėjimai ir diagnostinis tekstas
TPdfContentResourceKindIšteklių reikšmės pcrkFont, pcrkXObject, pcrkExtGState, pcrkColorSpace, pcrkPattern, pcrkShading ir pcrkProperties
TPdfContentResourceUseVienas dekoduotas ištekliaus Name kartu su jo Kind
TPdfContentResourceUsesDinaminis surinktų išteklių naudojimų masyvas turinio tvarka

Status values

ReikšmėReikšmė
pcnsNotStartedAtaskaita inicijuota, bet normalizavimas neužbaigtas
pcnsCompletedNormalizavimas sėkmingai užbaigtas
pcnsInputLimitExceededLoginė įvestis viršijo MaxInputBytesPerPage arba sukonfigūruota riba nebuvo teigiama
pcnsOutputLimitExceededNormalizuoti baitai viršytų MaxOutputBytesPerPage
pcnsTokenLimitExceededTurinio seka viršijo MaxTokensPerPage
pcnsMalformedTokenPDF turinio žetono nepavyko perskaityti pilnai
pcnsUnresolvedInlineImageNepavyko rasti pilnos inline paveikslo duomenų paketo ribos
pcnsUnbalancedStateReikalautas grafikos, teksto, pažymėto turinio, suderinamumo, masyvų arba žodynų sričių subalansuotumas nepavyko
pcnsUnsupportedFilterDokumento lygio normalizavimas susidūrė su jam nedekoduojamu turinio srauto filtru
pcnsEncryptedDocumentDokumento lygio normalizavimas atsisakė šifruotos įvesties
pcnsSignedDocumentDokumento lygio normalizavimas be įgaliojimo atsisakė pasirašytos įvesties
pcnsDocumentRewriteFailedGaubiantis PDF objekto grafo perrašymas arba tikrinimas nepavyko
pcnsResourceBudgetExceededVisą procesą apimantis TPdfParserResourceBudget terminas pasiektas anksčiau nei normalizavimas užbaigtas

Options

LaukasAprašas
RemoveCommentsPraleidžia PDF komentarus išlaikydama būtinas žetonų ribas
RequireBalancedStateReikalauja subalansuotų q/Q, BT/ET, pažymėto turinio, suderinamumo, masyvų ir žodynų sričių
CompressOutputLeidžia dokumento lygio gaubikliui Flate suglaudinti normalizuotą puslapio srautą, kai glaudinimas sumažina jo dydį
SkipUnsafePagesLeidžia dokumento lygio normalizavimui po nesaugaus arba nepalaikomo rezultato išlaikyti puslapį nepakeistą vietoje dokumento perrašymo nutraukimo
AllowSignedDocumentAiškiai leidžia pilną pasirašytos įvesties perrašymą, kuris panaikina esamas parašo baitų rėžius
MaxInputBytesPerPageDidžiausias bendras baitų skaičius pateiktuose turinio srautuose vienam puslapiui
MaxOutputBytesPerPageDidžiausias leistinas baitų skaičius normalizuotoje turinio sekoje
MaxTokensPerPageDidžiausias vienam puslapiui peržiūrimų žetonų skaičius

Report fields

LaukasAprašas
StatusDabartinė TPdfContentNormalizeStatus
SourceByteCountBendras šaltinio turinio baitų skaičius
OutputByteCountBendras normalizuotų arba perrašytų išvesties baitų skaičius
PageCountPuslapiai, kuriuos apžiūrėjo dokumento lygio normalizavimas
NormalizedPageCountPuslapiai, sėkmingai pakeisti normalizuotu turiniu
SkippedPageCountNesaugūs puslapiai, pagal praleidimo politiką išlaikyti nepakeisti
InputStreamCountŠaltinio turinio srautai, sujungti į logines puslapių sekas
OutputStreamCountSugeneruoti normalizuoti turinio srautai
CoalescedArrayCountDaugiasraučiai /Contents masyvai, pakeisti viena normalizuotu srautu
TokenCountApdoroti žetonai
CommentCountSutikti komentarai, nesvarbu, ar išlaikyti, ar pašalinti
InlineImageCountIšlaikyti pilni inline paveikslų blokai
UnknownOperatorCountNeatpažinti operatoriai, išlaikyti žodis į žodį
ErrorMessagePirmosios nesėkmės diagnostinis tekstas

Inline-image offsets

See Also

FPdfCompress, TPdf.SaveAsNormalizedContent