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 |