SearchAndReplaceTextInContentEx

الاستخراج، Unicode، تحرير المحتوى

الوصف

يستبدل كل ظهور غير متداخل لاستعلام البحث في نص الصفحات المدعوم، مستخدمًا مدايات بايت المصدر الدقيقة وخرائط خطوط متحقَّقًا منها

يحافظ التابع على النص المحيط وتعديلات TJ الرقمية القائمة ومرساة النص التالي الأصلية؛ والاستبدال الفارغ يحذف المحارف المتطابقة فقط

تُخطط كل الإصابات المحددة وتُعاد كتابتها قبل لزم محتوى الصفحة؛ والنص غير القابل للتمثيل وخرائط الخطوط الناقصة وموضع المصدر غير المدعوم ترفض الطلب دون استبدال أي نص في الصفحات المحددة

الصيغة

Delphi

Function TPDFlib.SearchAndReplaceTextInContentEx(Const Query, Replacement: WideString; Options: TPDFlibSearchOptions; Const PageRange: WideString; ReplacementFontID: Integer): Integer;

DLL

Function DLSearchAndReplaceTextInContentEx(InstanceID: Integer; Query: PWideChar; Replacement: PWideChar; Options: Integer; PageRange: PWideChar; ReplacementFontID: Integer): Integer; Stdcall;
Function DLSearchAndReplaceTextInContentExA(InstanceID: Integer; Query: PAnsiChar; Replacement: PAnsiChar; Options: Integer; PageRange: PAnsiChar; ReplacementFontID: Integer): Integer; Stdcall;

ActiveX

Function PDFlib::SearchAndReplaceTextInContentEx(Query: WideString; Replacement: WideString; Options: Integer; PageRange: WideString; ReplacementFontID: Integer): Integer;

المعاملات

قيمة ReplacementFontID صفر تستخدم الخط الأصلي؛ والقيمة الموجبة يجب أن تحدد خطًا في المستند المحدد ذا ترميز كامل متحقَّق منه

يُختار الخط البديل لأجل مقاطع الاستبدال فقط ويعاد الخط الأصلي قبل اللواحق غير المماسة؛ ولا يختار هذا التابع خطًا أو يثبته تلقائيًا

تستخدم خيارات DLL وActiveX أعلام البحث بوصفها البتات 1 و2 و4 و8 و16 و32 و64 و128 بترتيب enum؛ فـ soAcrossLines هو البت 16 وهو غير مدعوم هنا؛ وتُرفض البتات المجهولة في هذه الواجهات

سلاسل إدخال A في DLL تتبع إعداد التحويل من ANSI إلى wide الخاص بالمثيل؛ واستخدم نقطة الدخول wide لتمرير Unicode باستقلال عن ذلك الإعداد

قيم الإرجاع

يعيد عدد التطابقات المستبدلة، أو 0 لعدم وجود تطابقات أو طلب مرفوض؛ وافحص GetLastUnicodeReplacementDiagnostics للتمييز بين هاتين الحالتين

يبلّغ LastErrorCode 535 عن إدخال غير صالح أو حدود الالتقاط؛ و537 يبلّغ عن تحرير أو ترميز غير مدعوم؛ والبحث الصالح بلا تطابقات يُبلَّغ عنه مكتملًا بقيمة replacedHits تساوي 0

ملاحظات

تأتي الخرائط من ToUnicode CMap مدعومة كليًا أو من ترميز خط بسيط متحقَّق منه، بما يشمل أسماء الحروف في Differences المدعومة؛ ولا يُستخدم أي تحويل عبر صفحات ترميز النظام ولا ترميز حروف مُخمَّن

يجب أن توفر الخطوط البسيطة قيم Widths وFirstChar وLastChar صالحة في PDF، أو تستخدم اسم Type1 قياسيًا دقيقًا من الخطوط الأربعة عشر دون Widths؛ ولا يخوّل الاحتياط عبر خطوط النظام ولا المطابقة المتساهلة للأسماء أي تقدم دقيق

يُبلَّغ عن وراثة UseCMap المسماة والخرائط غير المحلولة وتقدمات خطوط Type3 والكتابة الرأسية ونص Form المتداخل والمحارف التركيبية واستبدالات ActualText والسلاسل المحوَّلة والتطابقات العابرة للطبقات وعناقيد الحروف المركبة الجزئية بوصفها غير مدعومة

يمكن استبدال عنقود الحروف المركبة الكامل حين تكون بايتاته الأصلية وخرائط Unicode الخاصة به متحقَّقًا منها؛ وتبقى السوابق واللواحق بخطها الأصلي

تحافظ خيارات البحث على معناها القائم، بما يشمل قيود حالة الأحرف والكلمة الكاملة وحروف البدل والتشكيل والتكافؤ القانوني والمقاطع الكتابية (grapheme)؛ ويُرفض soAcrossLines والاستدعاءات أثناء نطاق API مفتوح

يدعم التخطيط حتى 4096 تطابقًا؛ وتقتصر لقطات المصدر المحتفَظ بها على 64 م.ب. لكل تدفق و512 م.ب. إجمالًا، مع 64 م.ب. من سجلات مواضع المصدر الملتقطة؛ ويفرض محلل خرائط الخطوط كذلك حدودًا على الرموز وفضاءات الترميز، بإجمالي معاملات قدره 262144 خريطة و8 مليون وحدة هدف UTF-16

تحدها هذه الحدود بيانات الالتقاط والتخطيط المحتفَظ بها؛ ولتحميل الصفحات وعرضها القائمان تخصيصاتها الخاصة، فهي ليست ضمانًا لذروة استهلاك الذاكرة المطلقة

تُنسخ تدفقات المحتوى وقواميس الموارد المشتركة من أجل الصفحات المحددة؛ وتُستعاد حالة اختيار المستند، ويجب استخراج قوائم كتل النصوص البالطة من جديد بعد تحرير ناجح

تغير هذه العملية محتوى الصفحات النشطة وليست واجهة محو آمن: فالكائنات المنفصلة أو المراجعات التزايدية السابقة قد تحتفظ بالبايتات الأصلية

انظر أيضًا

SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText