PDFium Delphi Component Docs

PageObjectEditTransactionStatus الخاصية

المكوّن: TPdf  ·  الوحدة: PDFium
يُبلِّغ عن كون معاملة تحرير كائنات الصفحة نشطة أم لا وعن مقدار ما بلغته من تقدم

الصياغة

property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only

 

type TPdfPageObjectEditTransactionStatus = record
  Active: Boolean;
  Dirty: Boolean;
  PageNumber: Integer;
  MutationCount: Integer;
  ContentGenerationCount: Integer;
end;

ActiveTrue بين BeginPageObjectEditTransaction والإتمام أو الاسترجاع المطابق له
DirtyTrue بمجرد تنفيذ تعديلٍ واحد على الأقل داخل المعاملة
PageNumberالصفحة التي ارتبطت بها المعاملة عند بدايتها، وترقيمها يبدأ من الواحد
MutationCountاستدعاءات UpdatePage الناجحة المسجَّلة داخل المعاملة
ContentGenerationCountعمليات توليد المحتوى المُنفَّذة عند إتمام المعاملات التي أُجريت فيها تعديلات

الوصف

تؤجل معاملة تحرير كائنات الصفحة توليد المحتوى الأصلي بحيث تُطبَّق تعديلات إدراج كائن الصفحة وإزالته وتحويله وخاصياته وعلامات محتواه ومظهر التعليقات كعملية واحدة ذرية محصورة بنطاق الصفحة؛ وتكشف هذه الخاصية حالتها الحية لأغراض الحماية والتشخيص

يتقدّم MutationCount مع كل تعديل مؤجل ناجح، ويُبطل كل تعديل من هذا النوع ذاكرات الصفحة المؤقتة أيضًا فلا يبقى بعد التحرير أي عرض رسومي أو لقطة أو مصغّرة قديمة

يولِّد إتمام معاملة معدَّلة محتوى الصفحة مرة واحدة ويرفع ContentGenerationCount؛ أما إتمام معاملة بلا تعديلات أو الاسترجاع فيستعيد الأساس دون توليد

ملاحظات

يمحو الإتمام والاسترجاع Active و Dirty لكنهما يتركان PageNumber والعدّادين كتشخيص نهائي حتى تبدأ المعاملة التالية وتصفّرهما

خارج المعاملة يحمل كل حقل قيمته الافتراضية، فاختبار الخمول الموثوق هو Active = False

تغطي الحالة معاملات كائنات الصفحة وحدها؛ أما معاملات مستوى المستند المفتوحة عبر BeginEditTransaction فيُبلِّغ عنها دفتر التحرير

مثال

Pdf.BeginPageObjectEditTransaction;
try
  Pdf.TransformPageObject(0, Matrix);
  Status := Pdf.PageObjectEditTransactionStatus;
  LogTransactionProgress(Status.MutationCount, Status.Dirty);
  Pdf.CommitPageObjectEditTransaction;
except
  if Pdf.PageObjectEditTransactionStatus.Active then
    Pdf.RollbackPageObjectEditTransaction;
  raise;
end;

انظر أيضًا

PageObjectEditTransaction, BeginEditTransaction, CommitEditTransaction, RollbackEditTransaction, UpdatePageObject