PDFium Delphi Component Docs

FPdfContentNormalize unit

Unit: FPdfContentNormalize
Normalisasi satu sequence konten-halaman PDF logis yang mempertahankan sintaks serta deteksi batas inline-image yang andal

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 menyambung content stream yang diberikan sesuai urutan array dan menokenisasi hasilnya sebagai satu sequence konten-halaman logis

Unit ini mempertahankan literal string, hex string, name, array, kamus, payload inline-image, dan operator yang tidak dikenal sambil mengkanonikalisasi pemisahan token; komentar dapat dihapus dan keseimbangan struktural dapat diwajibkan

CollectPdfContentResourceUses mencatat nama resource yang dikonsumsi operator teks, XObject, graphics-state, colour-space, pattern, shading, properti marked-content, dan inline-image di bawah anggaran token terpusat

FindInlineImageBlock menemukan blok BI, ID, dan EI yang lengkap tanpa menganggap urutan byte EI di dalam data payload gambar sebagai terminator

Constants

ConstantDescription
PdfContentNormalizeDefaultInputLimitBatas input logis per halaman bawaan sebesar 256 MiB
PdfContentNormalizeDefaultOutputLimitBatas keluaran ternormalisasi per halaman bawaan sebesar 256 MiB
PdfContentNormalizeDefaultTokenLimitBatas bawaan 10000000 token per halaman

Functions

FunctionDescription
TPdfContentNormalizeOptions.DefaultMengaktifkan penghapusan komentar, validasi keseimbangan, kompresi Flate yang menguntungkan, dan melewati halaman yang tidak aman; melarang penulisan ulang bertanda tangan dan menerapkan tiga batas bawaan
NormalizePdfContentSequenceMengembalikan byte ternormalisasi dan laporan terperinci, atau False dengan status kegagalan dan teks diagnostik
CollectPdfContentResourceUsesMengembalikan jenis resource dan name PDF terdekode untuk setiap operator konten yang mengonsumsi resource, atau False dengan teks diagnostik untuk input malformed atau melebihi anggaran
FindInlineImageBlockMengembalikan offset untuk blok inline-image lengkap berikutnya pada atau setelah StartPos

Types

TypeDescription
TPdfContentNormalizeStatusHasil atau kategori kegagalan untuk normalisasi sequence dan dokumen
TPdfContentNormalizeOptionsKebijakan normalisasi serta batas byte dan token per halaman
TPdfContentNormalizeReportStatus, total byte dan halaman, metrik stream dan token, pengamatan sintaks, dan teks diagnostik
TPdfContentResourceKindNilai resource pcrkFont, pcrkXObject, pcrkExtGState, pcrkColorSpace, pcrkPattern, pcrkShading, dan pcrkProperties
TPdfContentResourceUseSatu Name resource terdekode beserta Kind-nya
TPdfContentResourceUsesArray dinamis penggunaan resource yang terkumpul dalam urutan konten

Status values

ValueMeaning
pcnsNotStartedLaporan telah diinisialisasi tetapi normalisasi belum selesai
pcnsCompletedNormalisasi selesai dengan sukses
pcnsInputLimitExceededInput logis melampaui MaxInputBytesPerPage atau batas yang dikonfigurasi tidak positif
pcnsOutputLimitExceededByte ternormalisasi akan melampaui MaxOutputBytesPerPage
pcnsTokenLimitExceededSequence konten melampaui MaxTokensPerPage
pcnsMalformedTokenSatu token konten PDF tidak dapat dibaca secara lengkap
pcnsUnresolvedInlineImageBatas payload inline-image yang lengkap tidak dapat ditemukan
pcnsUnbalancedStateKeseimbangan cakupan graphics, teks, marked-content, kompatibilitas, array, atau kamus yang diwajibkan tidak terpenuhi
pcnsUnsupportedFilterNormalisasi tingkat dokumen menemui filter content stream yang tidak dapat didekodenya
pcnsEncryptedDocumentNormalisasi tingkat dokumen menolak input terenkripsi
pcnsSignedDocumentNormalisasi tingkat dokumen menolak input bertanda tangan tanpa otorisasi
pcnsDocumentRewriteFailedPenulisan ulang atau verifikasi graf objek PDF penampungnya gagal
pcnsResourceBudgetExceededDeadline TPdfParserResourceBudget tingkat proses tercapai sebelum normalisasi selesai

Options

FieldDescription
RemoveCommentsMenghilangkan komentar PDF sambil mempertahankan batas token yang diperlukan
RequireBalancedStateMewajibkan cakupan q/Q, BT/ET, marked-content, kompatibilitas, array, dan kamus yang seimbang
CompressOutputMengizinkan wrapper tingkat dokumen mengompresi Flate stream halaman ternormalisasi ketika kompresi mengurangi ukurannya
SkipUnsafePagesMengizinkan normalisasi tingkat dokumen mempertahankan halaman tidak berubah setelah hasil yang tidak aman atau tidak didukung, alih-alih membatalkan penulisan ulang dokumen
AllowSignedDocumentEksplisit mengizinkan penulisan ulang penuh input bertanda tangan, yang membatalkan rentang byte tanda tangan yang ada
MaxInputBytesPerPageTotal byte maksimum lintas content stream yang diberikan untuk satu halaman
MaxOutputBytesPerPageByte maksimum yang diizinkan dalam sequence konten ternormalisasi
MaxTokensPerPageJumlah token maksimum yang diperiksa untuk satu halaman

Report fields

FieldDescription
StatusTPdfContentNormalizeStatus saat ini
SourceByteCountTotal byte konten sumber
OutputByteCountTotal byte keluaran ternormalisasi atau tertulis ulang
PageCountHalaman yang diperiksa oleh normalisasi tingkat dokumen
NormalizedPageCountHalaman yang berhasil diganti dengan konten ternormalisasi
SkippedPageCountHalaman tidak aman yang dipertahankan tidak berubah di bawah kebijakan skip
InputStreamCountContent stream sumber yang disambung menjadi sequence halaman logis
OutputStreamCountContent stream ternormalisasi yang dihasilkan
CoalescedArrayCountArray /Contents multi-stream yang diganti satu stream ternormalisasi
TokenCountToken yang diproses
CommentCountKomentar yang ditemui, baik dipertahankan maupun dihapus
InlineImageCountBlok inline-image lengkap yang dipertahankan
UnknownOperatorCountOperator tak dikenal yang dipertahankan apa adanya
ErrorMessageTeks diagnostik untuk kegagalan pertama

Inline-image offsets

See Also

FPdfCompress, TPdf.SaveAsNormalizedContent