Native Rich Text Field'ları
SetRichTextFieldValueWithAppearance, eşzamanlanmış düz metin V'yi, kanonik XHTML RV'yi, RichText field flag'ini ve her mevcut widget için gerçek görünümleri yazar
Her run, Unicode metni, bir yazı tipi style'ı, pozitif punto boyutu, RGB rengi, opsiyonel underline veya strikeout, paragraph break'leri ve left, center veya right alignment sağlar; dört style yazı tipi, mevcut editing ve gömme denetimleriyle çağıran-tarafından-sağlanan Unicode TrueType programlarıdır
Run'lar default'ta 12pt regular siyah style kullanır; paragraph alignment'ı ilk run'ından gelir ve left'e default'ludur
Appearance, gerçek gömülü style yazı tiplerini, glyph eşlemelerini ve paylaşılan satır baseline'larıyla ölçülmüş kelime fragment'larını kullanır; tekrar fragment'lar, bir widget içinde her style yazı tipi programını paylaşır
Açık CR, LF, CRLF, NEL, LINE SEPARATOR ve PARAGRAPH SEPARATOR break'leri ve paragraph geçişleri multiline bir field gerektirir; ölçülen wrapping, widget rotasyonları ve clipping, gerçek widget dikdörtgenini kullanır
Yazılan güncelleme, düz metin bir field'da rich text'i etkinleştirebilir; password, file-select ve comb kombinasyonları ise mutation'dan önce reddedilir
Read-only, MaxLen, authenticated imzalı-belge politikaları, şifrelenmiş form-fill izinleri, cancellation ve object, yazı tipi, glyph ve output bütçeleri hâlâ uygulanır
Tüm rich güncellemeler, belgeyi değiştirmeden önce V, RV, Ff ve AP override'larını hazırlar; kayıtlı string'ler ve stream'ler orijinal AES-256 R5 veya R6 politikasını korur
Style array'leri, layout satırları ve boyanan fragment'lar, yapılandırılmış belge limitlerine ek olarak her biri 4096-item tavana sahiptir; style yazı tipi baytları toplam olarak ücretlendirilir
Mevcut bir rich field üzerindeki sıradan SetTextFieldValueWithAppearance çağrıları, içeriğini sağlanan düz style ile değiştirir ve RV'yi eşzamanlar; value-only SetTextFieldValue çağrıları da RV'yi eşzamanlar ve NeedAppearances=true'yı tutar
GetRichTextFieldValue, kalıtılan value'lar dâhil gerçek saklanan XHTML metin string'ini veya UTF-8 metin stream'ini okur
Her paragraph'ın ilk run'ı, o run'ın metni boş olsa bile alignment'ını seçer; inline style değişiklikleri ve açık satır sonları o paragraph alignment'ını korur
Wrapped multiline field'lardaki aşırı-geniş kelimeler, Unicode 17 extended grapheme sınırlarında bölünür — combining dizileri, supplementary scalar'lar, emoji dizileri ve orijinal V/RV metni korunarak; field'dan daha geniş bölünemez bir küme, bozulmadan kalır ve kırpılır
Dikdörtgen ve circle border'lar content clip'ten önce boyanır ve seçili multiline satırlar, her rich satırın ölçülmüş ascent, descent ve boşluğunu kullanarak gerçek mavi arka planlar alır
Native JSON ABI
{"schemaVersion":1,"type":"forms.fill","fields":[
{"name":"Input","fontFamily":"DejaVu Sans Mono","richTextRuns":[
{"text":"Regular Unicode text "},
{"text":"Bold red text","fontStyle":"bold","fontSize":20,"color":[1,0,0]},
{"text":"Next paragraph","fontStyle":"italic","paragraphBreakBefore":true,
"alignment":"center","underline":true}
]}
]}
richTextRuns, zorunlu text ve opsiyonel fontStyle, fontSize, color, underline, strikeOut, paragraphBreakBefore ve alignment ile object'lerden oluşan bir array'dir; fontStyle regular, bold, italic veya boldItalic kabul eder
Opsiyonel fontFamilies array'leri, fontFamily üzerinden run başına gerçek adlandırılmış programlar seçer — edit-düzeyi bir array operation-düzeyi array'i geçersiz kılar ve atlanan run label'ları ilk family'yi seçer
Atlanan run fontSize, pozitifken field operation fontSize'ını, aksi hâlde 12'yi kullanır; opsiyonel bir value, run'lardan türetilen düz metni — açık paragraph'lar arasındaki carriage return ile — tam olarak eşleşmelidir
Style'lı run'lar appearance=true gerektirir; forms.read, rich bir field için gerçek saklanan XHTML'i richText içinde döndürür
ABI, mevcut operation layout'unu tutar ve yeni yüklenmiş context'i commit etmeden önce eksiksiz binary ve result output hazırlar; başarısız yazmalar veya cancellation önceki field'ı korur
Kabul ve kalan iş
Tests/Linux/Run-HeadlessRichTextAcceptance.sh ve Tests/Linux/HotPDFHeadlessRichTextTests.pas gerçek kayıtlı PDF'leri çalıştırır; Verify-HeadlessRichText.py, XHTML'i, value'ları, dört gerçek yazı tipi programını, glyph map'lerini, decoration path'lerini ve görünür widget piksellerini bağımsız denetler
Bu API, yazılan run'ları kabul eder ve eksiksiz paragraph'lar üzerinden default Unicode 17 fırsatlarını tüketir — style değişiklikleri boyunca kelime, nonbreaking-space, noktalama ve sayısal grupları koruyarak; taze bir satıra sığan gruplar, gerçek style'lı yazı tipi advance'leriyle birlikte taşınır
Style grup wrapping, karışık punto boyutları için paylaşılan baseline'ları da korur ve hem gerçek layout'ta hem kanonik XHTML'de style dikişleri boyunca CRLF'i birleştirir
Style'lar boyunca grapheme fitting, eksiksiz aşırı-geniş mantıksal kümeleri tek fiziksel satıra atar — gerçek font, renk ve boyut fragment'larını ve dikdörtgenden geniş bölünemez küme için mevcut clipping davranışını koruyarak
Contextual joining, çevredeki Unicode metni kullanır ve her gerçek fiziksel satır, yazılan style'lar boyunca karışık bidi ve script item'leri sıralarken paragraph yönünü korur
Style'lar arası işaretler, gerçek base, ligature ve öncelen mark glyph'leri için gerçek GPOS attachment'ları kullanır — her style yazı tipini, punto boyutunu ve rengi ile görünür glyph taşmalarını koruyarak
Rich FDF ve XFDF exchange, desteklenen sınırlı XHTML style profilini gerçek gömülü yazı tiplerine ve kayıtlı görünümlere decode eder
Açık yönlü embedding'ler, override'lar, isolate'ler ve paired-bracket context, yazılan style'lar boyunca otomatik wrapping boyunca hayatta kalır; tek paylaşılan mantıksal paragraph sırası, bağımsız fiziksel-satır yeniden sıralaması ve native contextual glyph shaping sağlar
Yalnızca Unicode yönlü kontrolleri içeren kümeler, orijinal mantıksal value'yu ve seçim metnini character boşluğu tüketmeden korur; görünür kümeler ve sıradan boşluklar yapılandırılmış advance'lerini tutar
Paragraph'tan-türetilmiş satır sırası ve cache'lenmiş satır yeniden sıralaması, eksiksiz UTF-16 scalar sınırlarını korur ve paylaşılan paragraph record'unu mutasyona uğratmadan fiziksel-satır trailing whitespace'ini sıfırlar
Adlandırılmış yazı tipi family'leri, gerçek family yazı tipleriyle, bağımsız advance'lerle ve family-duyarlı form import'ıyla açık yazılan-run ve sınırlı XHTML seçimi sağlar
Sağlanan-family fallback, yazılmış style dikişleri boyunca eksiksiz grapheme'leri seçer ve Linux JSON ve versiyonlu callback'ler, aynı davranışı gerçek yapılandırılmış yazı tipi programlarına bağlar
İç style sheet'leri, paylaşılan sınırlı selector cascade'ini native rich value'lara ve FDF/XFDF import'larına uygular; daha geniş XHTML/CSS, harici style sheet'ler ve genel layout etkin iş olarak kalır