THPDFPage.AddRichTextField Method

 

THPDFPage.AddRichTextField

THPDFPage

 

Üst

Geçerli sayfaya PDF 1.5+ AcroForm zengin metin widget'ı ekler (ISO 32000-1 12.7.4.3 + Annex L). Widget; zengin metni ayrıştırmayan okuyucuların kullandığı standart /V + /DV düz metin yedeğini, ayrıca Acrobat ve Foxit'in stilli metni çizmek için doğrudan tükettiği yeni /RV zengin metin XHTML gövdesini ve /DS varsayılan stil girdilerini taşır. /Ff RichText biti (26) otomatik olarak OR'lanır.

 

Delphi sözdizimi:

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

 

C++ sözdizimi:

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

 

Açıklama

Widget, /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), RichText biti ayarlı /Ff, hem /V hem /DV olarak verilen InitialValue, /RV olarak RichValue ve /DS olarak DefaultStyle değerleriyle bir Tx form alanı olarak yazılır. InitialValue, RichValue ve DefaultStyle, çok baytlı içeriği otomatik algılar ve gerektiğinde UTF-16BE hex dizesi kodlamasına geçer (uluslararası düz metin alanları için var olan AddTextField davranışıyla uyumlu).

Zengin metin çizimi okuyucuda gerçekleşir: Acrobat / Foxit / Edge / Chrome PDF görüntüleyicilerin tümü, RichText biti açıkken /RV'yi ayrıştırır ve Unicode yazı tipi yedeklerini sistemden alır; böylece CJK, Kiril, Arapça ve aksanlı Latin içeriği, HotPDF'in /DR Resources'a bir CID yazı tipi gömmesine gerek kalmadan doğru görüntülenir. HotPDF'in kendi AutoFormAppearances yolunda çok baytlı metin için yer tutucu boş-AP dalı yerinde kalır (v2.56.0+ işi); zengin metinden anlayan okuyucular o AP'yi yok sayar ve doğrudan /RV'den çizer.

 

FieldName - PDF form alanının /T kısmi adı (üst öğesi içinde benzersiz olmalıdır). Boşluklar ve ASCII olmayan baytlar kabul edilir; ASCII olmayan içerik, yazılan /T dizesinde UTF-16BE kodlamayı tetikler.

InitialValue - /V ve /DV'ye yazılan düz metin PDF metin dizesi. /RV'yi ayrıştırmayan okuyucular görüntüleme için bu değere döner.

RichValue - PDF 1.7 Annex L etiketli XHTML gövdesi (en taşınabilir biçim <?xml version="1.0"?> ile başlar; kökü bir XHTML <body> öğesi olup xfa:contentType="text/html" namespace özniteliğini taşır). Satır içi stiller <span style="..."> ile ve CSS özellikleri (font-family, font-size, font-weight, font-style, color vb.) kullanılarak verilir

DefaultStyle - /RV içinde karakter başına stil yoksa, kullanıcının doldurma sırasında yazdığı karakterlere uygulanan CSS benzeri stil string'i. Örnek: 'font: 12pt Helvetica; color: #000000'

Rectangle - widget'ın HotPDF ekran koordinatlarındaki /Rect'i (sol üst orijinli); dikdörtgen PDF kullanıcı uzayına dönüştürülürken Y yansıtması otomatik yapılır.

MaxLen - isteğe bağlı; sıfırdan büyükse kullanıcı tarafından girilen karakter sayısını sınırlayan bir /MaxLen girdisi yazar. Varsayılan 0'dır (sınırsız).

Flags - isteğe bağlı; otomatik eklenen RichText bitinin ötesinde /Ff ile OR'lanacak ek alan bayrakları. Tipik ek bayraklar: çok paragraflı zengin metin gövdeleri için ffMultiline, yalnızca görüntülenen biçimli metin için ffReadOnly. ffRichText bayrağı her zaman eklenir, bu yüzden çağıranın onu dahil etmesi gerekmez

 

Kod Örneği

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

 

Ayrıca bakın

AddTextField, AutoFormAppearances, Version, AcroForm desteği