PDFium Component Docs

FPdfContentNormalize Moduł

Unit: FPdfContentNormalize
Zachowująca składnię normalizacja jednej logicznej sekwencji treści strony PDF i solidne wykrywanie granic obrazów 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 łączy dostarczone strumienie treści w porządku tablicy i tokenizuje wynik jako jedną logiczną sekwencję treści strony

Zachowuje literały łańcuchowe, łańcuchy szesnastkowe, nazwy, tablice, słowniki, ładunki obrazów inline i nieznane operatory, kanonicznie traktując separatory tokenów; komentarze można usuwać, a zbalansowanie struktury wymuszać

CollectPdfContentResourceUses odnotowuje nazwy zasobów konsumowane przez operatory tekstu, XObject, stanu graficznego, przestrzeni kolorów, wzorca, cieniowania, właściwości treści oznaczonej i obrazów inline w ramach centralnego budżetu tokenów

FindInlineImageBlock lokalizuje kompletny blok BI, ID i EI, nie traktując sekwencji bajtów EI wewnątrz danych ładunku obrazu jako terminatora

Constants

ConstantDescription
PdfContentNormalizeDefaultInputLimitDomyślny logiczny limit wejścia na stronę wynoszący 256 MiB
PdfContentNormalizeDefaultOutputLimitDomyślny znormalizowany limit wyjścia na stronę wynoszący 256 MiB
PdfContentNormalizeDefaultTokenLimitDomyślny limit na stronę wynoszący 10000000 tokenów

Functions

FunctionDescription
TPdfContentNormalizeOptions.DefaultWłącza usuwanie komentarzy, walidację zbalansowania, korzystną kompresję Flate i pomijanie niebezpiecznych stron; nie zezwala na przepisywanie podpisanych dokumentów i stosuje trzy domyślne limity
NormalizePdfContentSequenceZwraca znormalizowane bajty i szczegółowy raport albo False ze statusem niepowodzenia i tekstem diagnostycznym
CollectPdfContentResourceUsesZwraca rodzaj zasobu i zdekodowaną nazwę PDF dla każdego operatora treści konsumującego zasób albo False z tekstem diagnostycznym dla danych uszkodzonych lub przekraczających budżet
FindInlineImageBlockZwraca przesunięcia następnego kompletnego bloku obrazu inline pod lub za StartPos

Types

TypeDescription
TPdfContentNormalizeStatusWynik albo kategoria niepowodzenia dla normalizacji sekwencji i dokumentu
TPdfContentNormalizeOptionsPolityka normalizacji oraz limity bajtów i tokenów na stronę
TPdfContentNormalizeReportStatus, sumy bajtów i stron, metryki strumieni i tokenów, obserwacje składni oraz tekst diagnostyczny
TPdfContentResourceKindWartości zasobów pcrkFont, pcrkXObject, pcrkExtGState, pcrkColorSpace, pcrkPattern, pcrkShading i pcrkProperties
TPdfContentResourceUseJedna zdekodowana nazwa zasobu Name razem z jej Kind
TPdfContentResourceUsesTablica dynamiczna zebranych użyć zasobów w porządku treści

Status values

ValueMeaning
pcnsNotStartedRaport został zainicjalizowany, ale normalizacja się nie zakończyła
pcnsCompletedNormalizacja zakończyła się pomyślnie
pcnsInputLimitExceededLogiczne wejście przekroczyło MaxInputBytesPerPage albo skonfigurowany limit nie był dodatni
pcnsOutputLimitExceededZnormalizowane bajty przekroczyłyby MaxOutputBytesPerPage
pcnsTokenLimitExceededSekwencja treści przekroczyła MaxTokensPerPage
pcnsMalformedTokenToken treści PDF nie dał się odczytać w całości
pcnsUnresolvedInlineImageNie udało się znaleźć kompletnej granicy ładunku obrazu inline
pcnsUnbalancedStateWymagane zbalansowanie zakresów grafiki, tekstu, treści oznaczonej, kompatybilności, tablic lub słownika nie zostało spełnione
pcnsUnsupportedFilterNormalizacja dokumentowa napotkała filtr strumienia treści, którego nie umie zdekodować
pcnsEncryptedDocumentNormalizacja dokumentowa odmówiła zaszyfrowanego wejścia
pcnsSignedDocumentNormalizacja dokumentowa odmówiła podpisanego wejścia bez autoryzacji
pcnsDocumentRewriteFailedOtoczające przepisanie lub weryfikacja grafu obiektów PDF nie powiodła się
pcnsResourceBudgetExceededTermin ogólnoprocesowego TPdfParserResourceBudget upłynął, zanim normalizacja się zakończyła

Options

FieldDescription
RemoveCommentsPomija komentarze PDF, zachowując wymagane separatory tokenów
RequireBalancedStateWymaga zbalansowanych zakresów q/Q, BT/ET, treści oznaczonej, kompatybilności, tablic i słowników
CompressOutputZezwala otoczce dokumentowej na kompresję Flate znormalizowanego strumienia strony, gdy kompresja zmniejsza jego rozmiar
SkipUnsafePagesZezwala normalizacji dokumentowej zachować stronę bez zmian po niebezpiecznym lub nieobsługiwanym wyniku zamiast przerywać przepisanie dokumentu
AllowSignedDocumentJawnie zezwala na pełne przepisanie podpisanego wejścia, co unieważnia istniejące zakresy bajtów podpisów
MaxInputBytesPerPageMaksymalna łączna liczba bajtów w dostarczonych strumieniach treści dla jednej strony
MaxOutputBytesPerPageMaksymalna liczba bajtów dozwolona w znormalizowanej sekwencji treści
MaxTokensPerPageMaksymalna liczba tokenów inspekcjonowanych dla jednej strony

Report fields

FieldDescription
StatusBieżący TPdfContentNormalizeStatus
SourceByteCountŁączna liczba bajtów treści źródłowej
OutputByteCountŁączna liczba bajtów wyjścia znormalizowanego lub przepisanego
PageCountStrony zinspekcjonowane przez normalizację dokumentową
NormalizedPageCountStrony pomyślnie zastąpione znormalizowaną treścią
SkippedPageCountNiebezpieczne strony zachowane bez zmian w ramach polityki pomijania
InputStreamCountStrumienie treści źródłowej połączone w logiczne sekwencje stron
OutputStreamCountWyprodukowane znormalizowane strumienie treści
CoalescedArrayCountWielostrumieniowe tablice /Contents zastąpione jednym znormalizowanym strumieniem
TokenCountPrzetworzone tokeny
CommentCountNapotkane komentarze, niezależnie od tego, czy zachowane, czy usunięte
InlineImageCountZachowane kompletne bloki obrazów inline
UnknownOperatorCountNierozpoznane operatory zachowane dosłownie
ErrorMessageTekst diagnostyczny pierwszego niepowodzenia

Inline-image offsets

See Also

FPdfCompress, TPdf.SaveAsNormalizedContent