|
يضيف widget نص rich-text في AcroForm لـ PDF 1.5+ (ISO 32000-1 12.7.4.3 + Annex L) إلى الصفحة الحالية. يحمل widget بديل /V + /DV plain-text القياسي للقراء الذين لا يحللون rich text، إضافة إلى جسم /RV rich-text XHTML ومدخل /DS default style الذي يستهلكه Acrobat وFoxit مباشرة لعرض النص المنسق. تتم إضافة bit /Ff RichText (26) تلقائيًا/V + /DV كبديل نصي صريح يستخدمه القراء الذين لا يحللون النص الغني، إضافة إلى متن XHTML الغني الجديد /RV ومدخلي النمط الافتراضي /DS اللذين يستهلكهما Acrobat وFoxit مباشرةً لعرض النص المنسق. أما /FfC++ syntax:
void AddRichTextField(const AnsiString& FieldName, const AnsiString& InitialValue, const AnsiString& RichValue, const AnsiString& DefaultStyle, const TRect& Rectangle, int MaxLen = 0, THPDFFormFieldFlags Flags = THPDFFormFieldFlags());
الوصف
يصدر widget كحقل نموذج Tx مع /FT /Tx و/DA (/Helv 12 Tf 0 0 0 rg) و/Ff مع bit RichText، وتستخدم InitialValue كـ /V و/DV، وRichValue كـ /RV، وDefaultStyle كـ /DS. تكتشف InitialValue وRichValue وDefaultStyle المحتوى متعدد البايتات تلقائيًا وتتحول إلى UTF-16BE hex-string عند الحاجة
يحدث عرض rich-text داخل القارئ: يفك Acrobat وFoxit وEdge وChrome PDF viewer قيمة /RV عند تفعيل bit RichText ويستخدمون بدائل خطوط Unicode من النظام، لذلك تظهر محتويات CJK وCyrillic وArabic وLatin accented بشكل صحيح دون أن يضمن HotPDF خط CID في /DR Resources. يظل فرع empty-AP placeholder للنص متعدد البايتات في مسار AutoFormAppearances الخاص بـ HotPDF كما هو
FieldName - اسم /T الجزئي لحقل نموذج PDF، ويجب أن يكون فريدًا داخل الأصل. تقبل المسافات والبايتات غير ASCII؛ وتؤدي غير ASCII إلى ترميز UTF-16BE لسلسلة /T الصادرة
InitialValue - سلسلة نص PDF عادية تكتب إلى /V و/DV. يستخدم القراء الذين لا يحللون /RV هذه القيمة كبديل للعرض
RichValue - PDF 1.7 Annex L tagged XHTML body (the most portable form starts with <?xml version="1.0"?> and an XHTML <body> root carrying the xfa:contentType="text/html" namespace attribute). Inline styling uses <span style="..."> with CSS properties (font-family, font-size, font-weight, font-style, color/DS. وتكتشف InitialValue وRichValue وDefaultStyle المحتوى متعدد البايتات تلقائيًا وتتحول إلى ترميز سلسلة ست عشرية UTF-16BE عند الحاجة (مطابقةً للسلوك القائم في AddTextField, etc.).
/RV عندما يكون بت RichText مفعلاً ويلتقط بدائل خطوط Unicode من النظام، فيعرض محتوى CJK والسيريلية والعربية واللاتينية المشكَّلة بالنطاقات على نحو صحيح دون أن يضمّن HotPDF خط CID في /DRDefaultStyle - CSS-like style string applied to characters the user types at fill time when no per-character style is present in /RV. Example: 'font: 12pt Helvetica; color: #000000'.
Rectangle - /Rect الخاص بالـ widget في إحداثيات شاشة HotPDF (الأصل أعلى اليسار)؛ يحدث YProjection تلقائيًا عند تحويل المستطيل إلى PDF user space
MaxLen - optional; when greater than zero, emits a /MaxLen/T entry capping the user-entered character count. Defaults to 0 (no limit).
/V و/DV. والقراء الذين لا يحللون /RV يرجعون إلى هذه القيمة للعرض.
RichValue - متن XHTML موسوم وفق ملحق L من PDF 1.7 (وأكثر صوره قابلية للحمل يبدأ بـ <?xml version="1.0"?> وجذر XHTML <body> يحمل سمة النطاق xfa:contentType="text/html"). التنسيق الداخلي يستخدم <span style="..."> مع خصائص CSS (font-family، font-size، font-weight، font-style، color، وهكذا).
DefaultStyle - سلسلة تنسيق شبيهة بـ CSS تُطبق على المحارف التي يكتبها المستخدم عند التعبئة حين لا يوجد تنسيق لكل محرف في /RV. مثال: 'font: 12pt Helvetica; color: #000000'.
Rectangle - قيمة /Rect الخاصة بالأداة بإحداثيات شاشة HotPDF (المبدأ أعلى-يسار)؛ ويتم إسقاط Y تلقائيًا عند تحويل المستطيل إلى فضاء مستخدم PDF.
MaxLen - اختياري؛ عندما تكون أكبر من الصفر يُصدَر مدخل /MaxLen يحصر عدد المحارف التي يدخلها المستخدم. والقيمة الافتراضية 0 (بلا حد).
Flags - اختياري؛ أي أعلام حقول إضافية تُدمج بعملية OR في /Ff إضافة إلى بت RichText المضاف تلقائيًا. من الأعلام الإضافية المعتادة: ffMultiline للمتنات الغنية متعددة الفقرات، وffReadOnly للنص المنسق المعروض فقط. أما ffRichTextFlags - اختياري؛ أي أعلام حقل إضافية تدمج في /Ff إضافة إلى bit RichText المضاف تلقائيًا. أمثلة شائعة: ffMultiline لأجسام rich-text متعددة الفقرات وffReadOnly للنص المنسق المخصص للعرض فقط. يضاف ffRichText دائمًا حتى لا يحتاج المستدعي إلى تمريره
Code Example
// Rich-text Tx widget with bold + italic markup
var
Rich, DS: AnsiString;
R: TRect;
begin
HPDF.BeginDoc;
Rich :=
'<?xml version="1.0"?>' +
'<body xmlns="http://www.w3.org/1999/xhtml" ' +
'xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" ' +
'xfa:contentType="text/html">' +
'<p style="font-family:Helvetica;font-size:12pt">' +
'<span style="font-weight:bold">Bold</span> and ' +
'<span style="font-style:italic">italic</span> text.' +
'</p></body>';
DS := 'font: 12pt Helvetica; color: #000000';
R.Left := 60; R.Top := 60; R.Right := 280; R.Bottom := 100;
HPDF.CurrentPage.AddRichTextField(
'Biography', 'Plain biography text', Rich, DS, R);
HPDF.EndDoc;
end;
انظر أيضا
AddTextField, AutoFormAppearances, Version, AcroForm Support
|