Natywne domyślne wyglądy FreeText

Natywny fallback FreeText nakłada ograniczony stan default appearance na generowany tekst, layout, automatyczne dopasowanie i dekoracje

Dostarczony normalny wygląd ma pierwszeństwo przed generowaniem z domyślnego wyglądu FreeText i rich textu

Operatory default appearance

OperatoryZachowanie fallbacku
TfWybiera oryginalny zasób fontu i rozmiar tekstu; rozmiar zero żąda ograniczonego automatycznego dopasowania
g rg kInicjalizuje kolor wypełnienia tekstu w gray, RGB albo CMYK
Tc Tw TzNakłada character spacing, word spacing i poziomą skalę tekstu na malowanie i pomiary layoutu
Ts TLNakłada text rise i jawne rozdzielenie linii bazowej, włącznie z zerową albo ujemną interlinią
TmAkceptuje co najwyżej jedną macierz; jej część liniowa transformuje generowany tekst, a layout adnotacji decyduje o umiejscowieniu
TrWybiera tryby malowania glifów i przycinania tekstu od zera do siedmiu
G RG K w J j M dInicjalizuje kolor, szerokość, kapitalik, łączenie, miter i stan kreskowania dla tekstu i generowanych dekoracji

Operandy translacji macierzy są walidowane, ale nie podmieniają umiejscowienia FreeText w jego prostokącie adnotacji

Skala pozioma może być zerowa albo ujemna; rise, spacing i macierz liniowa uczestniczą w transformowanej geometrii glifów, posuwów i dekoracji

To ograniczony profil default appearance, nie ogólny interpreter strumieni zawartości PDF; nieobsługiwane operatory, złe liczby operandów, zniekształcone wartości i powtórzone macierze tekstu produkują błąd renderowania

Składniki koloru obrysu muszą mieścić się w zakresie od zera do jedynki, wartości kapitalików i łączeń muszą być integerami od zera do dwóch, szerokość musi być nieujemna, a limit mitera co najmniej jeden

Tablica kreskowania może zawierać co najwyżej 256 nieujemnych skończonych wartości, a niepusta tablica musi zawierać wartość dodatnią; pusta tablica wybiera pełne obrysy, nieparzysta tablica się powtarza, a faza musi być nieujemna

Layout, zawijanie i umiejscowienie

Wyrównanie FreeText używa widocznych posuwów dla umiejscowienia do lewej, środka albo prawej; zakodowane końcowe spacje i ich mapowania źródłowe pozostają obecne, gdy wygenerowany strumień zachowuje te fragmenty

Zawijanie po granicach słów i twarde łamania akapitów mają osobną obsługę; twarda spacja nie staje się zwykłym miękkim separatorem ASCII

Oryginalna ścieżka raw font zachowuje swoje ograniczone reguły zawijania spacji i łączników; ten zbiór akceptacji nie rozstrzyga każdego przypadku łamania linii Unicode, dwukierunkowości ani złożonego kształtowania

Fizyczny prostokąt adnotacji, granice Formu korzenia i wewnętrzne przycięcie pozostają stałe; tymczasowe granice Formów potomnych uwzględniają kompletny łańcuch przodków i umiejscowienia

Malowanie glifów i przycinanie tekstu

TrMalowanie glifówWkład do przycięcia
0WypełnienieBrak
1ObrysBrak
2Wypełnienie i obrysBrak
3Brak malowania glifówBrak
4WypełnienieKontury glifów
5ObrysKontury glifów
6Wypełnienie i obrysKontury glifów
7Brak malowania glifówKontury glifów

Tryby od czterech do siedmiu akumulują kontury glifów między generowanymi runami w jednym obiekcie tekstu; zakumulowane przycięcie tekstu działa po tym obiekcie tekstu na kolejne generowane dekoracje podkreślenia i przekreślenia

Przycięcie używa konturów glifów zamiast rozszerzonego sylwetkowego obrysu; stan malowania pozostaje specyficzny dla każdego runa, a obejmujący zakres stanu grafiki ogranicza czas życia przycięcia

Początkowy stan obrysu DA jest nakładany także w zakresie dekoracji korzenia oraz w zakresach tekstu; nadpisania per run i zapisywanie/przywracanie stanu grafiki zachowują swoje znaczenie

Cztery pozytywne przypadki przycinania to osobna brama akceptacji z ręcznie pisanymi wyglądami dwóch runów, pozytywnymi przyciętymi dekoracjami i białymi próbkami poza unią glifów

Ta brama używa też świadka wypełnienia prostokąta jawnego wyglądu do testowania przycinania tekstu w backendzie; świadek nie twierdzi, że generowanie brakującego wyglądu emituje wypełnienie prostokąta

Niezależna walidacja czytelników dla pozytywnych Tr4 do Tr7 przeszła cztery skończone przypadki dwóch runów z oficjalnym MuPDF 1.28.5 i Popplerem, włącznie z oboma wnętrzami glifów, przyciętymi dekoracjami i białymi próbkami poza unią glifów

