PDFium Delphi Component Docs

FPdfContentNormalize واحد

واحد: FPdfContentNormalize
نرمال‌سازی حافظ نحوِ یک توالی محتوای منطقی صفحهٔ PDF و تشخیص مقاوم مرز تصویر درون‌خطی

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 جریان‌های محتوای داده‌شده را به ترتیب آرایه به هم می‌چسباند و نتیجه را به‌عنوان یک توالی محتوای منطقی صفحه توکن‌گذاری می‌کند

در حالی که جداسازی توکن‌ها را کانونیک می‌کند، رشته‌های لفظی، رشته‌های hex، نام‌ها، آرایه‌ها، دیکشنری‌ها، بارهای تصویر درون‌خطی و عملگرهای ناشناخته را حفظ می‌کند؛ کامنت‌ها را می‌توان حذف کرد و تعادل ساختاری را می‌توان الزامی کرد

CollectPdfContentResourceUses نام‌های منابع مصرف‌شده توسط عملگرهای متن، XObject، حالت گرافیکی، فضای رنگ، الگو، shading، ویژگی marked-content و تصویر درون‌خطی را زیر بودجهٔ مرکزی توکن ثبت می‌کند

FindInlineImageBlock یک بلوک کامل BI، ID و EI را پیدا می‌کند، بدون اینکه دنبالهٔ بایتی EI درون دادهٔ بار تصویر را پایان‌دهنده بگیرد

Constants

ConstantDescription
PdfContentNormalizeDefaultInputLimitکران ورودی منطقی پیش‌فرض هر صفحه برابر ۲۵۶ MiB
PdfContentNormalizeDefaultOutputLimitکران خروجی نرمال‌شدهٔ پیش‌فرض هر صفحه برابر ۲۵۶ MiB
PdfContentNormalizeDefaultTokenLimitکران پیش‌فرض هر صفحه برابر ۱۰۰۰۰۰۰۰ توکن

Functions

FunctionDescription
TPdfContentNormalizeOptions.Defaultحذف کامنت، اعتبارسنجی تعادل، فشرده‌سازی سودمند Flate و پرش از صفحات ناامن را فعال می‌کند؛ بازنویسی امضاشده را مجاز نمی‌داند و سه کران پیش‌فرض را اعمال می‌کند
NormalizePdfContentSequenceبایت‌های نرمال‌شده و گزارشی تفصیلی را برمی‌گرداند، یا False را با وضعیت شکست و متن تشخیصی
CollectPdfContentResourceUsesبرای هر عملگر مصرف‌کنندهٔ منبع، نوع منبع و نام PDF رمزگشایی‌شده را برمی‌گرداند، یا False را با متن تشخیصی برای ورودی بدساخت یا فراتر از بودجه
FindInlineImageBlockآفست‌های بلوک کامل تصویر درون‌خطی بعدی را در StartPos یا پس از آن برمی‌گرداند

Types

TypeDescription
TPdfContentNormalizeStatusپیامد یا دستهٔ شکست برای نرمال‌سازی توالی و سند
TPdfContentNormalizeOptionsسیاست نرمال‌سازی و کران‌های بایت و توکن هر صفحه
TPdfContentNormalizeReportوضعیت، جمع بایت و صفحه، سنجه‌های جریان و توکن، مشاهده‌های نحوی و متن تشخیصی
TPdfContentResourceKindمقادیر منبع pcrkFont، pcrkXObject، pcrkExtGState، pcrkColorSpace، pcrkPattern، pcrkShading و pcrkProperties
TPdfContentResourceUseیک Name منبع رمزگشایی‌شده به همراه Kind آن
TPdfContentResourceUsesآرایهٔ پویای مصرف‌های منبع جمع‌آوری‌شده به ترتیب محتوا

Status values

