THPDFPage.AddRichTextField Method

 

THPDFPage.AddRichTextField

THPDFPage

 

Atas

Menambahkan widget teks rich-text AcroForm PDF 1.5+ (ISO 32000-1 12.7.4.3 + Annex L) ke halaman saat ini. Widget ini membawa fallback teks biasa standar /V + /DV yang dipakai oleh pembaca yang tidak mem-parse rich text, ditambah body XHTML rich-text /RV baru dan entri style bawaan /DS yang langsung dipakai Acrobat dan Foxit untuk merender teks bergaya. Bit RichText /Ff (26) di-OR secara otomatis

 

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());

 

Deskripsi

Widget ini dikeluarkan sebagai field formulir Tx dengan /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff dengan bit RichText disetel, InitialValue yang disediakan sebagai /V dan /DV, RichValue sebagai /RV, dan DefaultStyle sebagai /DS. InitialValue, RichValue, dan DefaultStyle mendeteksi konten multi-byte secara otomatis dan beralih ke encoding string hex UTF-16BE saat perlu (sesuai perilaku AddTextField yang sudah ada untuk field teks biasa internasional)

Rendering rich text terjadi di pembaca: viewer PDF Acrobat / Foxit / Edge / Chrome semuanya mem-parse /RV saat bit RichText aktif dan mengambil fallback font Unicode dari sistem, sehingga konten CJK, Cyrillic, Arabic, dan Latin beraksen tampil benar tanpa HotPDF menyematkan font CID ke resource /DR. Untuk jalur AutoFormAppearances milik HotPDF sendiri, cabang placeholder empty-AP untuk teks multi-byte tetap ada (tugas v2.56.0+); pembaca yang paham rich text mengabaikan AP itu dan merender langsung dari /RV

 

FieldName - nama parsial /T dari field formulir PDF (harus unik di dalam induknya). Spasi dan byte non-ASCII diterima; non-ASCII memicu encoding UTF-16BE pada string /T yang dikeluarkan

InitialValue - string teks biasa PDF yang ditulis ke /V dan /DV. Pembaca yang tidak mem-parse /RV akan memakai nilai ini untuk tampilan

RichValue - body XHTML bertag Annex L PDF 1.7 (bentuk paling portabel dimulai dengan <?xml version="1.0"?> dan root XHTML <body> yang membawa atribut namespace xfa:contentType="text/html"). Styling inline memakai <span style="..."> dengan properti CSS (font-family, font-size, font-weight, font-style, color, dll)

DefaultStyle - string style mirip CSS yang diterapkan ke karakter yang diketik pengguna saat pengisian ketika tidak ada style per karakter di /RV. Contoh: 'font: 12pt Helvetica; color: #000000'

Rectangle - /Rect widget dalam koordinat layar HotPDF (origin kiri atas); proyeksi Y terjadi otomatis saat rect dikonversi ke user space PDF

MaxLen - opsional; saat lebih besar dari nol, mengeluarkan entri /MaxLen yang membatasi jumlah karakter yang dimasukkan pengguna. Nilai bawaan 0 (tanpa batas)

Flags - opsional; flag field tambahan apa pun untuk di-OR ke /Ff di luar bit RichText yang ditambahkan otomatis. Flag tambahan yang umum: ffMultiline untuk body rich text multi-paragraf, ffReadOnly untuk teks terformat hanya tampil. Flag ffRichText selalu ditambahkan sehingga pemanggil tidak perlu menyertakannya

 

Contoh kode

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