PDFium Delphi Component Docs

FPdfContentNormalize Unità

Unità: FPdfContentNormalize
Normalizzazione che preserva la sintassi di un'unica sequenza logica di contenuti di pagina PDF e robusto rilevamento dei confini delle immagini 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 concatena gli stream di contenuti forniti in ordine di array e tokenizza il risultato come un'unica sequenza logica di contenuti di pagina

Preserva stringhe letterali, stringhe esadecimali, nomi, array, dizionari, payload di immagini inline e operatori sconosciuti mentre canonizza la separazione dei token; i commenti possono essere rimossi e l'equilibrio strutturale può essere richiesto

CollectPdfContentResourceUses registra i nomi delle risorse consumate dagli operatori di testo, XObject, stato grafico, spazio colore, pattern, shading, proprietà di contenuto marcatore e immagini inline, nel rispetto del budget centrale di token

FindInlineImageBlock individua un blocco completo BI, ID ed EI senza trattare una sequenza di byte EI interna ai dati del payload dell'immagine come terminatore

Constants

ConstantDescription
PdfContentNormalizeDefaultInputLimitLimite logico di input predefinito per pagina di 256 MiB
PdfContentNormalizeDefaultOutputLimitLimite predefinito di output normalizzato per pagina di 256 MiB
PdfContentNormalizeDefaultTokenLimitLimite predefinito per pagina di 10000000 token

Functions

FunctionDescription
TPdfContentNormalizeOptions.DefaultAttiva la rimozione dei commenti, la validazione dell'equilibrio, la compressione Flate quando vantaggiosa e il salto delle pagine non sicure; non consente riscritture di documenti firmati e applica i tre limiti predefiniti
NormalizePdfContentSequenceRestituisce i byte normalizzati e un report dettagliato, oppure False con uno stato di fallimento e testo diagnostico
CollectPdfContentResourceUsesRestituisce il tipo di risorsa e il nome PDF decodificato per ogni operatore di contenuto che consuma risorse, oppure False con testo diagnostico per input malformati o oltre budget
FindInlineImageBlockRestituisce gli offset del prossimo blocco completo di immagine inline a partire da StartPos inclusa

Types

TypeDescription
TPdfContentNormalizeStatusEsito o categoria di fallimento per la normalizzazione di sequenze e documenti
TPdfContentNormalizeOptionsPolicy di normalizzazione e limiti di byte e token per pagina
TPdfContentNormalizeReportStato, totali di byte e pagine, metriche di stream e token, osservazioni sintattiche e testo diagnostico
TPdfContentResourceKindValori di risorsa pcrkFont, pcrkXObject, pcrkExtGState, pcrkColorSpace, pcrkPattern, pcrkShading e pcrkProperties
TPdfContentResourceUseUn Name di risorsa decodificato insieme al suo Kind
TPdfContentResourceUsesArray dinamico degli usi di risorse raccolti in ordine di contenuto

Status values

ValueMeaning
pcnsNotStartedIl report è stato inizializzato ma la normalizzazione non è stata completata
pcnsCompletedLa normalizzazione è stata completata con successo
pcnsInputLimitExceededL'input logico ha superato MaxInputBytesPerPage oppure un limite configurato non era positivo
pcnsOutputLimitExceededI byte normalizzati supererebbero MaxOutputBytesPerPage
pcnsTokenLimitExceededLa sequenza di contenuti ha superato MaxTokensPerPage
pcnsMalformedTokenUn token di contenuto PDF non poteva essere letto completamente
pcnsUnresolvedInlineImageNon è stato possibile trovare un confine completo del payload di un'immagine inline
pcnsUnbalancedStateIl bilanciamento richiesto di ambiti grafici, di testo, di contenuto marcatore, di compatibilità, di array o di dizionario è fallito
pcnsUnsupportedFilterLa normalizzazione a livello di documento ha incontrato un filtro di stream di contenuti che non sa decodificare
pcnsEncryptedDocumentLa normalizzazione a livello di documento ha rifiutato un input crittografato
pcnsSignedDocumentLa normalizzazione a livello di documento ha rifiutato un input firmato senza autorizzazione
pcnsDocumentRewriteFailedLa riscrittura o la verifica del grafo di oggetti PDF che contiene la sequenza è fallita
pcnsResourceBudgetExceededLa scadenza del TPdfParserResourceBudget a livello di processo è stata raggiunta prima che la normalizzazione fosse completata

Options

FieldDescription
RemoveCommentsOmette i commenti PDF conservando i confini di token necessari
RequireBalancedStateRichiede l'equilibrio degli ambiti q/Q, BT/ET, di contenuto marcatore, di compatibilità, di array e di dizionario
CompressOutputConsente al wrapper a livello di documento di comprimere Flate uno stream di pagina normalizzato quando la compressione ne riduce le dimensioni
SkipUnsafePagesConsente alla normalizzazione a livello di documento di preservare una pagina invariata dopo un risultato non sicuro o non supportato invece di interrompere la riscrittura del documento
AllowSignedDocumentConsente esplicitamente una riscrittura completa dell'input firmato, che invalida gli intervalli di byte delle firme esistenti
MaxInputBytesPerPageNumero massimo totale di byte attraverso gli stream di contenuti forniti per una pagina
MaxOutputBytesPerPageNumero massimo di byte consentito nella sequenza di contenuti normalizzata
MaxTokensPerPageNumero massimo di token esaminati per una pagina

Report fields

FieldDescription
StatusTPdfContentNormalizeStatus corrente
SourceByteCountTotale dei byte di contenuto sorgente
OutputByteCountTotale dei byte di output normalizzati o riscritti
PageCountPagine esaminate dalla normalizzazione a livello di documento
NormalizedPageCountPagine sostituite con successo con contenuti normalizzati
SkippedPageCountPagine non sicure preservate invariate sotto la policy di salto
InputStreamCountStream di contenuti sorgente concatenati in sequenze logiche di pagina
OutputStreamCountStream di contenuti normalizzati prodotti
CoalescedArrayCountArray /Contents multi-stream sostituiti da un unico stream normalizzato
TokenCountToken elaborati
CommentCountCommenti incontrati, siano essi conservati o rimossi
InlineImageCountBlocchi completi di immagini inline preservati
UnknownOperatorCountOperatori non riconosciuti preservati alla lettera
ErrorMessageTesto diagnostico per il primo fallimento

Inline-image offsets

See Also

FPdfCompress, TPdf.SaveAsNormalizedContent