THPDFPage.AddRichTextField Method

 

THPDFPage.AddRichTextField

THPDFPage

 

بالا

یک ویجت متن غنی AcroForm در PDF 1.5+ را به صفحهٔ فعلی اضافه می‌کند (ISO 32000-1 12.7.4.3 + Annex L) ویجت شامل جای‌گزین متنی استاندارد /V + /DV برای خوانندگانی است که rich text را تجزیه نمی‌کنند، به‌همراه بدنهٔ XHTML متن غنی /RV و ورودی‌های سبک پیش‌فرض /DS که Acrobat و Foxit مستقیماً برای نمایش متن قالب‌بندی‌شده مصرف می‌کنند. بیت RichText در /Ff (26) به‌صورت خودکار OR می‌شود

 

نحو Delphi:

procedure AddRichTextField(const FieldName, InitialValue: AnsiString; const RichValue, DefaultStyle: AnsiString; Rectangle: TRect; MaxLen: Integer = 0; Flags: THPDFFormFieldFlags = []);

 

نحو C++:

void AddRichTextField(const AnsiString& FieldName, const AnsiString& InitialValue, const AnsiString& RichValue, const AnsiString& DefaultStyle, const TRect& Rectangle, int MaxLen = 0, THPDFFormFieldFlags Flags = THPDFFormFieldFlags());

 

توضیح

این ویجت به‌صورت یک فیلد فرم Tx با /FT /Tx، /DA (/Helv 12 Tf 0 0 0 rg)، /Ff با بیت RichText فعال، InitialValue داده‌شده به‌عنوان هر دو /V و /DV، RichValue به‌عنوان /RV، و DefaultStyle به‌عنوان /DS صادر می‌شود. InitialValue، RichValue و DefaultStyle محتوای چندبایتی را به‌طور خودکار تشخیص می‌دهند و هر زمان لازم باشد به کدگذاری رشتهٔ هگز UTF-16BE سوییچ می‌کنند، مطابق رفتار موجود AddTextField برای فیلدهای متنی بین‌المللی

نمایش متن غنی در خواننده انجام می‌شود: Acrobat، Foxit، Edge و نمایشگر PDF در Chrome همگی وقتی بیت RichText روشن است /RV را تجزیه می‌کنند و جای‌گزین‌های فونت Unicode را از سیستم برمی‌دارند، بنابراین محتوای CJK، سیریلیک، عربی و لاتینِ دارای اَکسان بدون نیاز به جاسازی فونت CID در منابع /DR توسط HotPDF درست نمایش داده می‌شود. در مسیر AutoFormAppearances خود HotPDF شاخهٔ جای‌نگهدارِ AP خالی برای متن چندبایتی همچنان باقی می‌ماند (وظیفهٔ v2.56.0+)؛ خواننده‌های آگاه به rich text آن AP را نادیده می‌گیرند و مستقیماً از /RV نمایش می‌دهند

 

FieldName - نام جزئی /T فیلد فرم PDF (باید در parent خود یکتا باشد) فاصله‌ها و بایت‌های غیر ASCII پذیرفته می‌شوند؛ غیر ASCII باعث کدگذاری UTF-16BE در رشتهٔ /T صادرشده می‌شود

InitialValue - رشتهٔ متنی سادهٔ PDF که در /V و /DV نوشته می‌شود. خوانندگانی که /RV را تجزیه نمی‌کنند برای نمایش به این مقدار بازمی‌گردند

RichValue - بدنهٔ XHTML برچسب‌دار در Annex L از PDF 1.7 (سازگارترین شکل با <?xml version="1.0"?> شروع می‌شود و یک ریشهٔ <body> XHTML دارد که ویژگی فضای نام 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 - اختیاری؛ هر پرچم اضافی فیلد که باید فراتر از بیت RichTextِ خودکار در /Ff OR شود. پرچم‌های اضافی رایج: ffMultiline برای بدنه‌های rich text چندپاراگرافی، ffReadOnly برای متن قالب‌بندی‌شدهٔ فقط نمایشی. پرچم ffRichText همیشه افزوده می‌شود تا فراخواننده نیازی به اضافه کردن آن نداشته باشد

 

نمونه کد

// 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