ValueMeaning
pcnsNotStartedگزارش مقداردهی اولیه شده اما نرمال‌سازی کامل نشده است
pcnsCompletedنرمال‌سازی با موفقیت کامل شد
pcnsInputLimitExceededورودی منطقی از MaxInputBytesPerPage فراتر رفت یا یکی از کران‌های پیکربندی‌شده مثبت نبود
pcnsOutputLimitExceededبایت‌های نرمال‌شده از MaxOutputBytesPerPage فراتر می‌رفتند
pcnsTokenLimitExceededتوالی محتوا از MaxTokensPerPage فراتر رفت
pcnsMalformedTokenیک توکن محتوای PDF را نمی‌شد به‌طور کامل خواند
pcnsUnresolvedInlineImageمرز کامل یک بار تصویر درون‌خطی پیدا نشد
pcnsUnbalancedStateتعادل الزامی قلمروهای گرافیک، متن، marked-content، سازگاری، آرایه یا دیکشنری برآورده نشد
pcnsUnsupportedFilterنرمال‌سازی در سطح سند با فیلتری در جریان محتوا روبه‌رو شد که نمی‌تواند رمزگشایی کند
pcnsEncryptedDocumentنرمال‌سازی در سطح سند از ورودی رمزنگاری‌شده سر باز زد
pcnsSignedDocumentنرمال‌سازی در سطح سند بدون مجوز از ورودی امضاشده سر باز زد
pcnsDocumentRewriteFailedبازنویسی یا راستی‌آزمایی گراف اشیاء PDF دربرگیرنده شکست خورد
pcnsResourceBudgetExceededمهلت TPdfParserResourceBudget در سطح فرایند پیش از کامل‌شدن نرمال‌سازی پایان یافت

Options

FieldDescription
RemoveCommentsکامنت‌های PDF را در عین حفظ مرزهای توکن لازم حذف می‌کند
RequireBalancedStateتعادل قلمروهای q/Q، BT/ET، marked-content، سازگاری، آرایه و دیکشنری را الزامی می‌کند
CompressOutputبه پوشش در سطح سند اجازه می‌دهد یک جریان صفحهٔ نرمال‌شده را وقتی فشرده‌سازی اندازه‌اش را کم کند با Flate فشرده کند
SkipUnsafePagesبه نرمال‌سازی در سطح سند اجازه می‌دهد پس از یک نتیجهٔ ناامن یا پشتیبانی‌نشده، صفحه‌ای را بدون تغییر حفظ کند به‌جای آنکه بازنویسی سند را رها کند
AllowSignedDocumentبازنویسی کامل ورودی امضاشده را صریحاً مجاز می‌کند، که بازه‌های بایتی امضای موجود را بی‌اعتبار می‌سازد
MaxInputBytesPerPageبیشینهٔ جمع بایت‌ها روی جریان‌های محتوای داده‌شده برای یک صفحه
MaxOutputBytesPerPageبیشینهٔ بایت مجاز در توالی محتوای نرمال‌شده
MaxTokensPerPageبیشینهٔ شمار توکن‌های بازرسی‌شده برای یک صفحه

Report fields

FieldDescription
StatusTPdfContentNormalizeStatus فعلی
SourceByteCountجمع بایت‌های محتوای منبع
OutputByteCountجمع بایت‌های خروجی نرمال‌شده یا بازنویسی‌شده
PageCountصفحاتی که نرمال‌سازی در سطح سند بازرسی کرده است
NormalizedPageCountصفحاتی که با موفقیت با محتوای نرمال‌شده جایگزین شده‌اند
SkippedPageCountصفحات ناامنی که زیر سیاست پرش بدون تغییر حفظ شده‌اند
InputStreamCountجریان‌های محتوای منبع که به توالی‌های صفحهٔ منطقی چسبیده‌اند
OutputStreamCountجریان‌های محتوای نرمال‌شدهٔ تولیدشده
CoalescedArrayCountآرایه‌های چندجریانی /Contents که با یک جریان نرمال‌شدهٔ واحد جایگزین شده‌اند
TokenCountتوکن‌های پردازش‌شده
CommentCountکامنت‌های مشاهده‌شده، چه حفظ‌شده و چه حذف‌شده
InlineImageCountبلوک‌های کامل تصویر درون‌خطیِ حفظ‌شده
UnknownOperatorCountعملگرهای ناشناخته‌ای که عیناً حفظ شده‌اند
ErrorMessageمتن تشخیصی برای نخستین شکست

Inline-image offsets

See Also

FPdfCompress, TPdf.SaveAsNormalizedContent