يحتوي FPdfCompress على مُحوِّلات التيار العامة المستخدمة بعد أن يُسلسل PDFium مستندًا، إضافة إلى سجلات تضبط كل مُحوِّل وتُبلِّغ عن نتيجته
تجسد مساعدات إعادة الكتابة الكاملة مخطط الكائنات النشط، وتحفظ المراجع المتقاطعة أو تعيد بناءها عمدًا، وترفض المدخلات التي لا يمكن إعادة كتابتها بأمان؛ وتعيد الإجراءات القائمة على التقارير الإخفاقات عبر Succeeded و ErrorMessage
تستخدم معظم التطبيقات أساليب الحفظ والفحص ومخطط الكائنات المقابلة في TPdf، بينما تبقى إجراءات الوحدة متاحة للمستدعين الذين يملكون أصلًا تيارات PDF مُسلسلة
TPdfTreeEditor = class
class function TryLoad(Source: TStream; Kind: TPdfTreeKind;
const RootReference: TPdfTreeObjectReference;
const Options: TPdfTreeEditOptions; out Editor: TPdfTreeEditor;
out Report: TPdfTreeValidationReport): Boolean; static;
class function Load(Source: TStream; Kind: TPdfTreeKind;
const RootReference: TPdfTreeObjectReference;
const Options: TPdfTreeEditOptions): TPdfTreeEditor; static;
function UpsertName(const Key, RawValue: AnsiString): Boolean;
function UpsertNumber(Key: Int64; const RawValue: AnsiString): Boolean;
function RemoveName(const Key: AnsiString): Boolean;
function RemoveNumber(Key: Int64): Boolean;
procedure Clear;
function Validate(out Report: TPdfTreeValidationReport): Boolean;
function BuildBalancedObjects(out Objects: TPdfTreeSerializedObjects;
out Report: TPdfTreeValidationReport): Boolean;
function SaveIncremental(Source, Dest: TStream;
out Report: TPdfTreeValidationReport): Boolean;
property Count: Integer;
property Entries[Index: Integer]: TPdfTreeEntry; default;
end;
TPdfOutlineEditor = class
class function TryLoad(Source: TStream;
const Options: TPdfOutlineEditOptions; out Editor: TPdfOutlineEditor;
out Report: TPdfOutlineValidationReport): Boolean; static;
class function Load(Source: TStream;
const Options: TPdfOutlineEditOptions): TPdfOutlineEditor; static;
function Add(ParentId, SiblingIndex: Integer; const Title: WideString;
PageNumber: Integer): Integer;
function Delete(Id: Integer): Boolean;
function Move(Id, NewParentId, SiblingIndex: Integer): Boolean;
procedure SetTitle(Id: Integer; const Title: WideString);
procedure SetStyle(Id: Integer; const Style: TPdfOutlineStyle);
procedure SetExpanded(Id: Integer; Expanded: Boolean);
procedure SetColor(Id: Integer; Red, Green, Blue: Single);
procedure ClearColor(Id: Integer);
procedure Retarget(Id, PageNumber: Integer;
const DestinationSuffix: AnsiString = '/Fit';
DestinationInAction: Boolean = False);
function ApplyPageMap(const NewPageNumbers: array of Integer;
DeleteDangling: Boolean; out Report: TPdfOutlineValidationReport): Boolean;
function Validate(out Report: TPdfOutlineValidationReport): Boolean;
function SaveIncremental(Source, Dest: TStream;
out Report: TPdfOutlineValidationReport): Boolean;
property Count: Integer;
property Items[Index: Integer]: TPdfOutlineItem; default;
end;
TPdfCrossDocumentGraftMap = class
constructor Create(const SourceIdentity: AnsiString);
procedure Clear;
function TryResolve(const Source: TPdfGraftObjectReference;
out Destination: TPdfGraftObjectReference): Boolean;
procedure Add(const Source, Destination: TPdfGraftObjectReference);
property Count: Integer;
property Entries[Index: Integer]: TPdfGraftMapEntry; default;
property SourceIdentity: AnsiString;
end;
TPdfSparseDictionaryReader = class
constructor Create(Source: TStream);
function ReadDictionary(ObjectNumber, Generation: Integer;
out Dictionary: AnsiString): Boolean;
function ReadLatestDictionary(ObjectNumber: Integer;
out Generation: Integer; out Dictionary: AnsiString): Boolean;
function ReadDecodedStream(ObjectNumber, Generation,
MaximumDecodedBytes: Integer; out Data: TBytes): Boolean;
property Valid: Boolean;
end;
procedure CompressPdfStream(Source, Dest: TStream);
procedure LinearizePdfStream(Source, Dest: TStream);
procedure PackPdfObjectStreams(Source, Dest: TStream;
MaxObjectsPerStream: Integer = 100;
MaxDecodedBytesPerStream: Integer = 65536);
procedure NormalizePdfDocumentContent(Source, Dest: TStream;
const Options: TPdfContentNormalizeOptions;
out Report: TPdfContentNormalizeReport);
function GraftPdfAcroForm(Source, Destination, Output: TStream;
const PageMappings: TPdfGraftPageMappings;
const Options: TPdfAcroFormGraftOptions;
GraftMap: TPdfCrossDocumentGraftMap;
out Report: TPdfAcroFormGraftReport): Boolean;
procedure PruneUnreachablePdfStream(Source, Dest: TStream;
out Report: TPdfPruneReport);
procedure PruneUnusedPdfResources(Source, Dest: TStream;
out Report: TPdfResourcePruneReport;
AllowSignedDocument: Boolean = False);
procedure DeduplicateResourcesPdfStream(Source, Dest: TStream;
out Report: TPdfDedupReport);
procedure RecompressFlatePdfStream(Source, Dest: TStream;
const Options: TPdfFlateRecompressOptions;
out Report: TPdfFlateRecompressReport);
procedure ExternaliseInlineImagesPdfStream(Source, Dest: TStream;
const Options: TPdfInlineImageExternaliseOptions;
out Report: TPdfInlineImageExternaliseReport);
procedure ReproduciblePdfStream(Source, Dest: TStream;
out Report: TPdfReproducibleReport);
procedure AppendPdfDirtyRevision(BaselineState, CurrentState,
PreviousOutput, Dest: TStream; out ChangedObjectCount: Integer;
out AppendedByteCount: Int64);
procedure ApplyDefaultOpenAction(Source, Dest: TStream;
PdfVersion: Integer = 0);
procedure PageLabelledPdfStream(Source, Dest: TStream;
const Ranges: TPdfPageLabelRanges; ReplaceExisting: Boolean;
out Report: TPdfPageLabelReport);
procedure InspectOptionalContentPdfStream(Source: TStream;
Usage: TPdfOptionalContentUsage; ConfigurationIndex: Integer;
out Inventory: TPdfOptionalContentInventory);
procedure ConfigureOptionalContentPdfStream(Source, Dest: TStream;
const Changes: TPdfOptionalContentStateChanges;
const Options: TPdfOptionalContentConfigureOptions;
out Report: TPdfOptionalContentConfigureReport);
procedure SanitiseActiveContentPdfStream(Source, Dest: TStream;
const Options: TPdfSanitiseOptions;
out Report: TPdfSanitiseReport);
procedure SanitiseActiveContentPdfStream(Source, Dest,
PruneWorkspace: TStream; const Options: TPdfSanitiseOptions;
out Report: TPdfSanitiseReport);
procedure ExportPdfObjectGraph(Source, Dest: TStream;
const Options: TPdfObjectGraphInspectOptions;
out Report: TPdfObjectGraphReport);
procedure PatchPdfObjectGraph(Source, Dest: TStream;
const Operations: TPdfObjectPatchOperations;
out Report: TPdfObjectGraphReport;
AllowSignedDocument: Boolean = False);
procedure PostProcessSavedPdf(Source, Dest: TStream;
PdfVersion: Integer = 0);
procedure PostProcessSavedPdf(Source, Dest, NormalizedWorkspace,
RepairedWorkspace, ValidationWorkspace: TStream;
PdfVersion: Integer = 0);
procedure RepairSubsetToUnicodeCMaps(Source, Dest: TStream);
function ReadPdfVersionInfo(Source: TStream; out Info: TPdfVersionInfo;
out ErrorText: string): Boolean;
function ReadPdfSparseRevisionInfo(Source: TStream;
out Info: TPdfSparseRevisionInfo): Boolean;
function ComposePdfSparseUpdateId(Source: TStream;
const Info: TPdfSparseRevisionInfo;
const DocumentId, InstanceId: TBytes): AnsiString;
function ReadPdfSparseCatalogSubDict(Source: TStream;
const Name: AnsiString; out SubDict: AnsiString): Boolean;
function ReadPdfSparsePageDictionaries(Source: TStream;
out Pages: TPdfSparsePageDictionaries): Boolean;
| العنصر القابل للاستدعاء | الوصف |
|---|---|
TPdfTreeEditor.TryLoad | يحمّل ويتحقق من شجرة NameTree أو NumberTree غير مباشرة واحدة عبر بحث متفرق بجيل تام، ويعيد أدلة بنائية دون رفع استثناء للإدخال المشوَّه |
TPdfTreeEditor.Load | يحمّل شجرة واحدة ويرفع استثناءً مع خطأ التحقق عندما تكون البنية غير آمنة للتحرير |
TPdfTreeEditor.UpsertName و UpsertNumber | يدرجان إدخالًا مرتبًا واحدًا أو يستبدلانه مع حفظ قيمته الخام الكاملة بصيغة PDF، بما في ذلك المراجع غير المباشرة والكائنات المركبة |
TPdfTreeEditor.RemoveName, RemoveNumber, و Clear | يزيلون الإدخالات المنتقاة أو يفرغون الشجرة قبل إعادة الموازنة الحتمية |
TPdfTreeEditor.Validate | يفحص ترتيب المفاتيح والمفاتيح المكررة والقيم الخام وحدود الإدخالات وثوابت المحرِّر الحالية |
TPdfTreeEditor.BuildBalancedObjects | يبني عقدًا ورقية وداخلية محدودة بقيم /Limits تامة، ويحفظ هُوية الجذر، ويعيد استخدام مراجع العقد غير المباشرة المحمَّلة المتوافقة كلما أمكن |
TPdfTreeEditor.SaveIncremental | يلحق الكائنات الموازَنة كمراجعة تزايدية مُتحقق منها ويعيد تحميل النتيجة بشكل مستقل قبل الإبلاغ عن النجاح |
TPdfOutlineEditor.TryLoad و Load | يقرآن تسلسلًا هرميًا للفهرسة عبر بحث متفرق بجيل تام، ويتحققان من روابط الأب والإخوة، ويكشفان الحلقات، ويحفظان الوجهات والإجراءات غير المدعومة كإدخالات قاموس معتمة |
TPdfOutlineEditor.Add, Delete, و Move | يحررون أشجار فهرسة فرعية كاملة بمعرِّفات عناصر مستقرة مع صيانة ترتيب الإخوة بالعمق أولًا |
TPdfOutlineEditor.SetTitle, SetStyle, SetExpanded, SetColor, و ClearColor | يحدّثون عرض الفهرسة المرئي دون إسقاط إدخالات قاموس العنصر غير المميزة |
TPdfOutlineEditor.Retarget | يعيّن وجهة صفحة صريحة تبدأ من واحد كبيانات /Dest مباشرة أو كإجراء GoTo مع لاحقة وجهة مُتحقق منها |
TPdfOutlineEditor.ApplyPageMap | يستهلك الخرط الوجهي المبدوء من واحد الناتج عن التحقق من خطة الصفحات، ويحدّث الوجهات الصريحة الباقية، ويزيل الأشجار الفرعية المعلقة أو يُبلِّغ عنها |
TPdfOutlineEditor.SaveIncremental | يعيد بناء إدخالات الجذر والأب والإخوة والأبناء والعدد والنمط واللون والوجهات، ويلحق مراجعة تزايدية، ويعيد تحميل النتيجة الدلالية بشكل مستقل قبل النجاح |
TPdfCrossDocumentGraftMap.Create | يربط خرطات كائنات غير مباشرة من المصدر إلى الوجهة قابلة لإعادة الاستخدام بهُوية مصدر واحدة يزودها المستدعي |
TPdfCrossDocumentGraftMap.Add و TryResolve | يخزنان ويحلان أزواج رقم كائن وجيل تامة، ويقبلان التكرارات المتطابقة، ويرفضان الوجهات المتضاربة |
GraftPdfAcroForm | يستورد التسلسلات الهرمية للحقول وعناصر الواجهة والمظاهر وترتيب الحساب والموارد الافتراضية والإجراءات والقيم إلى صفحات الوجهة المُخرَطة، ويلحق مراجعة تزايدية متفرقة، ويعيد تحميل النتيجة بشكل مستقل قبل النجاح |
CompressPdfStream | يضغط تيارات غير مضغوطة مؤهلة بـ Flate ويعيد بناء بنية PDF المُسلسلة |
LinearizePdfStream | يعيد ترتيب مخطط الكائنات النشط وترقيمه إلى تخطيط PDF مميَّع (linearized) مع بيانات تلميح الصفحة الأولى والكائنات المشتركة |
PackPdfObjectStreams | يحزم كائنات غير تيارية مؤهلة في مجموعات ObjStm محدودة ويكتب تيار مراجع متقاطعة؛ ويجب أن يكون حدّا التجميع موجبين معًا |
NormalizePdfDocumentContent | يطبّع كل تسلسل محتوى صفحات بـ TPdfContentNormalizeOptions ويعيد TPdfContentNormalizeReport على مستوى المستند |
PruneUnreachablePdfStream | يعيد كتابة الكائنات القابلة للوصول من الفهرس فقط في مراجعة كلاسيكية واحدة مع حفظ أرقام الكائنات والأجيال الباقية |
PruneUnusedPdfResources | يمسح معامِلات المحتوى المفكوكة في نطاقات موارد الصفحات والموروثة و Form XObject والأنماط والمظاهر والمتداخلة، ويزيل أسماء الموارد غير المستخدمة فقط، ويلحق مراجعة متفرقة، ويقلّص الكائنات التي أصبحت غير قابلة للوصول |
DeduplicateResourcesPdfStream | يقلّص الكائنات غير القابلة للوصول ويدمج الأشجار الفرعية المتطابقة بايتيًا من الخطوط والصور و Form XObject |
RecompressFlatePdfStream | يفك ترميز التيارات FlateDecode القابلة للوصول ويعيد ضغطها عند تحقق عتبتي التوفير المطلوبتين معًا |
ExternaliseInlineImagesPdfStream | ينقل كتل الصور المضمّنة إلى XObjects للصور، ويحدّث موارد الصفحات، ويعيد كتابة تيارات المحتوى المتأثرة |
ReproduciblePdfStream | ينتج مخرجات حتمية بمراجعة واحدة عبر تقليص الكائنات غير القابلة للوصول، وإزالة الطوابع الزمنية من Info، وإسقاط /ID للمصدر |
AppendPdfDirtyRevision | يقارن لقطات خط الأساس والدلالية الحالية، ويلحق الكائنات غير المباشرة المتغيرة أو الجديدة إلى المخرجات السابقة، ويُبلِّغ عن عدّادات ما أُلحق |
AppendEncryptedPdfDirtyRevision | يلحق الكائنات غير المباشرة المتغيرة أو الجديدة في سياق التعمية الموروث ويتحقق من مصادقة المراجعة أو يجددها |
ApplyDefaultOpenAction | يحقن إجراء فتح Fit-Height للصفحة الأولى عند غيابه وسماح إصدار PDF المنتقى بذلك، مستخدمًا نوافذ تيار محدودة وبحثًا متفرقًا كاسولًا عبر مراجعات كلاسيكية وتيارات xref ومختلطة وتيارات كائنات |
PageLabelledPdfStream | يكتب شجرة أعداد /PageLabels للفهرس من مدى مبدوء من الصفر ويستبدل اختياريًا شجرة موجودة، مستخدمًا نوافذ تيار محدودة وبحثًا متفرقًا في الفهرس على مسار xref العادي |
InspectOptionalContentPdfStream | يقرأ مجموعات المحتوى الاختياري والتكوينات والعضويات والبيانات الوصفية للاستخدام والرؤية الفعلية في جرد |
ConfigureOptionalContentPdfStream | يطبق رؤية المجموعة المطلوبة على تكوين منتقى ويكتب تحديثات المحتوى الاختياري اللازمة |
SanitiseActiveContentPdfStream | يجرّد إدخالات المحتوى النشط المنتقاة من الفهرس والـ trailer عبر بحث متفرق ونسخ مدى محدود، ثم يستطيع تقليص الكائنات التي جعلها تلك الإزالة غير قابلة للوصول؛ ويقبل التحميل الزائد بمساحة العمل تخزينًا محدودًا أو قرصيًا يملكه المستدعي لمُدخل التقليص |
ExportPdfObjectGraph | يسلسل بيانات كائنات غير مباشرة محدودة كـ JSON بصيغة pdf-object-graph-v1 مع ملخصات SHA-256 اختيارية للتيارات المرمَّزة |
PatchPdfObjectGraph | يعيّن إدخالات قاموس علوية المستوى أو يزيلها بهُوية الكائن ويلحق مراجعة تزايدية مُتحقق منها |
PostProcessSavedPdf | يشغّل معالجة إجراء الفتح الافتراضي والتطبيع الخاص بالإصدار وإصلاح تيار xref التزايدي الأصلي؛ ويتيح التحميل الزائد بثلاث مساحات عمل قابلة للبحث ومتمايزة للمستدعين تطبيق سياسة التخزين المحدود أو القرصي الخاصة بهم |
RepairSubsetToUnicodeCMaps | يعيد كتابة خرائط ToUnicode لخطوط المجموعات الفرعية التي تخالف عناصر مصفوفتها مدخلات bfchar الخاصة بها، باستخدام تعديلات موضعية متساوية الطول على العناصر (قيم bfchar هي الغالبة، والزوج الذي يختلف في البت العلوى فقط يُحل إلى نقطة الكود الأصغر، وأي تعارض آخر يُبقي التعيين الأول)؛ وتمر المستندات دون /ToUnicode أو ذات تخطيطات xref-stream أو hybrid أو object-stream دون تغيير، وكل حفظ TPdf كامل غير تزايدي يطبق الإصلاح نفسه تلقائيًا |
ReadPdfVersionInfo | يقرأ الترويسة وتجاوز الفهرس وإصدار النواة الفعلي ومعلومات امتدادات Adobe للمطورين |
ReadPdfSparseRevisionInfo | يقرأ عبر فهرس الكائنات المتفرق معطيات أحدث مراجعة محدودة، وبايتات الفهرس، وأجيال الكائنات، ونمط xref، وحالة التعمية، ومعرِّفات المستند، وأدلة البنية الموسومة |
ComposePdfSparseUpdateId | ينسّق /ID لـ trailer تزايدي بحفظ المعرفات من المستدعي أو المصدر واشتقاق القيم المفقودة عبر ملخص تيار محدود |
ReadPdfSparseCatalogSubDict | يقرأ قاموسًا فرعيًا للفهرس مباشرًا أو غير مباشر، مثل MarkInfo أو ViewerPreferences، عبر فهرس الكائنات المتفرق |
ReadPdfSparsePageDictionaries | يعبر شجرة الصفحات النشطة عبر بحث متفرق كلاسيكي وتيارات xref ومختلط وتيارات كائنات ويعيد قواميس الصفحات بترتيب الصفحات |
TPdfSparseDictionaryReader.Create | يبني فهرسًا متفرقًا واحدًا قابلًا لإعادة الاستخدام فوق تيار مصدر يملكه المستدعي ويُبلِّغ عن نجاح التهيئة عبر Valid؛ ويجب أن يبقى المصدر حيًا أثناء استخدام القارئ |
TPdfSparseDictionaryReader.Destroy | يحرر مخازن الفهرس المحتجزة دون تحرير تيار المصدر المملوك للمستدعي |
TPdfSparseDictionaryReader.ReadDictionary | يحل رقم كائن وجيل تامين عبر الفهرس المحتجز ويعيد بايتات القاموس النشط المحدودة |
TPdfSparseDictionaryReader.ReadLatestDictionary | يحل إدخال xref النشط لرقم كائن، ويعيد جيله، ويقرأ قاموسه عبر الفهرس المحتجز |
TPdfSparseDictionaryReader.ReadDecodedStream | يقرأ ويفك ترميز تيار مباشر واحد غير مُرشَّح أو بـ FlateDecode واحد مع فرض MaximumDecodedBytes |
TPdfOptionalContentConfigureOptions.Default | ينتقي التكوين 0 واستخدام View، ويزيل قواعد الحالة التلقائية، ويفضّ مجموعات الاختيار الواحد (radio groups) |
TPdfSanitiseOptions.Default | يُمكِّن إزالة إجراء الفتح وإجراءات الفهرس وأشجار الأسماء والملفات المترابطة والكائنات غير القابلة للوصول مع حفظ AcroForm والبيانات الوصفية |
TPdfObjectGraphInspectOptions.Default | يعيد حدود 100000 كائن وعمق 32 ومخرجات 64 MiB وسلاسل 1 MiB وملخصات تيارات مُمكَّنة |
| النوع | الوصف |
|---|---|
TPdfTreeKind | ينتقي NameTree مرتبة بالبايتات مع ptkName أو NumberTree بإشارة بعرض 64 بت مع ptkNumber |
TPdfTreeObjectReference | يعرِّف عقدة شجرة غير مباشرة واحدة بـ ObjectNumber و Generation |
TPdfTreeEntry | يخزن NameKey أو NumberKey مع كائن PDF كامل مُطبَّع واحد في RawValue؛ و TPdfTreeEntries هي مصفوفته الديناميكية |
TPdfTreeEditOptions | يحد MaxEntries و MaxNodes و MaxDepth و MaxLeafEntries و MaxKidsPerNode؛ ويزوِّد Default حدود إنتاج محافظة |
TPdfTreeValidationIssue | مشكلة واحدة تحمل أدلة كائن و Message تشخيصية؛ و TPdfTreeValidationIssues هي مصفوفتها الديناميكية |
TPdfTreeValidationIssueKind | قيم المشكلات ptviInvalidRoot و ptviUnreadableNode و ptviCycle و ptviDepthLimit و ptviNodeLimit و ptviEntryLimit و ptviInvalidNodeShape و ptviInvalidKey و ptviInvalidValue و ptviInvalidLimits و ptviDuplicateKey و ptviUnsortedKey و ptviDeadlineExceeded |
TPdfTreeValidationReport | يُبلِّغ عن NodeCount و EntryCount و MaximumDepth و Issues وأدلة الكائن وحالة النجاح ونص الخطأ |
TPdfTreeSerializedObject | يحتوي مرجع عقدة موازَنة واحدًا، وبيانات كائن غير مباشر كاملة، وعلامة ما إذا أُعيد استخدام المرجع |
TPdfTreeEditor | نموذج شجرة مرتبة قابل للتغيير يحفظ قيم PDF المعتمة ويصدر تسلسلًا هرميًا غير مباشر موازَنًا |
TPdfOutlineStyleFlag | قيم عرض posItalic و posBold؛ و TPdfOutlineStyle هي مجموعتهما |
TPdfOutlineObjectReference | يعرِّف كائن فهرسة محتجزًا برقم كائن وجيل |
TPdfOutlineItem | يخزن هُوية مستقرة، وهُوية أبًا، وعنوانًا، ووجهة صريحة، وصيغة إجراء، و IsOpen، ونمطًا، و HasColor و ColorRed و ColorGreen و ColorBlue، ومرجع كائن محتجزًا؛ و TPdfOutlineItems هي مصفوفته الديناميكية |
TPdfOutlineEditOptions | يحد MaxItems وعمق التسلسل الهرمي، بقيم افتراضية محافظة يزوِّدها Default |
TPdfOutlineValidationIssueKind | قيم المشكلات poviNone و poviInvalidCatalog و poviUnreadableItem و poviCycle و poviDepthLimit و poviItemLimit و poviInvalidParent و poviInvalidSibling و poviMissingTitle و poviInvalidDestination و poviInvalidPageMap و poviEncryptedInput و poviWriteFailure و poviVerificationFailure |
TPdfOutlineValidationReport | يُبلِّغ عن IssueKind وأدلة الكائن و ItemCount و MaximumDepth و RemappedDestinationCount و RemovedDanglingItemCount وحالة النجاح ونص الخطأ |
TPdfOutlineEditor | نموذج فهرسة بالعمق أولًا قابل للتغيير مع إعادة خرطة مُتحقق منها لخطة الصفحات واستمرارية تزايدية |
TPdfGraftObjectReference | يعرِّف كائنًا غير مباشر واحدًا كمصدر أو وجهة برقم كائن وجيل تامين |
TPdfCrossDocumentGraftMap | خرطة كائنات مرتبطة بهُوية مصدر قابلة لإعادة الاستخدام مدعومة بـ TPdfGraftMapEntries تحفظ الحلقات والمراجع المشتركة وترجع عن الإدخالات التي أضافها خرط فاشل |
TPdfGraftPageMapping | يُخرِط SourcePageNumber المبدوء من واحد إلى DestinationPageNumber المبدوء من واحد من أجل تحديثات /P لعناصر الواجهة و /Annots للصفحات |
TPdfAcroFormCollisionPolicy | ينتقي pagcpReject أو pagcpRename عندما يتصادم عنوان حقل جذري مصدري مع عنوان حقل جذري وجهي |
TPdfAcroFormGraftOptions | يتحكم في CollisionPolicy و RenamePrefix وميزانيات الكائنات والاستدعاء الذاتي و AllowSignedDestination |
TPdfAcroFormGraftReport | يُبلِّغ عن SourceFieldCount و GraftedFieldCount و ReusedObjectCount و DestinationFieldCount و MappedPageCount و GraftedObjectCount و RenamedFieldCount وحجم المخرجات وحالة النجاح ونص الخطأ |
TPdfVersionInfo | تقرير إصدار مع HeaderVersion و CatalogVersion و CoreVersion و AdobeBaseVersion و AdobeExtensionLevel و HasCatalogVersion و HasDeveloperExtensions و HasAdobeExtension |
TPdfSparseRevisionInfo | لقطة أحدث مراجعة مع RootObjectNumber و RootGeneration و InfoObjectNumber و InfoGeneration و SizeValue و MaximumObjectNumber و PreviousXrefOffset و UsesXrefStream و HasEncrypt و HasDocumentId و HasTaggedStructure و FirstDocumentId و CatalogDictionary و InfoDictionary |
TPdfSparseUpdateObject | إدخال مراجعة واحد بـ ObjectNumber و Generation وجسم Data كامل يحمل بايتات N G obj ... endobj |
TPdfSparseUpdateObjects | مصفوفة ديناميكية من إدخالات TPdfSparseUpdateObject تُلحقها AppendPdfSparseUpdate |
TPdfSparsePageDictionary | كائن صفحة نشط واحد بـ ObjectNumber و Generation وبايتات Dictionary محدودة |
TPdfSparsePageDictionaries | مصفوفة ديناميكية من قواميس الصفحات النشطة بترتيب شجرة الصفحات |
TPdfSparseDictionaryReader | مالك قابل لإعادة الاستخدام لفهرس متفرق كلاسيكي وتيارات xref ومختلط وتيارات كائنات من أجل بحث قواميس متكرر بجيل تام دون حجز بحجم المصدر |
TPdfPruneReport | نتيجة قابلية وصول مع SourceByteCount و OutputByteCount و KeptObjectCount و PrunedObjectCount و Succeeded و ErrorMessage |
TPdfResourcePruneReport | نتيجة تقليص الموارد مع ScannedScopeCount و UpdatedScopeCount و RemovedNameCount و RemovedObjectCount وعدّادات التيارات ومجاميع البايتات وحالة النجاح ونص الخطأ |
TPdfDedupReport | نتيجة إزالة الازدواج مع SourceByteCount و OutputByteCount و KeptObjectCount و PrunedObjectCount و MergedFontCount و MergedImageCount و MergedFormXObjectCount و Succeeded و ErrorMessage |
TPdfFlateRecompressOptions | عتبتا استبدال MinSavingBytes و MinSavingRatio |
TPdfFlateRecompressReport | نتيجة إعادة ضغط مع SourceByteCount و OutputByteCount و RecompressedCount و SkippedCount و FailedCount و OriginalStreamBytes و RecompressedStreamBytes و Succeeded و ErrorMessage |
TPdfInlineImageExternaliseOptions | يحتوي SkipUnsafePages التي تحفظ الصفحات التي لا يمكن حل حدود صورها المضمّنة |
TPdfInlineImageExternaliseReport | نتيجة تخريج مع SourceByteCount و OutputByteCount و ExternalisedCount و SkippedPageCount و FailedCount و CreatedXObjectCount و Succeeded و ErrorMessage |
TPdfReproducibleReport | نتيجة إعادة كتابة حتمية مع SourceByteCount و OutputByteCount و KeptObjectCount و PrunedObjectCount و StrippedTimestampCount و Succeeded و ErrorMessage |
TPdfPageLabelStyle | أنماط ترقيم plsNone و plsDecimal و plsUppercaseRoman و plsLowercaseRoman و plsUppercaseLetters و plsLowercaseLetters |
TPdfPageLabelRange | مدى وسوم واحد بـ StartPageIndex المبدوء من الصفر و Style و Prefix و StartNumber |
TPdfPageLabelRanges | مصفوفة ديناميكية من قيم TPdfPageLabelRange |
TPdfPageLabelReport | نتيجة إعادة كتابة الوسوم مع SourceByteCount و OutputByteCount و AppliedRangeCount و ReplacedExistingLabels و Succeeded و ErrorMessage |
TPdfOptionalContentUsage | سياقات الرؤية ocuView و ocuPrint و ocuExport و ocuDesign |
TPdfOptionalContentState | حالات لكل استخدام ocsUnspecified و ocsOn و ocsOff |
TPdfOptionalContentBaseState | حالات أساس التكوين ocbsOn و ocbsOff و ocbsUnchanged |
TPdfOptionalContentMembershipPolicy | سياسات العضوية ocmpAnyOn و ocmpAllOn و ocmpAnyOff و ocmpAllOff و ocmpUnknown |
TPdfOptionalContentIntegerArray | مصفوفة أعداد صحيحة ديناميكية تستخدم لتجميعات أرقام كائنات المحتوى الاختياري |
TPdfOptionalContentStringArray | مصفوفة AnsiString ديناميكية تستخدم لتجميعات أسماء PDF |
TPdfOptionalContentWideStringArray | مصفوفة WideString ديناميكية تستخدم لنص المحتوى الاختياري المفكوك |
TPdfOptionalContentRadioGroup | مجموعة استبعاد متبادل واحدة تمثلها GroupObjectNumbers |
TPdfOptionalContentRadioGroups | مصفوفة ديناميكية من قيم TPdfOptionalContentRadioGroup |
TPdfOptionalContentGroup | سجل OCG مع ObjectNumber و Generation و Name و Intents و ViewState و PrintState و ExportState و PageElementSubtype و Language و LanguagePreferred و UserType و UserNames و HasZoomRange و MinimumZoom و MaximumZoom و EffectiveVisible و Locked و RadioGroupIndex |
TPdfOptionalContentGroups | مصفوفة ديناميكية من قيم TPdfOptionalContentGroup |
TPdfOptionalContentConfiguration | سجل تكوين مع ObjectNumber و Generation و Name و Creator و BaseState و Intents و OnGroupObjectNumbers و OffGroupObjectNumbers و LockedGroupObjectNumbers و OrderGroupObjectNumbers و RadioGroups و HasAutomaticState |
TPdfOptionalContentConfigurations | مصفوفة ديناميكية من قيم TPdfOptionalContentConfiguration |
TPdfOptionalContentMembership | سجل OCMD مع ObjectNumber و Generation و GroupObjectNumbers و Policy و VisibilityExpression و EffectiveVisible |
TPdfOptionalContentMemberships | مصفوفة ديناميكية من قيم TPdfOptionalContentMembership |
TPdfOptionalContentInventory | نتيجة فحص مع Usage و SelectedConfigurationIndex و Groups و Configurations و Memberships و Succeeded و ErrorMessage |
TPdfOptionalContentStateChange | حالة Visible مطلوبة لـ GroupObjectNumber واحد |
TPdfOptionalContentStateChanges | مصفوفة ديناميكية من قيم TPdfOptionalContentStateChange |
TPdfOptionalContentConfigureOptions | التكوين والاستخدام المنتقيان مع تحكمي DisableAutomaticState و EnforceRadioGroups |
TPdfOptionalContentConfigureReport | نتيجة ضبط مع SourceByteCount و OutputByteCount و GroupCount و ChangedGroupCount و UpdatedUsageStateCount و SelectedConfigurationIndex و RemovedAutomaticState و Succeeded و ErrorMessage |
TPdfSanitiseOptions | تحكمات مستقلة StripOpenAction و StripCatalogActions و StripNames و StripAssociatedFiles و StripAcroForm و StripMetadata و RemoveUnreachable |
TPdfSanitiseReport | نتيجة تعقيم مع SourceByteCount و OutputByteCount و StrippedEntryCount و PrunedObjectCount و PruneReport المتداخلة و Succeeded و ErrorMessage |
TPdfObjectGraphInspectOptions | يحد تصدير JSON بـ MaxObjects و MaxDepth و MaxOutputBytes و MaxStringBytes و IncludeStreamDigests |
TPdfObjectGraphReport | نتيجة تصدير وترقيع مشتركة مع SourceByteCount و OutputByteCount و ObjectCount و ExportedObjectCount و PatchedObjectCount و AppliedOperationCount و Truncated و Succeeded و ErrorMessage |
TPdfObjectPatchOperationKind | إجراءا ترقيع popSet و popRemove |
TPdfObjectPatchValueKind | أنواع القيم povNull و povBoolean و povInteger و povReal و povName و povTextString و povReference |
TPdfObjectPatchValue | قيمة موسومة بـ Kind و BooleanValue و IntegerValue و RealValue و TextValue و ReferenceObjectNumber و ReferenceGeneration |
TPdfObjectPatchOperation | عملية واحدة بـ Kind و ObjectNumber و Generation و Key و Value |
TPdfObjectPatchOperations | مصفوفة ديناميكية من قيم TPdfObjectPatchOperation |
TPdfTreeEditor و TPdfOutlineEditor و GraftPdfAcroForm الإدخال المعمَّى لأن المُسلسلات المستقلة الخاصة بها لا ترث معاملات أمان المستند، ويجب أن تبقى كل تيارات المصدر والوجهة قابلة للبحث أثناء الحفظ المُتحقق منهGraftPdfAcroForm XFA والمراجع المعلقة وصفحات عناصر الواجهة غير المُخرَطة وخرطات الصفحات المكررة وتصادمات الموارد الافتراضية؛ وتتطلب الوجهات الموقَّعة تفويضًا صريحًاTPdf عالية المستوى تفويضًا صريحًا حيث يمكن قبول إدخال موقَّعPatchPdfObjectGraph العمليات المكررة والكائنات المفقودة ومفاتيح القاموس المشوَّهة أو المكررة ومفاتيح مرشِّح التيار والطول المحمية وأهداف المراجع المفقودةAppendPdfDirtyRevision مراجع فهرس متطابقة بين خط الأساس والمخرجات السابقة ولا يستطيع ترميز كائن غير مباشر حُررSanitiseActiveContentPdfStream ثلاثة تيارات قابلة للبحث ومتمايزة عندما تكون RemoveUnreachable=Trueتستبدل TPdfOutlineEditor.SetUri الوجهة بإجراء URI UTF-8 وترمز الفواصل الحرفية بأمان؛ تتجاهل مراجعة الحفظ حالة فتح العناصر الورقية لأن PDF لا يسجل Count للفروع فيها
يدعم overload الخيارات لـ GraftPdfAcroForm pagcpReject و pagcpRename و pagcpNamespace وجمع حقول النص والاختيار النهائية المتوافقة مع تصفية widgets وعزل الموارد والمظاهر وترتيب الحساب؛ راجع FPdfFormMerge للسياسات والتكامل داخل المعاملة
تسمي TPdfAcroFormGraftOptions.NamespacePrefix الأب المضاف بسياسة namespace؛ تجمع TPdfAcroFormCollisionPolicy.pagcpMergeCompatible الحقول النهائية المتوافقة المدعومة
تعد TPdfAcroFormGraftReport.FilteredFieldCount و TPdfAcroFormGraftReport.FilteredWidgetCount العناصر المحذوفة باختيار الصفحات؛ تعد TPdfAcroFormGraftReport.ResourceRenameCount أسماء الموارد المعزولة و TPdfAcroFormGraftReport.MergedFieldCount الحقول المضمومة إلى مالك موجود
تلتقط CapturePdfNavigation و WritePdfNavigation الوجهات المسماة وروابط الصفحات وتعيد توجيهها بخريطة صفحات مالكة صريحة؛ راجع FPdfMerge لدلالات المفاتيح الخام ومعاملات الوجهات والحدود والمعاملات
TPdfNavigationNamedDestination= record
// Keep the original PDF string bytes, including a UTF-16 BOM when present
NameKey: AnsiString;
// Absolute one-based page number; zero denotes an unresolved target
PageNumber: Integer;
// Exact destination mode and parameters, including null values
DestinationSuffix: AnsiString;
end;
TPdfNavigationNamedDestinations= array of TPdfNavigationNamedDestination;
TPdfNavigationPageLink= record
// Owner page is one-based; annotation and link-only ordinals are zero-based
PageNumber, AnnotationIndex, LinkIndex: Integer;
HasDestination, HasGotoAction: Boolean;
DestinationPageNumber, ActionPageNumber: Integer;
DestinationSuffix, ActionSuffix: AnsiString;
end;
TPdfNavigationPageLinks= array of TPdfNavigationPageLink;
تعيد ReadPdfActiveObjects أحدث القيم النشطة بأرقام جيلها الدقيقة ومراجعة الكتالوج النشطة، وتحل جداول xref التقليدية وتدفقاتها والمراجعات التزايدية وأعضاء تدفقات الكائنات المضغوطة
تستبعد Body رأس الكائن غير المباشر و endobj؛ تحفظ التدفقات العادية القاموس والحمولة المرمزة، وتُجسد الأعضاء المضغوطة كقيم عادية، ولا تُعاد بنية xref وتدفقات الكائنات
تُستعاد موضعية المصدر؛ يعيد الفشل مجموعة فارغة مع تشخيصات؛ تُرفض المدخلات المشفرة ويمكن فحص التوقيعات دون تغيير بايتاتها
الافتراضات 256 MiB للمصدر و 64 MiB لكل جسم و 256 MiB للأجسام إجمالًا و 64 MiB لكل تدفق كائن مفكوك و 256 MiB لذاكرات التدفقات إجمالًا و 1,000,000 خانة رقم كائن
تُفحص حدود الجسم قبل كل نسخ وتحتسب أجسام البنية المؤقتة والقيم المعادة؛ توقف حدود cache المفكوكة المستقلة فك التدفقات قبل تجاوز الميزانية
هذه حدود مخازن منطقية لا سقف ذاكرة العملية؛ تحتاج نسخ المصدر وتحضير الكائنات ومخازن الفحص وذاكرة المفكك والبيانات الوصفية إلى تخصيصات إضافية محدودة، وقد تكرر مخازن الفحص الأجسام المحفوظة
type
TPdfActiveObject = record
ObjectNumber, Generation: Integer;
Body: TBytes;
end;
TPdfActiveObjects = array of TPdfActiveObject;
TPdfActiveObjectReadOptions = record
MaxSourceBytes, MaxObjectBytes, MaxTotalObjectBytes: Int64;
MaxDecodedObjectStreamBytes, MaxTotalDecodedObjectStreamBytes: Int64;
MaxObjects: Integer;
class function Default: TPdfActiveObjectReadOptions; static;
end;
function ReadPdfActiveObjects(Source: TStream;
const Options: TPdfActiveObjectReadOptions; out Objects: TPdfActiveObjects;
out Revision: TPdfSparseRevisionInfo; out ErrorText: string): Boolean;