PDFium Delphi Component Docs

יחידת FPdfContentNormalize

Unit: FPdfContentNormalize
נרמול משמר-תחביר של רצף תוכן-עמוד לוגי אחד של PDF, ואיתור עמיד לתקלות של גבולות תמונות 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 מחבר את זרמי התוכן שסופקו לפי סדר המערך ומבצע tokenization לתוצאה כרצף תוכן-עמוד לוגי אחד

הוא משמר מחרוזות literal, מחרוזות hex, שמות, מערכים, מילונים, מטענים של תמונות inline ואופרטורים לא מוכרים תוך קנוניזציה של הפרדת token; ניתן להסיר הערות ולחייב איזון מבני

CollectPdfContentResourceUses רושם את שמות המשאבים שנצרכים על ידי אופרטורי טקסט, XObject, מצב-גרפיקה, מרחב-צבע, pattern, shading, מאפיין תוכן-מסומן ותמונה-inline תחת תקציב ה-token המרכזי

FindInlineImageBlock מאתר בלוק BI, ‏ID ו-EI שלם מבלי להתייחס לרצף בתים EI בתוך מטען נתוני התמונה כסימן הסיום

Constants

ConstantDescription
PdfContentNormalizeDefaultInputLimitברירת מחדל של מגבלת קלט לוגית לכל עמוד: 256 MiB
PdfContentNormalizeDefaultOutputLimitברירת מחדל של מגבלת פלט מנורמל לכל עמוד: 256 MiB
PdfContentNormalizeDefaultTokenLimitברירת מחדל של מגבלת 10000000 token לכל עמוד

Functions

FunctionDescription
TPdfContentNormalizeOptions.Defaultמפעיל הסרת הערות, אימות איזון, דחיסת Flate מועילה, ודילוג על עמודים לא בטוחים; אוסר כתיבה מחדש של קלט חתום ומחיל את שלוש מגבלות הברירת מחדל
NormalizePdfContentSequenceמחזיר בתים מנורמלים ודוח מפורט, או False עם מצב כשל וטקסט אבחון
CollectPdfContentResourceUsesמחזיר את סוג המשאב ואת שם ה-PDF המפוענח עבור כל אופרטור תוכן צורך-משאב, או False עם טקסט אבחון עבור קלט פגום או שחרג מהתקציב
FindInlineImageBlockמחזיר היסטים עבור בלוק התמונה-inline השלם הבא ב-StartPos או אחריו

Types

TypeDescription
TPdfContentNormalizeStatusתוצאה או קטגוריית כשל עבור נרמול רצף ומסמך
TPdfContentNormalizeOptionsמדיניות נרמול ומגבלות בתים ו-token לכל עמוד
TPdfContentNormalizeReportמצב, סכומי בתים ועמודים, מדדי זרמים ו-token, תצפיות תחביר, וטקסט אבחון
TPdfContentResourceKindערכי משאב ‏pcrkFont, ‏pcrkXObject, ‏pcrkExtGState, ‏pcrkColorSpace, ‏pcrkPattern, ‏pcrkShading, ו-pcrkProperties
TPdfContentResourceUseשם משאב Name מפוענח אחד יחד עם ה-Kind שלו
TPdfContentResourceUsesמערך דינמי של שימושי משאבים שנאספו לפי סדר התוכן

Status values

ValueMeaning
pcnsNotStartedהדוח אותחל אך הנרמול לא הושלם
pcnsCompletedהנרמול הושלם בהצלחה
pcnsInputLimitExceededהקלט הלוגי חרג מ-MaxInputBytesPerPage או שמגבלה שהוגדרה לא הייתה חיובית
pcnsOutputLimitExceededהבתים המנורמלים היו חורגים מ-MaxOutputBytesPerPage
pcnsTokenLimitExceededרצף התוכן חרג מ-MaxTokensPerPage
pcnsMalformedTokentoken של תוכן PDF לא ניתן לקריאה מלאה
pcnsUnresolvedInlineImageלא נמצא גבול מטען של תמונה-inline שלם
pcnsUnbalancedStateנדרש איזון של היקפי גרפיקה, טקסט, תוכן-מסומן, תאימות, מערך או מילון, והוא נכשל
pcnsUnsupportedFilterנרמול ברמת-המסמך נתקל ב-filter של זרם תוכן שאינו יכול לפענח
pcnsEncryptedDocumentנרמול ברמת-המסמך סירב לקלט מוצפן
pcnsSignedDocumentנרמול ברמת-המסמך סירב לקלט חתום ללא הרשאה
pcnsDocumentRewriteFailedכתיבת ה-PDF המקיפה מחדש או האימות שלה נכשלו
pcnsResourceBudgetExceededהדדליין של TPdfParserResourceBudget ברמת-התהליך הושג לפני שהנרמול הושלם

Options

FieldDescription
RemoveCommentsמשמיט הערות PDF תוך שמירה על גבולות token נדרשים
RequireBalancedStateדורש איזון של q/Q, ‏BT/ET, תוכן-מסומן, תאימות, מערכים ומילונים
CompressOutputמתיר לעטיפה ברמת-המסמך לדחוס ב-Flate זרם עמוד מנורמל כאשר הדחיסה מקטינה את גודלו
SkipUnsafePagesמתיר לנרמול ברמת-המסמך להשאיר עמוד ללא שינוי לאחר תוצאה לא בטוחה או לא נתמכת, במקום לבטל את כתיבת המסמך מחדש
AllowSignedDocumentמתיר מפורשות כתיבה מחדש מלאה של קלט חתום, מה שמפסל טווחי בתים של חתימות קיימות
MaxInputBytesPerPageמקסימום סך בתים על פני זרמי התוכן שסופקו עבור עמוד אחד
MaxOutputBytesPerPageמקסימום בתים מותר ברצף התוכן המנורמל
MaxTokensPerPageמקסימום token שנבדקים עבור עמוד אחד

Report fields

FieldDescription
Statusה-TPdfContentNormalizeStatus הנוכחי
SourceByteCountסך בתי תוכן המקור
OutputByteCountסך בתי הפלט המנורמלים או שנכתבו מחדש
PageCountעמודים שנבדקו על ידי נרמול ברמת-המסמך
NormalizedPageCountעמודים שהוחלפו בהצלחה בתוכן מנורמל
SkippedPageCountעמודים לא בטוחים שהושארו ללא שינוי תחת מדיניות הדילוג
InputStreamCountזרמי תוכן מקור שחוברו לרצפי עמודים לוגיים
OutputStreamCountזרמי תוכן מנורמלים שהופקו
CoalescedArrayCountמערכי /Contents מרובי-זרמים שהוחלפו בזרם מנורמל יחיד
TokenCounttoken שעובדו
CommentCountהערות שנתקלו בהן, בין אם נשמרו ובין אם הוסרו
InlineImageCountבלוקי תמונה-inline שלמים שנשמרו
UnknownOperatorCountאופרטורים שלא זוהו ונשמרו כמות שהם
ErrorMessageטקסט אבחון עבור הכשל הראשון

Inline-image offsets

See Also

FPdfCompress, TPdf.SaveAsNormalizedContent