|
Egy PDF 1.5+ AcroForm formázott szöveges widgetet (ISO 32000-1 12.7.4.3 + L melléklet) ad hozzá az aktuális oldalhoz. A widget hordozza a szabványos /V + /DV egyszerű szöveges tartalékot, amelyet a formázott szöveget nem értelmező olvasók használnak, valamint az új /RV formázott szöveges XHTML törzset és /DS alapértelmezett stílusbejegyzéseket, amelyeket az Acrobat és a Foxit közvetlenül használ a formázott szöveg megjelenítéséhez. A /Ff RichText bit (26) automatikusan hozzáadásra kerül
Delphi szintaxis:
procedure AddRichTextField(const FieldName, InitialValue: AnsiString; const RichValue, DefaultStyle: AnsiString; Rectangle: TRect; MaxLen: Integer = 0; Flags: THPDFFormFieldFlags = []);
C++ szintaxis:
void AddRichTextField(const AnsiString& FieldName, const AnsiString& InitialValue, const AnsiString& RichValue, const AnsiString& DefaultStyle, const TRect& Rectangle, int MaxLen = 0, THPDFFormFieldFlags Flags = THPDFFormFieldFlags());
Leírás
A widget Tx űrlapmezőként kerül kibocsátásra /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg) értékkel, a RichText bit beállításával a /Ff mezőben, a megadott InitialValue értékkel mind a /V, mind a /DV mezőben, a RichValue értékkel mint /RV, és a DefaultStyle értékkel mint /DS. Az InitialValue, RichValue és DefaultStyle automatikusan felismeri a több-bájtos tartalmat, és szükség esetén UTF-16BE hexadecimális karakterlánc-kódolásra vált (igazodva a nemzetközi egyszerű szöveges mezők meglévő AddTextField viselkedéséhez)
A formázott szöveg renderelése az olvasóban történik: az Acrobat / Foxit / Edge / Chrome PDF-megjelenítők mindegyike elemzi az /RV bejegyzést, ha a RichText bit be van kapcsolva, és átveszi a Unicode font tartalékokat a rendszerből, így a CJK, cirill, arab és ékezetes latin tartalmak helyesen jelennek meg anélkül, hogy a HotPDF CID betűtípust ágyazna be a /DR erőforrásokba. A HotPDF saját AutoFormAppearances útvonala esetén a több-bájtos szövegek helyőrző üres-AP ága érvényben marad (a v2.56.0+ feladat); a formázott szöveget kezelő olvasók figyelmen kívül hagyják ezt az AP-t, és közvetlenül az /RV-ből renderelnek
FieldName - a PDF-űrlapmező /T részleges neve (egyedinek kell lennie a szülőn alul), ahol a szóközök és a nem-ASCII bájtok megengedettek; a nem-ASCII karakterek UTF-16BE kódolást váltanak ki a kibocsátott /T karakterláncon
InitialValue - az egyszerű szöveges PDF karakterlánc, amely a /V és /DV mezőkbe íródik. Az /RV-t nem értelmező olvasók ezt az értéket használják a megjelenítéshez
RichValue - PDF 1.7 L melléklet szerinti címkézett XHTML törzs (a leginkább hordozható formátum a <?xml version="1.0"?> bevezetéssel és egy xfa:contentType="text/html" névtér-attribútumot hordozó XHTML <body> gyökérrel kezdődik). A soron belüli stílusformázás az <span style="..."> elemet használja CSS tulajdonságokkal (font-family, font-size, font-weight, font-style, color stb.)
DefaultStyle - a felhasználó által a kitöltéskor beírt karakterekre alkalmazott CSS-szerű stíluskarakterlánc, ha a /RV-ben nincs karakterenkénti stílus megadva. Példa: 'font: 12pt Helvetica; color: #000000'
Rectangle - a widget /Rect területe HotPDF képernyő-koordinátákban (bal felső origó); az Y-vetítés automatikusan megtörténik, amikor a téglalap átalakításra kerül a PDF felhasználói térbe
MaxLen - opcionális; ha nagyobb nullánál, egy /MaxLen bejegyzést bocsát ki, amely korlátozza a felhasználó által beírható karakterek számát. Alapértelmezett értéke 0 (nincs korlát)
Flags - opcionális; bármilyen további mezőjelző, amelyet bitenkénti VAGY kapcsolattal kell hozzáadni az /Ff-hez az automatikusan hozzáadott RichText biten felül. Tipikus további jelzők: ffMultiline a többbekezdéses formázott szövegtörzsekhez, ffReadOnly a csak megjelenítésre szánt formázott szövegekhez. Az ffRichText jelző mindig hozzáadásra kerül, így a hívónak nem kell tartalmaznia azt
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;
Lásd még
AddTextField, AutoFormAppearances, Version, AcroForm támogatás
|