مقارنة العقود
يقارن HPDFContractCompare النص الدلالي وهندسة الأسطر لمستندي PDF مُحمَّلَين، ويحاذي الفقرات، ويعيد سجلات قابلة للتدقيق للإدراج والحذف والاستبدال والنقل
استخدم هذا المساعد لمراجعة الصياغة والبنود، واستخدم THPDFDocComparison لفروقات الصفحات والكائنات والعرض المرئي
قارن عقودًا مُحمَّلة
uses HPDFDoc, HPDFTypes, HPDFContractCompare;
Options := HPDFDefaultContractCompareOptions;
Options.Granularity := ccgWord;
BeforePDF.LoadFromFile('contract-before.pdf');
AfterPDF.LoadFromFile('contract-after.pdf');
if HPDFCompareContracts(BeforePDF, AfterPDF, Options, Report, Token) then
begin
HTML := HPDFContractReviewHTML(Report, 'Services agreement review',
8388608, Token);
HPDFSaveContractAnnotatedPDF('contract-before.pdf',
'contract-before-review.pdf', Report, ccsBefore, Token);
HPDFSaveContractAnnotatedPDF('contract-after.pdf',
'contract-after-review.pdf', Report, ccsAfter, Token);
end;
احفظ HTML المُعاد بترميز UTF-8، وافحص Report.Status وReport.Note عندما تُعيد دالة المقارنة false
محاذاة الفقرات والتغييرات
- تُجمَّع الأسطر الدلالية اعتمادًا على حدود الصفحة والعمود والقائمة والعنوان وفجوات خط أساس قابلة للضبط، مع توحيد المسافات البيضاء بين الأسطر
- تُزاوج الفقرات المتطابقة تمامًا أولًا، وتحافظ البنود المتطابقة المتكررة في متن العقد على ترتيب التكرار ومضاعفته
- تُطابَق الفقرات المتغيّرة بدرجة تشابه كلمات على هيئة مجموعة متعددة (multiset) قابلة للضبط، بمعزل عن دقة التفريق (granularity) المختارة للفروقات
- يحدد أطول تتابع متزايد من الفقرات المزدوجة إعادة الترتيب، دون الإبلاغ عن الإزاحات الاعتيادية للفهارس الناتجة عن الإدراج والحذف كأنها نقل
- تستخدم الفقرات المطابَقة المتغيّرة محاذاة رموز (tokens) محدودة الموارد لإعادة سجلات إدراج أو حذف أو استبدال مرفقة بسياقَي الفقرتين كاملَين
- يفصل وضع الكلمات علامات الترقيم عن الكلمات، ويستخدم وضع الجمل النقطة أو علامة التعجب أو الاستفهام الختامية متبوعة بمسافة بيضاء أو بنهاية الفقرة
- حدود الجمل معجمية وقد تشطر الاختصارات أو أرقام البنود، لذلك فإن وضع الكلمات هو الافتراضي لمراجعة دقيقة للصياغة القانونية
- يربط
JoinPageContinuationsبتحفّظ فقرة غير مكتملة قرب أسفل صفحة بفقرة عادية قرب أعلى الصفحة التالية، ويمكن للمستدعي تعطيل هذا الاستدلال التخطيطي
مراجع الصفحات والهندسة
يعتمد PageIndex وParagraphIndex الترقيم من الصفر، بينما يمثل CharacterStart موضع UTF-16 يعتمد الترقيم من الواحد داخل الفقرة موحَّدة المسافات البيضاء
الجانب الغائب في إدراج أو حذف فقرة كاملة يحمل فهارس صفحة وفقرة بقيمة -1، وإدراج أو حذف رمز (token) داخل فقرة مطابَقة يحتفظ بموضع بطول صفر في الجانب المقابل
يحمل كل مستطيل فهرس صفحته الخاص ويغطي سطرًا دلاليًا متقاطعًا في فضاء المستخدم الخاص بـ PDF، ويمكن لفقرة تمتد عبر صفحات أن تمتلك مستطيلات على عدة صفحات
تصف المواضع تغطية السطر لا رباعيات الأحرف الدقيقة، لذلك قد يُبرز PDF الموثَّق بالتعليقات السطر نفسه لعدة تغييرات كلمات مستقلة
استبعاد عناصر الصفحات المتكررة والنصوص القالبية
تستبعد الإعدادات الافتراضية الأسطر الدلالية المتطابقة التي تظهر في أعلى 54 نقطة أو أسفلها على صفحتين مختلفتين على الأقل من كل مدخل، وتوحّد أرقام الهوامش لتتمكن أرقام الصفحات المتكررة من المطابقة
تُرشَّح المستندان «قبل» و«بعد» باستقلالية، وتبقى تكرارات المتن مؤهلة للمقارنة مهما بلغ عدد مرات ظهورها
Options.IgnoreRepeatedHeadersFooters := False;
Options.NormalizeMarginDigits := False;
Options.HeaderMarginPoints := 40;
Options.FooterMarginPoints := 35;
SetLength(Options.ExcludedLineTexts, 1);
Options.ExcludedLineTexts[0] :=
'The parties shall maintain an accurate register of approved subcontractors.';
يزيل ExcludedLineTexts سطرًا دلاليًا كاملًا بمطابقة حرفية بعد توحيد المسافات البيضاء، ويحترم IgnoreCase، ولا يفسّر أبدًا التعابير النمطية أو أنماط السلاسل الفرعية
اختر الهوامش والاستبعادات بوعي، فالتواريخ أو النصوص التعاقدية الأخرى داخل سطر هامش متكرر مستبعد تُهمل من مراجعة الصياغة
الميزانيات والإلغاء
| الخيار | الافتراضي | النطاق |
|---|---|---|
MaxPages | 500 | لكل مستند |
MaxParagraphs | 4000 | لكل مستند بعد الاستبعادات |
MaxSemanticLines | 50000 | إجمالي الأسطر الدلالية قبل اللقطات والاستبعادات |
MaxCharacters | 2000000 | إجمالي نص الأسطر المستخرَج قبل الاستبعادات |
MaxTokens | 200000 | إجمالي رموز الكلمات، ورموز الجمل في وضع الجمل |
MaxDifferences | 10000 | السجلات المُعادة، بما فيها عمليات النقل |
MaxAlignmentCells | 2000000 | مصفوفات رموز الفقرات المتغيّرة التراكمية |
MaxWorkUnits | 50000000 | محاسبة الاستخراج وعمل المحاذاة |
حد الميزانية يعيد ccsBudgetExceeded، والإلغاء يعيد ccsCancelled، مع الاحتفاظ بالنتائج الجزئية لأغراض التشخيص وتوسيمها كغير مكتملة في HTML
يُفحص الإلغاء بين عمليات استخراج الصفحات وعبر حلقات المحاذاة التي تملكها المكتبة، بينما يبقى مستخرج الأسطر الدلالية أحادي الصفحة الأساسي متزامنًا (synchronous)
يرصد ccsInvalidInput المستندات المفقودة أو الأرقام الترتيبية غير الصالحة للتعداد (enum) أو الخيارات غير الصالحة، ويرصد ccsExtractionFailed الصفحات بلا نص قابل للاستخراج أو الاستخراج الدلالي الفاشل
يلزم إجراء OCR أو إزالة صريحة للصفحات الفارغة قبل مقارنة صفحات بلا نص قابل للاستخراج، وccsComplete تشهد على اكتمال مقارنة النص هذه فقط
مخرجات المراجعة
يعيد HPDFContractReviewHTML مستندًا مستقلًا يتضمن عنوانًا ورسائل ونصوصًا وسياقات فقرات كاملة وأنواع تغييرات وموضعَي المصدر، وكلها مُهرَّبة (escaped)، بحد إخراج افتراضي 8388608 محرف UTF-16
يرفع مُصدِّر HTML الاستثناء EHPDFContractCompareBudget عندما يتجاوز ناتجه الحد المضبوط، ويرفع رمز الإلغاء EHPDFOperationCancelled
يتطلب HPDFSaveContractAnnotatedPDF تقرير مقارنة مكتملًا، ويحمّل مستند مصدر منفصلًا، ويفحص لقطة كل صفحة دلالية بما فيها هندسة أسطرها الدقيقة قبل إضافة الإبرازات مع تعليقات مراجعة مرقّمة
حدّد مساري مصدر وإخراج مختلفين، واختر ccsBefore أو ccsAfter، وصدِّر النسختين معًا عندما تحتاج لمراجعة حذف وإدراج الفقرات الكاملة بشكل مشترك
على Windows تُفحص هوية ملفَّي المصدر والإخراج لرفض الـ hard link أو أي أسماء بديلة أخرى لملف المصدر
يعطّل مُصدِّر PDF خاصية AutoLaunch، ويترك المستندات المدخلة وملف المصدر بلا تغيير، ويفحص الإلغاء قبل التحميل وبين الصفحات والتغييرات وقبل الحفظ
يقارن هذا المساعد الصياغة المستخرجة ومراجع التخطيط دون استنتاج المعنى القانوني أو التعرف على النص الممسوح ضوئيًا أو إصدار شهادة بالأثر القانوني لأي تعديل
واجهات برمجة التطبيقات ذات الصلة
HPDFCompareContracts · THPDFContractCompareOptions · THPDFContractCompareReport · HPDFContractReviewHTML · HPDFSaveContractAnnotatedPDF