|
מוסיף לעמוד הנוכחי widget טקסט rich-text של AcroForm עבור PDF 1.5+ (ISO 32000-1 12.7.4.3 + Annex L). ה-widget נושא fallback טקסט רגיל סטנדרטי של /V + /DV עבור קוראים שאינם מנתחים rich text, לצד ערכי /RV החדשים לגוף rich-text XHTML ו-/DS לסגנון ברירת מחדל, שאותם Acrobat ו-Foxit צורכים ישירות כדי לרנדר טקסט מעוצב. bit /Ff RichText (26) נוסף אוטומטית באמצעות OR
Delphi syntax:
procedure AddRichTextField(const FieldName, InitialValue: AnsiString; const RichValue, DefaultStyle: AnsiString; Rectangle: TRect; MaxLen: Integer = 0; Flags: THPDFFormFieldFlags = []);
C++ 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 נפלט כשדה form מסוג Tx עם /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff שבו bit RichText מוגדר, InitialValue שסופק גם כ-/V וגם כ-/DV, RichValue כ-/RV, ו-DefaultStyle כ-/DS. InitialValue, RichValue ו-DefaultStyle מזהים אוטומטית תוכן multi-byte ועוברים לקידוד UTF-16BE hex-string כאשר צריך, בהתאמה להתנהגות AddTextField הקיימת עבור שדות plain-text בינלאומיים
רינדור rich-text מתבצע בקורא: Acrobat / Foxit / Edge / Chrome PDF viewer כולם מנתחים /RV כאשר bit RichText פעיל, ומקבלים font fallbacks של Unicode מהמערכת, כך שתוכן CJK, Cyrillic, Arabic ו-Latin עם accents מוצג נכון ללא הטמעת פונט CID על ידי HotPDF בתוך /DR Resources. עבור מסלול AutoFormAppearances של HotPDF עצמו, ענף placeholder ריק ל-AP עבור טקסט multi-byte עדיין נשאר במקומו, משימת v2.56.0+; קוראים מודעי rich-text מתעלמים מה-AP הזה ומרנדרים ישירות מ-/RV
FieldName - שם partial /T של שדה form ב-PDF, וחייב להיות ייחודי בתוך parent שלו. רווחים ו-bytes שאינם ASCII מתקבלים; non-ASCII מפעיל קידוד UTF-16BE על מחרוזת /T הנפלטת
InitialValue - מחרוזת טקסט PDF plain-text שנכתבת ל-/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, etc.).
DefaultStyle - 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 עם origin בפינה העליונה-שמאלית; ה-YProjection מתבצע אוטומטית כאשר rect מומר ל-PDF user space
MaxLen - optional; when greater than zero, emits a /MaxLen entry capping the user-entered character count. Defaults to 0 (no limit).
Flags - אופציונלי; דגלי שדה נוספים שייכנסו ב-OR לתוך /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;
See Also
AddTextField, AutoFormAppearances, Version, AcroForm Support
|