THPDFPage.AddRichTextField metódus

 

THPDFPage.AddRichTextField

THPDFPage

 

Tetejére

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