Native FreeText default appearance'ları
Native FreeText fallback, sınırlı default-appearance durumunu üretilmiş metne, layout'a, otomatik sığdırmaya ve süslemelere uygular
Verilen bir normal appearance, FreeText default appearance'ı ve rich text'ten üretime göre önceliklidir
Default-appearance operator'leri
| Operator'ler | Fallback davranışı |
|---|---|
Tf | Orijinal yazı tipi kaynağını ve metin boyutunu seçer; sıfır boyut sınırlı otomatik sığdırma ister |
g rg k | Metin dolgu rengini gri, RGB veya CMYK olarak başlatır |
Tc Tw Tz | Karakter aralığını, kelime aralığını ve yatay metin ölçeğini boyamaya ve layout ölçümlerine uygular |
Ts TL | Metin yükseltisini ve açık taban çizgisi ayrımını uygular; sıfır veya negatif leading dâhil |
Tm | En fazla bir matris kabul eder; lineer kısmı üretilmiş metni dönüştürür, yerleşimi ise anotasyon layout'u belirler |
Tr | Sıfırdan yediye glyph boya ve metin kırpma modlarını seçer |
G RG K w J j M d | Metin ve üretilmiş süslemeler için stroke rengini, genişliği, cap'ı, join'i, miter'i ve dash durumunu başlatır |
Matris translation operanda doğrulanır ama FreeText'in anotasyon dikdörtgeni içindeki yerleşimini değiştirmez
Yatay ölçek sıfır veya negatif olabilir; yükselti, aralık ve lineer matris dönüştürülmüş glyph, advance ve süsleme geometrisine katılır
Bu sınırlı bir default-appearance profilidir, genel bir PDF content-stream yorumlayıcısı değildir; desteklenmeyen operator'ler, geçersiz operand sayıları, bozuk değerler ve yinelenen metin matrisleri bir rendering hatası üretir
Stroke renk bileşenleri sıfır ile bir arasında olmalı, cap ve join değerleri sıfırdan ikiye tamsayı olmalı, genişlik negatif olmamalı ve miter limit en az bir olmalıdır
Bir dash array en fazla 256 negatif olmayan sonlu değer içerebilir ve boş olmayan bir array pozitif bir değer içermelidir; boş array solid stroke'ları seçer, tek sayılı array yinelenir ve faz negatif olmamalıdır
Layout, kaydırma ve yerleşim
FreeText hizalama, sol, orta veya sağ yerleşim için görünür advance'leri kullanır; kodlanmış sondaki boşluklar ve onların kaynak eşlemeleri, üretilmiş stream o parçaları koruduğunda mevcut kalır
Kelime sınırı kaydırma ve sert paragraf sonları ayrı ele alınır; kırılmayan boşluk, sıradan bir ASCII yumuşak ayırıcıya dönüşmez
Orijinal ham-yazı-tipi yolu, sınırlı boşluk ve tire kaydırma kurallarını korur; bu kabul kümesi her Unicode satır kırma, çift yönlü veya karmaşık shaping durumunu kapsamaz
Fiziksel anotasyon dikdörtgeni, kök Form sınırları ve iç kırprma sabit kalır; geçici alt Form sınırları tam ata ve yerleşim zincirini hesaba katar
Glyph boyama ve metin kırpma
Tr | Glyph boyama | Kırpma katkısı |
|---|---|---|
| 0 | Dolgu | Yok |
| 1 | Stroke | Yok |
| 2 | Dolgu ve stroke | Yok |
| 3 | Glyph boyama yok | Yok |
| 4 | Dolgu | Glyph dış hatları |
| 5 | Stroke | Glyph dış hatları |
| 6 | Dolgu ve stroke | Glyph dış hatları |
| 7 | Glyph boyama yok | Glyph dış hatları |
Dörtten yediye modlar, tek bir metin nesnesinde üretilmiş run'lar boyunca glyph dış hatlarını biriktirir; biriktirilmiş metin kırpması, o metin nesnesinden sonra üretilen alt çizgi ve üstü çizili süslemelere uygulanır
Kırpma, genişletilmiş stroke silüeti yerine glyph dış hatlarını kullanır; boyama durumu her run'a özgü kalır ve kapsayan graphics-state kapsamı kırpmanın ömrünü sınırlar
Başlangıç DA stroke durumu, kök süsleme kapsamında olduğu gibi metin kapsamlarında da uygulanır; run başına geçersiz kılmalar ve graphics-state save/restore anlamlarını korur
Dört pozitif kırpma durumu, el yazısı iki-run appearance'ları, pozitif kırpılmış süslemeler ve glyph birleşimi dışındaki beyaz örneklerle ayrı bir kabul kapısıdır
Bu kapı ayrıca backend metin kırpmasını test etmek için açık-appearance dikdörtgen-dolgu tanığı kullanır; tanık, eksik-appearance üretiminin dikdörtgen dolgusu saldığını iddia etmez
Bağımsız pozitif Tr4 ile Tr7 okuyucu doğrulaması, dört sonlu iki-run durumunu resmi MuPDF 1.28.5 ve Poppler ile geçti; her iki glyph iç kısmı, kırpılmış süslemeler ve glyph birleşimi dışındaki beyaz örnekler dâhil
Ayrı clip-only test revizyonu, değişmemiş sayfa-uzayı tanık noktalarından tam piksel hücreleri seçmek için Scale4 kullanır; orijinal renk eşiklerini korur ve normal rendering'i Scale1'de bırakır
MuPDF 1.28.2, aynı metin nesnesinde bir renk değişikliği sonraki bir run'dan önce bir run'ı boşalttığında kırpma-sınırı uyumluluk sorunu yaşar; önceki run biriktirilmiş kırpma sınırlarından çıkarılabilir
Resmi MuPDF 1.28.5 CLI ve bağımsız sabitlenmiş Poppler bu değişmemiş appearance'ları kabul etti; okuyucu sürümleri ve sonlu pozitif kontroller, her rendering pipeline'i için bir garanti olmaktan ayrı kalır
Otomatik sığdırma
Sıfır DA yazı tipi boyutu, başlangıç üretilmiş layout'undan sınırlı bir küçültme ve iyileştirme araması başlatır; yalnızca dönüştürülmemiş satır yüksekliği yerine dönüştürülmüş glyph yolları, advance'ler ve süslemeler kullanır
Stroke genişletmesi, kesikli kare-cap köşelerin ve miter join'lerin ihtiyatlı dönüştürülmüş desteğini içerir
Arama, yerleşik Cairo ve FreeType yol kuantalamasını korur; matematiksel olarak en büyük ideal yazı tipi boyutunu veya okuyucular arasında özdeş hinting vaat etmez
Sınırlı arama en küçük denemesine ulaşmadan önce hiçbir deneme sığmazsa, fiziksel kırprma yayımlamayı yine sınırlar; çok uzun içeriğin tamamen görünür kalacağı garanti edilmez
Orijinal yazı tipleri ve kaynak sınırları
Orijinal gömülü Type1C, CIDFontType0C ve çıplak Type1 fallback zaten destekleniyor; tam OpenType CFF ve CFF2 default-instance appearance yolları belgelenmiş eşleme ve gömme kurallarını korur
Bağımsız ham CFF2 stream'leri ve varsayılan olmayan varyasyon koordinatlarının seçimi, yayımlanan CFF2 yolunun dışında kalır
Token, nesne, çalışma belleği, işlem, çözülmüş veri ve çıktı sınırları ayrıştırmaya, geçici kaynaklara, sığdırmaya ve yayımlamaya uygulanır; sınırlı iş sırasında cancellation yoklanır
Başarısızlık kaynak graf'i korur ve aynı belge içinde kurtarmaya izin verir; bir sınıra ulaşmak kısmen üretilmiş bir appearance'ı başarılı bir sonuca dönüştürmez
Tekrarlanabilir kabul ve kalan sınırlar
Genel suite, varlıkları ve eksiksiz arşiv manifestosuyla dağıtılan Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py'dir
Normal modu, maksimum kanal farkı ikide 45 aday/el-yazısı-AP çifti, yedi orijinal limit grubu ve epsilon 1e-6'da bağımsız orijinal-AP sürekli geometrisi çalıştırır
Pozitif orijinal-AP okuyucu render'ları ve bilinen dikey piksel hücre gözlemleri sürekli geometriden ayrı kaydedilir; ne çift eşitliği ne de o sonlu gözlemler keyfi üretilmiş aday geometrisini veya keyfi dönüştürülmüş raster zarflarını kanıtlar
Sonlu-AP modu, korunan altı açık-appearance afin ve dash kontrolünü denetler; normal kabulü, üretilmiş aday kontrollerini veya limit testlerini değiştirmez
Korunan 45 üretilmiş appearance, epsilon 1e-6'da bağımsız sürekli geometriyi geçti; onların 90 sabitlenmiş MuPDF ve Poppler okuyucu görseli, tüm 3,168,000 piksel hücresinde maksimum kanal farkı sıfır, atlanan görsel yok ve dışlanan hücre yokla bağımsız bir tam-görsel modelini de geçti
O sonlu model, beklenen glyph'leri, dönüşümleri, kırpmayı, stroke'ları ve kompozisyonu orijinal el yazısı appearance'larından ve yazı tipi dış hatlarından türetir, her okuyucunun sabitlenmiş FreeType çekirdeğini kullanır; beklenen pikselleri gözlemlenen görsellerden öğrenmez
Orijinal maksimum kanal farkı iki olarak ve mürekkep eşiği 245 olarak kalır; bu geçişler korunan korpusu ve sabitlenmiş pipeline'ları kapsar, keyfi yazı tiplerini, tüm renderer derlemelerini veya matematiksel olarak en büyük sığdırılmış boyutun kanıtını değil
Linux ve Windows FPC hedefleri FPC 3.3.1 veya üstünü gerektirir; Windows FPC ayrıca doğrulanmış özel bir NoGUI bağımlılık derlemesi kullanır ve masaüstü-okuyucu başlatması yoktur
İlgili konular: anotasyon fallback'i, anotasyon süslemeleri, rich text run spacing'i, orijinal ham-yazı-tipi appearance'ları ve OpenType CFF2 default-instance appearance'ları