Osobna rewizja testów tylko-przycinania używa Scale4 do wyboru kompletnych komórek pikseli z niezmienionych punktów świadka w przestrzeni strony; zachowuje oryginalne progi kolorów i zostawia normalne45 renderowanie na Scale1

MuPDF 1.28.2 ma problem zgodności granic przycinania, gdy zmiana koloru flushuje jeden run przed późniejszym runem w tym samym obiekcie tekstu; wcześniejszy run może być wykluczony z zakumulowanych granic przycięcia

Oficjalne CLI MuPDF 1.28.5 i niezależnie przypięty Poppler zaakceptowały te niezmienione wyglądy; wersje czytelników i skończone pozytywne kontrole pozostają czymś innym niż gwarancja dla każdego pipeline'u renderowania

Automatyczne dopasowanie

Rozmiar fontu DA równy zero startuje ograniczone wyszukiwanie z kurczeniem i rafinacją od początkowego wygenerowanego layoutu, używając transformowanych ścieżek glifów, posuwów i dekoracji zamiast tylko nieprzekształconej wysokości linii

Ekspansja obrysu obejmuje konserwatywną transformowaną podporę kreskowanych narożników z kwadratowym kapitalikiem i połączeń miter

Wyszukiwanie zachowuje ustaloną kwantyzację ścieżek Cairo i FreeType; nie obiecuje matematycznie największego idealnego rozmiaru fontu ani identycznego hintingu między czytelnikami

Jeśli żadna próba nie pasuje zanim ograniczone wyszukiwanie osiągnie swoją minimalną próbę, fizyczne przycięcie nadal ogranicza publikację; bardzo długa zawartość nie ma gwarancji pełnej widoczności

Oryginalne fonty i limity zasobów

Oryginalne osadzone Type1C, CIDFontType0C i goły fallback Type1 są już obsługiwane; kompletne ścieżki wyglądów OpenType CFF i CFF2 default instance zachowują swoje udokumentowane reguły mapowania i osadzania

Samodzielne surowe strumienie CFF2 i wybór niedomyślnych współrzędnych wariacji pozostają poza wydaną ścieżką CFF2

Limity tokenów, obiektów, pamięci roboczej, operacji, zdekodowanych danych i wyjścia obowiązują w parsowaniu, tymczasowych zasobach, dopasowaniu i publikacji; anulowanie jest odpytywane podczas ograniczonej pracy

Niepowodzenie zachowuje graf źródła i pozwala na odzyskanie w tym samym dokumencie; osiągnięcie limitu nie zmienia częściowo wygenerowanego wyglądu w udany wynik

Reprodukowalna akceptacja i pozostałe granice

Publiczna suita to Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py, dystrybuowana z zasobami i kompletnym manifestem archiwum

Jej tryb normalny uruchamia 45 par candidate/handwritten-AP przy maksymalnej różnicy kanałów dwa, siedem oryginalnych grup limitów i niezależną ciągłą geometrię oryginalnych AP przy epsilon 1e-6

Pozytywne rendery czytelników oryginalnych AP i znane pionowe obserwacje komórek pikseli są rejestrowane osobno od ciągłej geometrii; ani równość par, ani te skończone obserwacje nie dowodzą dowolnej geometrii generowanych kandydatów ani dowolnych transformowanych obwiedni rastrów

Tryb finite-AP sprawdza sześć zachowanych kontroli affine i kreskowania jawnego wyglądu; nie zastępuje normalnej akceptacji, checków generowanych kandydatów ani testów limitów

Zachowane 45 wygenerowanych wyglądów przeszło niezależną ciągłą geometrię przy epsilon 1e-6; ich 90 przypiętych obrazów czytelników MuPDF i Poppler przeszło też niezależny model całego obrazu po wszystkich 3.168.000 komórek pikseli z maksymalną różnicą kanałów zero, bez pominiętych obrazów i bez wykluczonych komórek

Ten skończony model wyprowadza oczekiwane glify, transformacje, przycinanie, obrysy i kompozycję z oryginalnych ręcznie pisanych wyglądów i konturów fontów, używając przypiętego kernela FreeType każdego czytelnika; nie uczy się oczekiwanych pikseli z obserwowanych obrazów

Oryginalna maksymalna różnica kanałów pozostaje dwa, a próg tuszu 245; te przejścia pokrywają zachowany korpus i przypięte pipeline'y, nie dowolne fonty, wszystkie buildy rendererów ani dowód matematycznie największego dopasowanego rozmiaru

Targety FPC Linux i Windows wymagają FPC 3.3.1 albo nowszego; Windows FPC używa osobno zweryfikowanego prywatnego buildu zależności NoGUI i bez uruchamiania desktopowego czytelnika

Powiązane tematy: fallback adnotacji, dekoracje adnotacji, run spacing rich textu, oryginalne wyglądy raw fontów i wyglądy default instance OpenType CFF2