HotPDF Informacje o wydaniach
Historia wersji funkcji HotPDF widocznych dla użytkownika, poprawek błędów, aktualizacji kompatybilności i zmian w dokumentacji
Uwaga: przechowywanych jest tylko 800 najnowszych zapisów zmian
Last release
- Najnowsza wersja: 2.974.0; Data wydania: 2026-10-11
Version 2.974.0
Added
- Usuwanie adnotacji stron po dokładnej stronie i nazwie Unicode, włącznie z kaskadami popupów i odpowiedzi, przez ograniczone natywne API, transakcje Windows, joby JSON i wersjonowane callbacki z uwierzytelnionymi uprawnieniami i rollbackiem publikacji
Version 2.973.0
Added
- Wymiana binarnych adnotacji FDF z zachowanymi zasobami wyglądów, współdzielonymi grafami obiektów i lokalnymi destynacjami akcji przez natywne API, interchange Windows i wersjonowane callbacki
Version 2.972.0
Added
- Renderowanie domyślnych wyglądów adnotacji z zachowanym stanem tekstu, automatycznym dopasowaniem, spacingiem rich textu i przycinaniem tekstu, włącznie z trybami renderowania od 4 do 7
Version 2.971.1
Fixed
- Zapobieganie błędom range-check w publicznym cache shaped runów na buildach FPC 3.3.1 Windows przez zachowanie jawnej modularnej multiplikacji hasha 32-bit, dokładnej izolacji kluczy cache i ewikcji LRU
Version 2.971.0
Added
- Matchowanie korzeniowego :scope i dopuszczanie statycznych pseudo klas hover, active i focus z nieaktywnym stanem interakcji, zachowując negację, selektory logiczne i relatywne, support queries i zapisane wyglądy FDF/XFDF
Version 2.970.0
Added
- Ewaluacja natywnych grup @supports rich textu i importów supports() z obsługiwanymi query deklaracji i selektorów, ograniczonymi zagnieżdżonymi warunkami, próbami świadomymi przestrzeni nazw, odzyskiwaniem po anulowaniu i obliczonymi zapisanymi wyglądami FDF/XFDF
Version 2.969.0
Added
- Ewaluacja skończonych wyrażeń calc, min, max i clamp, długości relatywnych do korzenia i jawnych długości viewportu oraz metryk linii i spacingu końcowego fontu w natywnym dekodowaniu rich textu, zapisanych wyglądach pól i importach rich FDF/XFDF
Fixed
- Dopuszczanie dokładnych minimalnych wymiarów mediów, rozdzielczości i początkowych rozmiarów fontu konsekwentnie na targetach kompilatorów przy dalszym odrzucaniu wartości poniżej obsługiwanego ograniczenia
Version 2.968.0
Added
- Ewaluacja jawnego color scheme rich textu, reduced motion, preferencji przezroczystości i danych, kontrastu, forced i inverted colors oraz dostępności skryptów, zachowując nieznane pominięte preferencje i obliczone zapisane wyglądy
Version 2.967.0
Added
- Nakładanie linkowanych i importowanych arkuszy stylów rich textu dostarczonych przez wywołującego, ze współdzielonymi zestawami tytułów preferred lub alternate, ograniczonym rozwiązywaniem URI i bazy dokumentu oraz transakcyjną publikacją FDF/XFDF natywną, Windows i Linux
Version 2.966.0
Added
- Ewaluacja natywnych media queries rich text z jawnymi profilami print/screen, zagnieżdżonymi warunkami i ograniczonymi zakresami cech, zachowując obliczone style w zapisanych wyglądach i transakcyjnych importach FDF/XFDF
Version 2.965.0
Added
- Transakcyjne tworzenie, klonowanie i edycja natywnych drzew formularzy XFA, zachowując przeżywające tożsamości węzłów, rollback zdarzeń, obsługiwane wystąpienia pustego scalenia i zapisane pakiety formularzy niezależnie od autorskich szablonów
Version 2.964.0
Added
- Generowanie natywnych wyglądów plain, rich, shaped i rodzin z kompletnych fontów OpenType CFF2 w domyślnych współrzędnych wariacji, z zachowaniem tożsamości glifów, Unicode, szerokości i uprawnień osadzania w ograniczonym statycznym wyjściu CFF 1 kluczowanym CID
Version 2.963.0
Added
- Zastosowanie zakresowanych deklaracji przestrzeni nazw CSS i kwalifikowanych selektorów do natywnych pól rich-text i transakcji formularzy Windows/Linux, z zachowaniem wyliczonych wyglądów, ograniczonego wyszukiwania przestrzeni nazw, dokładnej publikacji no-op i zgodności buildów sprawdzanych
Version 2.962.0
Added
- Zawijanie generowanego tekstu adnotacji surowych czcionek na granicach spacji i dywizów między runami stylów, z zachowaniem kompletnych zakodowanych znaków, twardych łamań, automatycznego wymiarowania i ograniczonego anulowania
Version 2.961.0
Added
- Renderowanie brakujących wyglądów tekstu adnotacji z oryginalnymi programami czcionek Type1C, CIDFontType0C i gołym Type1, z zachowaniem mapowań Unicode, automatycznego wymiarowania, odstępów, wysokości linii i ograniczonych niemodyfikowalnych zasobów
Version 2.960.0
Added
- Transport standardowych wyglądów Form normal, rollover i down dla XFDF Stamp z osadzonymi zasobami czcionek i obrazów, ograniczonymi grafami acyklicznymi, uwierzytelnionymi transakcjami natywnymi i istniejącymi callbackami Windows/Linux
Version 2.959.0
Added
- Zastosowanie złożonych list not, tolerancyjnych list is i where, zakotwiczonych relacji has oraz filtrowanych pozycji nth-child w natywnych wewnętrznych arkuszach stylów rich-text, z zachowaniem specyficzności selektorów, wartości wyliczonych, czcionek i transakcyjnych wyglądów FDF/XFDF
Version 2.958.0
Added
- Dostęp do żywych natywnych kolekcji potomnych Data DOM przez indeksy numeryczne tylko do odczytu w JavaScript i FormCalc, z zachowaniem bieżącej kolejności potomków, zapamiętanych referencji obiektów skryptowych, niezależnych klonów, zapisanych wartości i wyglądów PDF
Fixed
- Odrzucanie numerycznych przypisań, usuwania i definicji właściwości zarówno na bieżących kolekcjach, jak i wewnątrz zapamiętanych leksykalnych obiektów skryptowych, z ograniczonym rollbackiem zdarzeń i ponawianiem
Version 2.957.0
Added
- Zastosowanie selektorów atrybutów, kombinatorów rodzeństwa, strukturalnych i pozycyjnych pseudo klas, dziedziczonego dopasowania języka oraz złożonej negacji w natywnych wewnętrznych arkuszach stylów rich-text, z zachowaniem rzeczywistych wartości wyliczonych, czcionek, zapisanych wyglądów i transakcyjnych importów FDF/XFDF
Version 2.956.1
Fixed
- Rozwiązywanie ścieżek list potomków nodes w FormCalc przez rzeczywisty kompilator zdarzeń, z zachowaniem żywych kolekcji formularzy i właściwości, dostępu do elementów Data DOM, ograniczonego replayu, zapisanych wartości natywnych i wyglądów PDF
Version 2.956.0
Added
- Generowanie natywnych wyglądów pól plain, rich i shaped z kompletnych czcionek OpenType CFF, z zachowaniem tożsamości glifów kluczowanych nazwą, rzeczywistych zbiorów znaków CID-keyed, mapowań Unicode, uprawnień osadzania i współdzielonych zasobów czcionek; renderowanie brakujących wyglądów FreeText z użyciem domyślnych wartości osadzonego OpenType
Fixed
- Ograniczenie parsowania CFF i metryk glifów, zachowanie anulowania i niemodyfikowalnych czytników per-style oraz utrzymanie zachowania TrueType na sześciu natywnych celach kompilatora
Version 2.955.1
Security
- Odrzucanie całkowicie zerowych sekretów współdzielonych X25519 i X448 po kanonicznej serializacji bajtów, w tym wejść niskiego rzędu o niezerowych słabych limbach ciała, przy czym wynik uzgodnienia pozostaje fałszywy przy pustym sekrecie i świeżej diagnostyce
Fixed
- Zachowanie przenośnych stałych SHA3/SHAKE i zamierzonej arytmetyki uzgodnienia kluczy modulo-2^64 przy włączonych kontrolach przepełnienia liczb całkowitych i zakresów, w tym pełnowymiarowych wymian P-256, P-384 i P-521 na 32-bitowym Free Pascal
Version 2.955.0
Added
- Dodano żywe kolekcje potomne formularzy i właściwości w JavaScript z length, odczytami indeksowanymi, item, namedItem, iteracją i niezależnymi klonami; tożsamość właściciela jest zachowywana między zdarzeniami, edycjami powtórzonych instancji i niejawnym tworzeniem właściwości, z zapisanymi wartościami natywnymi i wyglądami PDF
Fixed
- Zapamiętane żywe listy pozostają przypięte do bieżącego właściciela zdarzenia, usunięci właściciele są odrzucani bez przekierowania na inną instancję, a wartości natywne, stan zapamiętany i rollback dziennika są zachowywane przy błędach alokacji kolekcji, operacji i deadline'u
Version 2.954.0
Added
- Zastosowanie wewnętrznych arkuszy stylów XHTML do natywnych pól rich-text i importów FDF/XFDF z selektorami type, class i ID, kombinatorami potomków i dzieci, selektorami grupowanymi, eskapami identyfikatorów Unicode, specyficznością, ważnością i kolejnością źródłową
Fixed
- Zachowanie stylów wyliczonych w rzeczywistych zapisanych wartościach i wyglądach widgetów, z ograniczonym skanowaniem i dopasowaniem, anulowaniem, dokładnymi bajtami no-op commita i transakcyjnym rollbackiem callbacków
Version 2.953.0
Added
- Dodano niezależne kolekcje węzłów zapytań XFA z operacjami all, classAll, classIndex, clone i membership, stabilnymi zapamiętanymi referencjami, ograniczonym transakcyjnym replayem i natywnym zużyciem zapisanego PDF
Fixed
- Zapamiętani menedżerowie instancji zapytań pozostają przypięci do bieżącego grafu zdarzeń, a zwykłe ścieżki SOM i predykaty są wyliczane w granicach oryginalnych limitów default-stack i operacji
Version 2.952.0
Added
- Zachowanie zdalnych destynacji adnotacji GoToR przez natywną, zwykłą wymianę XFDF Windows i wersjonowane callbacki, w tym dokładne współrzędne, specyfikacje plików Unicode i opcjonalne zachowanie okna
Fixed
- Uwierzytelnianie zwykłych importów adnotacji wczytanych dokumentów względem oryginalnych uprawnień szyfrowania, podpisów i blokad pól, z zachowaniem dozwolonych edycji wywołującego i niezależnego czasu życia źródła; odczyt liczb całkowitych ByteRange podpisu bez zaokrągleń Single oraz odłączanie współdzielonego magazynu stringów RC4 przed szyfrowaniem
Version 2.951.0
Added
- Renderowanie ograniczonych zachmurzonych ramek dla adnotacji Square, Circle, Polygon i FreeText bez wyglądów normal, z zachowaniem szerokości, kreskowania, krycia i grafów źródłowych; współdzielenie niemodyfikowalnych wygenerowanych bajtów czcionek między widokami FreeText bez ponownego doliczania zdekodowanych bajtów, przy zachowaniu budżetów parsowania i anulowania
Version 2.950.0
Added
- Tworzenie, klonowanie, zmiana nazw, wstawianie i usuwanie natywnych węzłów Data DOM w XFA z ograniczoną własnością, dziedziczonymi przestrzeniami nazw, stabilnymi referencjami importowanymi, odświeżaniem bindowania i kompletnym rollbackiem zdarzeń; atrybuty UTF-8 i zapamiętane referencje FormCalc są zachowywane przez zapisany XML i natywnych konsumentów PDF
Version 2.949.0
Added
- Zachowanie rozróżnienia między brakiem wybranych opcji choice a wybraną pustą wartością export przez natywną wymianę XFDF Windows i Linux, z dokładną publikacją no-op, ograniczoną walidacją i sprawdzanym wczytywaniem zaszyfrowanych dokumentów
Version 2.948.0
Fixed
- Renderowanie wypełnionych masek glifów z przechwyconym ułamkowym pokryciem clipu przy zachowaniu ścieżek PDF, wzorców, alfy i operatorów blendowania, wraz z kontrolą pojemności pamięci roboczej rastra przed alokacją
Version 2.947.1
Fixed
- Zachowanie jawnych pustych deklaracji domyślnej przestrzeni nazw XML podczas parsowania i serializacji XFA, dzięki czemu niekwalifikowane poddrzewa danych nie dziedziczą przestrzeni nazw przodka po zapisie i ponownym wczytaniu
Version 2.947.0
Added
- Renderowanie fasetowanych i cofniętych prostokątnych ramek adnotacji oraz mierzonych podpisów w Unicode lub rich line, z zachowaniem krycia, przesunięć końcówek, istniejących wyglądów, ograniczonych zasobów czcionek i przycinania adnotacji
Version 2.946.3
Fixed
- Zastosowanie xfa.host.resetData przez zdarzenia natywne bez błędnego traktowania go jako importu Data XML, z zachowaniem domyślnych wartości szablonu, zbindowanych wartości, powtórzonych zakresów, oczekujących edycji i transakcyjnego rollbacku
Version 2.946.2
Fixed
- Naprawa arytmetyki słów SHA-1, SHA-256, SHA-384 i SHA-512 przy włączonych kontrolach zakresu i przepełnienia kompilatora, z zachowaniem poprawnych digestów i uwierzytelniania haseł AES-256 bez zmiany publicznych interfejsów
Version 2.946.1
Fixed
- Zachowanie obecnych pustych atrybutów XFA oraz nazw, wartości, przestrzeni nazw i zapytań indeksowanych UTF-8 przez natywną serializację XML, trwałe domyślne właściwości, powtórzone zdarzenia skryptowe i transakcyjny rollback
Version 2.946.0
Added
- Renderowanie tymczasowego tekstu rich adnotacji z jawnymi uprawnieniami czcionek Preview/Print tylko do odczytu i niezmienionymi pełnymi bajtami czcionek, z zachowaniem edytowalnych polityk osadzania i istniejących wyglądów Screen bez niejawnych placeholderów multimedialnych
Version 2.945.0
Added
- Zachowanie lokalnych stronicowych i nazwanych destynacji adnotacji przez natywną i legacy wymianę XFDF, z dokładnymi ograniczonymi tokenami dziesiętnymi, kwalifikowanym Adobe XML, walidacją duplikatów atrybutów i transakcyjną publikacją callbacków Windows/Linux
Version 2.944.0
Added
- Zarządzanie żywymi elementami display i export XFA choice przez JavaScript i FormCalc, z zachowaniem przetrwałych aliasów, dokładnych zduplikowanych lub pustych zaznaczeń, natywnych list per-instancja oraz zapisanych wyglądów PDF natywnych lub legacy pod ograniczonymi limitami mutacji
Version 2.943.1
Fixed
- Zachowanie dokładnych bajtów wczytanego PDF, gdy natywne transakcje rich-text mieszające skalary i typy albo puste batche nie wprowadzają zmian, przy zachowaniu oczekujących edycji grafu, uwierzytelnionych polityk podpisów i szyfrowania, limitów zasobów i publikacji atomowej
Version 2.943.0
Added
- Wymiana zmapowanych XFDF adnotacji przez plikowe joby Windows i oryginalne callbacki V1 z uwierzytelnianymi transakcjami dopisywania, ograniczonymi danymi binarnymi i Unicode, dokładnymi bajtami no-op i publikacją atomową
Version 2.942.0
Added
- Renderowanie wspieranych adnotacji bez wyglądów normal przez ograniczoną tymczasową geometrię, zakończenia linii, ikony i Unicode FreeText, z zachowaniem zasobów źródłowych, rich text, flag widoku/druku i anulowania
Version 2.941.1
Fixed
- Walidacja unikalności zaznaczeń natywnych XFA choice z ograniczonym sortowaniem podlegającym anulowaniu, przy zachowaniu dokładnych wartości export rozróżniających wielkość liter, oryginalnej kolejności zaznaczeń i transakcyjnego zachowania przy błędzie
Version 2.941.0
Added
- Zastosowanie niezależnie kaskadowanych natywnych CSS oraz oryginalnego typowanego odstępu liter i słów do runów shapowanych, fizycznych linii, dopasowywania i zapisanych wyglądów, z wyliczoną serializacją punktów, dokładnym zaokrąglaniem dziesiętnym i transakcyjną publikacją JSON Windows/Linux
Version 2.940.0
Added
- Wymiana osiemnastu zmapowanych typów adnotacji przez ograniczone natywne operacje XFDF i Linux V1 JSON, z zachowaniem zawartości Unicode rich, calloutów, przezroczystych kolorów, załączników binarnych, linków popup i forward-reply, uwierzytelnionych uprawnień i transakcyjnej publikacji dopisywania
Version 2.939.0
Added
- Tworzenie legacy pól combo i list XFA z dokładnymi exportami powtórzonych instancji, etykietami display, zaznaczonymi indeksami, pozycjami scrolla i stylowanymi wyglądami Unicode, z zachowaniem flag high pól i rollbacku per-pole, fabryką choice z oddzieloną dostarczoną czcionką i trybem metadata-only
Version 2.938.0
Added
- Renderowanie czterech standardowych intencji kolorów przez stany grafiki, formularze, obrazy, shadingi, wzorce i grupy przezroczystości, z nadpisaniami dla obrazów, fallbackiem względnym dla nieznanych nazw i ograniczonym, anulowalnym cache transformacji ICC
Version 2.937.0
Added
- Tworzenie niezależnych legacy grup radio XFA z rzeczywistych zakresów powtórzonych instancji, z zachowaniem dokładnych exportów, stanów zaznaczenia i stylowanych podpisów Unicode, rollbackiem adopcji całej grupy oraz oddzielonym natywnym API wyglądu członków z dostarczoną czcionką
Version 2.936.1
Added
- Parsowanie poprawnych słowników i trailerów PDF przy włączonej kontroli przepełnienia arytmetycznego poprzez jawną retencję 32 młodszych bitów mnożenia hashu FNV
Version 2.936.0
Added
- Bindowanie jawnych typowanych wysokości linii rich-text JSON do zapisanych wyglądów Windows i Linux, z zachowaniem runów autorskich, dostarczonych metryk rodzica, ograniczonego planowania zagregowanego i transakcyjnych aktualizacji mieszanych pól
Version 2.935.1
Added
- Liczenie znaków Unicode z płaszczyzny uzupełniającej raz w przenośnych wyglądach haseł XFA, zachowanie oryginalnych wartości i wymuszanie zagregowanych budżetów glifów przed alokacją masek, z anulowaniem w ziarnistości skalarnej
Version 2.935.0
Added
- Zachowanie wysokości linii rich-text, wyliczonych długości CSS, dziedziczonych współczynników i metryk czcionki rodzica przez natywny layout, zapisane wyglądy, plikowe joby Windows i callbacki oraz importy JSON FDF/XFDF w Linuksie, z ograniczonym planowaniem metryk czcionek
Version 2.934.0
Added
- Tworzenie prawdziwych Unicode wyglądów legacy XFA text, numeric, date i password z efektywną rodziną i stylem czcionki per-instancja, edytowalnymi osadzonymi zasobami czcionek, skalarnym maskowaniem haseł i transakcyjną adopcją zasobów
Version 2.933.0
Added
- Wyliczanie wielowymiarowych próbkowanych sześciennych funkcji kolorów z istniejącą skalarną konwencją czterech węzłów, liniowym fallbackiem w krótkim wymiarze, ograniczoną pracą tensorową, anulowaniem i niezmienioną interpolacją skalarną
Version 2.932.0
Added
- Dekodowanie komponentów JPEG 2000 ze znakiem i bez znaku w zakresie do 26 bitów z mieszaną precyzją, subsamplingiem i kryciem, normalizacja ograniczonych próbek oraz ignorowanie deklaracji BitsPerComponent obrazu JPX przed renderowaniem
Version 2.931.0
Added
- Zachowanie stanów export on, off i neutral legacy checkboxów XFA, stylowanych podpisów Unicode i natywnych pakietów wyglądów, spójne kodowanie specjalnych nazw PDF oraz odtwarzanie bezpośrednich zasobów stron po anulowanej adopcji widgetów
Version 2.930.0
Added
- Wyliczanie automatycznych zastosowań optional-content z jawnym kontekstem zoom, języka i użytkownika, trwałymi natywnymi ręcznymi zaznaczeniami i ograniczonym stanem operacji JSON w Linuksie; unieważnianie pożyczonych kontekstów renderowania po zmianach dokumentu
Version 2.929.0
Added
- Budowanie skalarnego tekstu, komórek comb, etykiet choice i znaczników przycisków z uporządkowanych dostarczonych rodzin czcionek regular przez natywne settery, joby Windows i wersjonowane callbacki Windows/Linux; zachowanie zwykłych skalarnych metadanych i rozróżnienie pustego zaznaczenia choice od wybranego pustego exportu
Version 2.928.0
Added
- Renderowanie tablic dash i faz ExtGState z ograniczonym skanowaniem typowanych tablic PDF, z zachowaniem komentarzy, ścisłej walidacji operandów, dziedziczonej geometrii obrysu, anulowania i zwykłych tablic tekstowych
Version 2.927.0
Added
- Malowanie oryginalnych skalarnych i rich podpisów przycisków ApplyXFAAsAcroForm w Windows z rzeczywistymi zainstalowanymi programami rodziny i stylu, trwałymi nadpisaniami per-instancja i natywnymi pakietami wyglądów normal/down/rollover, z rejestracją prawdziwych zasobów czcionek AcroForm
Version 2.926.0
Added
- Rozwijanie ograniczonego inline CSS font shorthand do niezależnie kaskadowanych kandydatów rozmiaru, grubości, kursywy i dostarczonej rodziny, z zachowaniem dziedziczonego względnego wymiarowania, resetów pominiętego stylu, priorytetów ważnych składników i rzeczywistych zapisanych wyglądów czcionek
Version 2.925.0
Added
- Wybieranie uporządkowanych rodzin czcionek dostarczonych przez wywołującego dla kompletnych stylowanych grafemów rich-text przez plikowe joby Windows i callbacki V1, z zachowaniem kandydatów CSS i typowanych, prawdziwych transakcji pustej wartości i zagregowanych budżetów czcionek
Version 2.924.0
Added
- Renderowanie domyślnych grup optional-content dokumentu i wyrażeń membership przez oznaczoną zawartość stron, form XObjects i adnotacje, zachowanie ukrytej grafiki i stanu tekstu oraz wystawienie jawnego użycia widoku lub druku przez natywny interfejs Linux V1 JSON
Version 2.923.0
Added
- Zachowanie uporządkowanych list kandydatów czcionek rich-text przez natywne wyglądy i Linux V1 JSON oraz bindowanie mieszanych runów skalarnych i oryginalnych typowanych do plikowych jobów Windows i niezmienionych callbacków V1 z precyzyjnym malowaniem, dostarczonymi programami stylów i publikacją dwufazową
Version 2.922.0
Added
- Wybieranie natywnej widoczności adnotacji w widoku lub druku z regułami PDF 2.0 Invisible, rozpoznawanie statycznych wyglądów RichMedia i Projection oraz niejawnych transformacji Text, z utrzymaniem ograniczonej, anulowalnej atomowej podmiany PNG w Windows i rzeczywistych diagnostyk błędów OS
Version 2.921.0
Added
- Renderowanie natywnych skalarnych i XHTML podpisów przycisków XFA z prawdziwymi dostarczonymi programami rodziny i stylu, zachowanymi separatorami inline i autorskim paddingiem, rzeczywistymi wyglądami normal/down/rollover, widocznością podpisów i trwałymi nadpisaniami powtórzonych instancji
Version 2.920.1
Fixed
- Utrzymanie zgodności udanych mutacji PDF natywnego C ABI Linux ze zcommitowanym snapshotem źródła, dzięki czemu kolejne importy FDF lub XFDF o tych samych wartościach zachowują dokładnie opublikowane wartości formularza, typowane wyglądy, narysowany tekst i zaimportowane strony zamiast odtwarzać nieaktualne bajty wejściowe
Version 2.920.0
Added
- Zapis mieszanych pól skalarnych i oryginalnych typowanych runów rich-text w jednej niezależnej atomowej transakcji dokumentu, zachowanie precyzyjnych wartości wyglądów i dostarczonych programów czcionek, uwierzytelnionych polityk i bieżących edycji grafu oraz rozpoznawanie prawdziwych no-op wyglądów tylko do odczytu
Version 2.919.0
Added
- Rozwiązywanie kompletnych stylowanych grafemów Unicode przez jawne dostarczone kandydackie rodziny czcionek, zachowanie autorskich wartości i precyzyjnych stylów wyglądów, wystawienie opt-in natywnego fallbacku JSON Linux przez niezmienione callbacki V1 oraz utrzymanie rzeczywistego zagregowanego limitu czcionek podczas wczytywania skonfigurowanych programów
Version 2.918.0
Added
- Renderowanie natywnych podpisów Boolean XFA z efektywnego XHTML i dostarczonych nazwanych czcionek stylów, zachowanie nakładek powtórzonych instancji i zapisanego runtime XML oraz wymiarowanie automatycznych rezerw podpisów finalnymi zasięgami logicznych linii tekstu
Version 2.917.0
Added
- Wybieranie prawdziwych nazwanych programów rodzin i stylów dla importów FDF i XFDF w Windows przez zagnieżdżone ścieżki plików lub istniejące wersjonowane callbacki czcionek oraz izolowanie synchronicznych odczytów losowych źródeł od sekwencyjnej publikacji transakcji
Version 2.916.0
Added
- Dekodowanie i renderowanie 182 wbudowanych legacy CMap z ograniczonymi kodami od jednego do czterech bajtów, dokładnymi trybami pisania rodzica i dziecka, mapowaniami Unicode, deterministycznym odzyskiwaniem po uszkodzonych kodach, anulowalnym dziedziczeniem i dołączonymi notami redystrybucji
Version 2.915.0
Added
- Utrzymanie widoczności zaznaczonych opcji natywnych list XFA przez okna selekcji oparte na metrykach czcionek i zapamiętane indeksy top, zachowanie kompletnych tablic opcji i wartości oraz utrzymanie zmian czcionek powtórzonych instancji i rollbacku zdarzeń z ograniczonym przygotowaniem widocznych glifów
Version 2.914.1
Fixed
- Nakładanie trafień pamięci podręcznej pierwszego planu na kooperatywne anulowanie prefetchu po uzyskaniu rzeczywistej rezerwacji pamięci, zachowanie telemetrii cache operacji i ponowne sprawdzanie anulowania po oczekiwaniu na blokadę cache lub rezerwację, przy zachowaniu ścisłej kolejności miss i dołączania wątków
Version 2.914.0
Added
- Tworzenie natywnych wyglądów Boolean XFA z sześcioma własnymi znacznikami, okrągłymi lub kwadratowymi ramkami, kolorami i rozmiarami znaczników, pięcioma pozycjami podpisów i współdzielonymi osadzonymi czcionkami podpisów; zachowanie odwracalnych aliasów export Unicode i odrębnych legalnych stanów neutral przez wykonanie zdarzeń i ponowne wczytanie zapisanego PDF
Version 2.913.2
Fixed
- Dekodowanie kompletnych obróconych kodów kreskowych macierzowych przed odłączonymi fragmentami i odrzucanie dokładnych niedopasowań finderów QR przed próbkowaniem całej siatki, przy zachowaniu ciaśniejszego grupowania, oryginalnego zachowania liniowych kodów, atomowych budżetów skanowania i niezmienionego deadline'u dwóch sekund
Version 2.913.1
Added
- Rozwiązywanie istniejących niejawnych wartości XFA przez ograniczone żywe konteksty danych bez powtarzania parsowania selektorów doliczanego do puli operacji skryptowych, z zachowaniem oryginalnych deadline'ów transakcji i jawnego zachowania bindowania
Version 2.913.0
Added
- Wybieranie skonfigurowanych natywnych rodzin czcionek rich przez niezmienione callbacki Linux V1 JSON dla typowanych wypełnień i importów FDF lub XFDF, wczytywanie rzeczywiście wymaganych programów rodziny i stylu z budżetami zagregowanymi oraz deklarowanie obu zaimplementowanych profili rich
Version 2.912.0
Added
- Import i export prawdziwych FDF lub XFDF przez plikowe joby Windows i callbacki V1 z niemodyfikowalnym wejściem na własność, przygotowaniem bieżącego niezapisanego grafu, rzeczywistymi wyglądami rich z czterema czcionkami, uwierzytelnionymi podpisanymi politykami AES oraz commit kontekstu dopiero po powodzeniu obu wyjściowych callbacków
Version 2.911.0
Added
- Tworzenie natywnych rysunków prostokątów, linii i łuków XFA oraz inline obrazów PNG lub JPEG z rzeczywistym dekodowaniem próbek, maskami alfy, dopasowaną proporcją i obróconym rozmieszczeniem, ograniczonym przygotowaniem i transakcyjną własnością pod anulowaniem
Version 2.910.0
Added
- Dopasowywanie wyglądów adnotacji NoZoom i NoRotate wokół przekształconej kotwicy górnego lewego prostokąta, z zachowaniem UserUnit, dopasowanej geometrii formularza, krycia i rzeczywistego clipu strony przy skalowaniu i rotacji
Version 2.909.0
Added
- Wybieranie rzeczywistych dostarczonych nazwanych rodzin TrueType per run rich i ograniczona deklaracja XHTML font-family, zachowanie metryk stylów per rodzina i cache znaczników oraz import rzeczywistych wartości rich z FDF lub XFDF z porównaniem kanonicznym świadomym rodzin
Version 2.908.1
Fixed
- Zastosowanie poprawnych inline deklaracji rich-text z niezależnym priorytetem important, otaczającymi wyliczonymi bazami font-size i jawnymi właściwościami dziedziczonymi, z zachowaniem granic komentarzy CSS oraz deklaracji w cudzysłowach i funkcjach
Version 2.908.0
Added
- Tworzenie prawdziwych natywnych combo boxów, list, pól wielokrotnego wyboru, checkboxów i strukturalnie zakresowanych grup radio XFA bezpośrednio z zapisanych danych runtime, z sparowanymi etykietami display/export, elementami per-instancja, flagami dostępu i niezależnymi natywnymi stanami wyglądów
Version 2.907.1
Fixed
- Dekodowanie rzeczywistych eskapów szesnastkowych PDF i bajtów UTF-8 w polach formularza z wartościami nazw i dziedziczonych, z zachowaniem stanów export przycisków ze spacjami, interpunkcją i Unicode przez natywne ponowne wczytanie zapisanego dokumentu
Version 2.907.0
Added
- Renderowanie rzeczywistych tożsamości glifów CID-keyed CFF i ograniczonych podstawień notdef przez prawdziwe mapowania CID-to-GID czcionek, z zachowaniem niezależnej ekstrakcji tekstu i kontroli anulowania w całym parsowaniu eskapowanego CMap
Version 2.906.0
Added
- Pozycjonowanie łączących znaczników między stylami z użyciem rzeczywistych granic wybranych glifów i kanonicznych klas łączenia przy braku kotwic przyczepiania, z niezależnymi skalami czcionek, układaniem po tej samej stronie i rzeczywistymi rozpoznanymi kierunkami elementów dla podwójnych znaczników
Version 2.905.1
Fixed
- Rozwiązywanie eskapowanych parametrów predictora w rzeczywistym słowniku DecodeParms i lokalizowanie prawdziwego tokena strumienia po zbalansowanej zewnętrznej składni słownika, z zachowaniem binarnych payloadów xref o wartościach białych znaków w zwykłym wczytywaniu Windows
Version 2.905.0
Added
- Tworzenie natywnych drzew stron PDF, powtórzonych edytowalnych pól, przycisków push i statycznego tekstu Unicode bezpośrednio z XDP i zapisanych wartości runtime na Linuksie i Windows, z prawdziwymi osadzonymi wyglądami i ograniczonym przygotowaniem kandydatów przed wyjściem wywołującego
Version 2.904.2
Fixed
- Odczyt rzeczywistych zewnętrznych słowników strumieni cross-reference bez mylenia zagnieżdżonych ustawień szyfrowania, rozwiązywanie eskapowanych nazw wpisów i zachowanie bezpośrednich słowników szyfrowania w zwykłych przyrostowych rewizjach Windows
Version 2.904.1
Fixed
- Zachowanie kompletnych sterowań kierunków akapitów i sparowanych nawiasów przez automatyczne samodzielne shapowanie i zwykłe zawijanie wielowierszowych pól, z kontekstami łączenia linii fizycznych, niemodyfikowalnym cache akapitów i ograniczonym całkowitym wyjściem glifów
Version 2.904.0
Added
- Wykonywanie natywnego runtime JavaScript XFA, dziennika zdarzeń, Data DOM, XML, FormCalc i locale ICU na Linuksie z dzierżawionymi leasingami modułów współdzielonych i prawdziwymi zegarami monotonicznymi, przy zachowaniu istniejącej inicjalizacji Unicode w Windows
Version 2.903.1
Fixed
- Utrzymanie klastrów shapowania wyłącznie kierunkowych Unicode przy zerowym naliczaniu odstępów znaków, z zachowaniem sterowań logicznych, tożsamości glifów i normalnych odstępów widocznych klastrów oraz słów
Version 2.903.0
Added
- Zachowanie kierunkowych embeddingów, override'ów, izolatów i kontekstu akapitów sparowanych nawiasów przez zawijane linie rich stylów, wystawienie ograniczonych API kolejności linii fizycznych pochodnej od akapitów i cache'owanej oraz shapowanie rzeczywistych elementów linii z rozpoznanymi poziomami i skryptami
Version 2.902.0
Added
- Import i export stylowanych FDF i XFDF przez prawdziwe callbacki Linux JSON C ABI, osadzanie skonfigurowanych prawdziwych krojów czcionek, zachowanie polityk podpisów i dokładnych prywatnych bajtów źródłowych dla importów no-op oraz publikacja bieżącego stanu dokumentu dopiero po powodzeniu obu wyjść callbacków
Version 2.901.0
Added
- Renderowanie shadingów mesh Coons i tensor patch z ograniczoną geometrią sześcienną, interpolacją kolorów w przestrzeni źródłowej, krawędziami kontynuacji, obsługą zagięć i transakcyjnymi limitami zasobów oraz anulowania
Version 2.900.0
Added
- Transakcyjne wczytywanie i zapisywanie XML natywnego Data DOM XFA świadome przestrzeni nazw, zachowanie uporządkowanej mieszanej zawartości i tożsamości data binding, cytowanie wartości hosta w czasie liniowym oraz utrzymanie dokładnego leasingu modułu JavaScript per sesja przez ograniczony replay silnika
Version 2.899.0
Added
- Przyczepianie stylowanych znaczników łączących do rzeczywistych kotwic GPOS bazowych, ligatur i znaczników z niezależnymi skalami czcionek, zachowanie konturów glifów o ujemnym początku wewnątrz clipów rich widgetów i rezerwowanie dopasowanych zasięgów linii dla widocznych ułożonych w stos znaczników
Version 2.898.0
Added
- Odczyt i zapis ograniczonego rich text w FDF i XFDF, dekodowanie natywnych spanów stylów XHTML w cztery prawdziwe osadzone style czcionek oraz transakcyjny import rzeczywistych wyglądów do podpisanych lub zaszyfrowanych PDF, w tym kanoniczne porównanie istniejących wartości rich tylko do odczytu
Version 2.897.0
Added
- Shapowanie wybranych spanów stylów Unicode z prawdziwym otaczającym kontekstem HarfBuzz, wystawienie natywnych API kolejności i kierunku akapitów oraz rozmieszczanie typowanych elementów rich w rzeczywistych zawijanych liniach fizycznych przy zachowaniu stylów logicznych i własności obiektów
Version 2.896.0
Added
- Rozwiązywanie natywnego bindowania SOM w XFA przez powtórzone zakresy danych z ograniczonym przechodzeniem potomków, eskapowanymi nazwami, dopasowaniem Unicode, fallbackami brakującego liścia per-instancja i transakcyjną synchronizacją wartości runtime
Version 2.895.1
Fixed
- Kompilacja statycznego natywnego wsparcia zdarzeń XFA raz na dzierżawiony silnik JavaScript i replay kompletnych kompaktowych dynamicznych argumentów zdarzeń, z zachowaniem domknięć, nagranych odpowiedzi hosta, izolacji instancji, oryginalnych budżetów dziennika i deadline'ów transakcji podczas rollbacku
Version 2.895.0
Added
- Import i export rzeczywistych bajtów FDF i XFDF przez istniejące wersjonowane natywne callbacki Linux JSON, zachowanie wartości pól Unicode, zabezpieczeń AES i uwierzytelnionych polityk podpisów oraz rollback bieżącego dokumentu po nieudanym wyjściu lub publikacji wyniku
Version 2.894.0
Fixed
- Zawijanie zbyt szerokiego typowanego rich text na kompletnych granicach grafemów Unicode między stylami czcionek i kolorów, mierzenie rzeczywistych stylowanych zakresów przed przydziałem linii oraz zachowanie niepodzielnych zbyt dużych klastrów, mieszanych rozmiarów punktowych i jawnego odstępu znaków
Version 2.893.1
Security
- Uwierzytelnianie wymaganych dowodów CRL i OCSP podpisanych przez Adobe wewnątrz prawdziwych znaczników czasu dokumentów RFC3161 przed akceptacją aktualizacji formularza chronionych polityką podpisów, z transakcyjną odmową dla dowodów brakujących, odwołanych, wygasłych lub niezaufanych
Version 2.893.0
Added
- Odczyt i zapis ograniczonych skalarnych danych pól natywnych FDF i XFDF oraz transakcyjny import rzeczywistych wyglądów Unicode, choice i przycisków do niezależnie publikowanych PDF, z zachowaniem uwierzytelnionych polityk podpisów i szyfrowania AES
Version 2.892.0
Added
- Renderowanie ograniczonych shadingów trójkątnych mesh free-form i lattice z prawdziwą semantyką współrzędnych, flag, funkcji, kolorów i przezroczystości oraz jednokrotne dekodowanie strumieni palety Indexed w heksadecymalnym zapisie
Version 2.891.0
Added
- Zachowanie uporządkowanych komentarzy XML i instrukcji przetwarzania natywnego XFA przez import zdarzeń, serializację, klonowanie i transakcyjny rollback, przy wykluczeniu ich ze skalarnego tekstu, rich text i selekcji elementów SOM
Version 2.890.1
Fixed
- Odzyskiwanie przejściowych blokad atomowej publikacji w Windows z co najwyżej ośmioma anulowalnymi próbami podmiany, przy zachowaniu dokładnych celów, przygotowanych bajtów, trwałych błędów systemu operacyjnego i sprzątania dzierżawionego stageingu
Version 2.890.0
Added
- Zachowanie legalnych grup Unicode słów, nierozdzielających spacji, interpunkcji i liczb przez typowane runy rich stylów, dopasowywanie całych grup rzeczywistymi naliczeniami stylowanej czcionki, utrzymanie linii bazowych o mieszanych rozmiarach i łączenie CRLF przez szwy stylów
Version 2.889.0
Added
- Synchronizacja zmaterializowanych ukrytych i niewidzialnych aliasów skalarnych XFA po commitach widocznych pól, z zachowaniem natywnych powtórzonych zakresów danych, jawnych pustych wartości i dokładnego transakcyjnego rollbacku
Version 2.888.0
Added
- Zastosowanie kompletnych właściwości Unicode 17 i kontekstowego łamania linii przez istniejące API dokumentu, wystawienie surowych lub rozwiązanych wg LB1 przenośnych zapytań o właściwości, zachowanie ustalonych porządków enum i kontraktów tailoringu oraz poszanowanie zakazów miękkiego dyównika
Version 2.887.0
Added
- Import i serializacja trwałego natywnego XML exData XFA z natychmiastowymi odczytami skryptów, zachowaniem przestrzeni nazw i mieszanej zawartości, zapamiętanymi tożsamościami powtórzonych instancji, transakcyjnym rollbackiem i prawdziwym renderowaniem zapisanego XHTML
Version 2.886.0
Added
- Tworzenie i uwierzytelnianie samodzielnych znaczników czasu dokumentów PDF RFC3161 z ograniczonym streamingiem, imprintami SHA256, SHA384 lub SHA512, wiązaniem tożsamości zaufanego TSA i nonce, wymaganymi deklaracjami rozszerzeń ESIC oraz uwierzytelnionymi wyjątkami certyfikacji lub blokad pól
Version 2.885.0
Added
- Wystawienie domyślnych możliwości łamania linii Unicode 17 i konsumowanie ich w rzeczywistych natywnych polach rich, z zachowaniem grup nierozdzielających spacji, dywyników i interpunkcji oraz jawnych separatorów Unicode z dokładnymi oryginalnymi wartościami V i RV
Version 2.884.0
Added
- Wystawienie przenośnych domyślnych granic rozszerzonych grafemów Unicode 17 i zawijanie zbyt szerokich słów rich na kompletnych klastrach, z zachowaniem rzeczywistej zawartości wyglądu Unicode i korektą zmian szerokości form łączenia po shapowaniu podłańcucha
Version 2.883.0
Added
- Tworzenie trwałych natywnych potomków wartości obrazowych i geometrycznych XFA oraz renderowanie rzeczywistej alfy PNG, DPI obrazu i geometrii proporcji, z zachowaniem izolacji powtórzonych instancji i transakcyjnego rollbacku; korekta pikseli obrazów FPC, które wcześniej renderowały się na czarno
Version 2.882.0
Added
- Dziedziczenie rzeczywistych zasobów czcionek ze strumieni potomnych i parametrów tekstu PDF w renderowaniu Form, Type3 i Pattern, zachowanie zapisów tekstu w stanie grafiki, poszanowanie niewidzialnego tekstu Type3 i resetowanie niezależnych domyślnych wyglądów adnotacji
Version 2.881.0
Added
- Automatyczne uwierzytelnianie standardowych odłączonych podpisów CAdES z wymaganym wiązaniem certyfikatu podpisującego i spójny odczyt prawdziwych literałowych Contents w zapisie szesnastkowym lub eskapowanym dla weryfikacji, dozwolonych aktualizacji formularza i dowodów długoterminowej walidacji
Version 2.880.2
Fixed
- Utrzymanie wyrównania akapitów rich przez puste początkowe runy, zmiany stylu inline i jawne łamania linii oraz malowanie żądanych ramek prostokątów lub okręgów i mierzonych podświetlonych wierszy zamiast ich cichego pomijania
Version 2.880.1
Fixed
- Uwzględnianie anulowania przed alokacją renderera strony i instalacją kontekstu oraz podczas inicjalizacji, zachowanie aktywnego kontekstu kolorów wywołującego, gdy konstrukcja zostaje początkowo odrzucona, i zwalnianie dzierżawionych list wyświetlania bez publikowania częściowych bitmap
Version 2.880.0
Added
- Renderowanie rzeczywistych natywnych wartości draw i podpisów skalarnych XFA po utworzeniu skryptem, zachowanie jawnych pustych wartości i izolacji powtórzonych instancji oraz utrzymanie dokładnego rollbacku, gdy późniejsze natywne rysowanie wyczerpie budżet
Version 2.879.0
Added
- Tworzenie trwałych natywnych potomków wartości skalarnych XFA z natychmiastową synchronizacją pól, danych i współdzielonych aliasów, trwałością typowanych formularzy, commitami widgetów, izolacją powtórzonych instancji i dokładnym transakcyjnym rollbackiem
Version 2.878.0
Added
- Generowanie rzeczywistych profili wyglądów podpisów Windows z osadzonymi czcionkami Unicode dla złączonych i oddzielnych widgetów, rotacji, szyfrowania i workflow certyfikacji oraz wymuszanie wymaganego AppearanceFilter względem faktycznie wygenerowanego profilu
Version 2.877.0
Added
- Renderowanie rzeczywistych kolorowych i jednokolorowych wzorców tiling i shading PDF z dziedziczonymi początkami wzorca, zagnieżdżonymi komórkami, nakładaniem, malowaniem stroke i stencil, przezroczystością i ograniczonym anulowaniem na natywnych celach Linux i Windows
Version 2.876.1
Fixed
- Zachowanie kompletnego bindowania SOM XFA i rzeczywistej selekcji danych emitowanych instancji przy stosowaniu domyślnych wartości formularza i szablonu dla brakujących instancji, bez pożyczania wartości z innego powtórzonego wystąpienia
Version 2.876.0
Added
- Osadzanie uwierzytelnionych dowodów CRL i OCSP w podpisanych atrybutach Adobe RevocationInfoArchival w Windows, wymuszanie rzeczywistych polityk seed i walidacja statusu zaufania, autoryzacji odpowiedzi i świeżości przed publikacją podpisów
Version 2.875.0
Added
- Rozwiązywanie rzeczywistych domyślnych wartości pól XFA bez fabrykowania danych podczas odczytu, zachowanie jawnych pustych wartości instancji i zapewnienie, że edycje zapisują niezależne dane instancji bez modyfikacji współdzielonych szablonów
Version 2.874.0
Added
- Edycja natywnych pól rich-text z typowanymi runami stylów Unicode, rzeczywistymi osadzonymi czcionkami regular, bold, italic i bold-italic, mierzonymi liniami bazowymi wyglądów o mieszanych rozmiarach, dekoracjami i zsynchronizowanymi wartościami V/RV przez widgety i zaszyfrowane wyjście
Version 2.873.0
Added
- Tworzenie trwałych per-instancja wyborów UI XFA przez skrypty natywne i konsumowanie rzeczywistych widgetów text, password i choice z wyglądami multiline i mierzonymi długimi słowami
Version 2.872.0
Added
- Tworzenie rzeczywistych podpisów certyfikacji DocMDP w Windows z uprawnieniami P1, P2 lub P3 i uwierzytelnionymi prawny mi atestacjami Unicode, poszanowanie wymaganych polityk seed i blokad FieldMDP oraz zezwalanie na kolejne podpisy tylko tam, gdzie podpisana polityka na to pozwala
Version 2.871.1
Fixed
- Wykonywanie ciał zdarzeń XFA we własnym zakresie leksykalnym i strict, z zachowaniem aliasów pól w zakresie zewnętrznym, wartości this zdarzenia, jawnych return i dokładnego rollbacku przy błędzie
Version 2.871.0
Added
- Tworzenie brakujących właściwości font, paragraph, fill, color, border, edge i corner XFA przez rzeczywiste natywne skrypty zdarzeń, trwałe zapisywanie stabilnych bindowań formularza per-instancja z dokładnym rollbackiem oraz regenerowanie opcjonalnych wyglądów widgetów po skutecznych zmianach stylów
Version 2.870.0
Added
- Renderowanie rzeczywistego natywnego wyjścia Cairo w Windows z jawnymi konturami standardowych czcionek GDI i poprawnymi konwencjami wywołań Win32 OpenJPEG, z odtwarzalnymi przypiętymi zależnościami natywnymi i niezależną akceptacją wyjścia
Version 2.869.0
Added
- Podpisywanie dokumentów Windows rzeczywistymi synchronicznymi callbackami transportu RFC 3161 C ABI z imprintami SHA256, SHA384 lub SHA512, uwierzytelnionym zaufaniem TSA i kontrolami CRL, wymaganymi ograniczeniami seed znacznika czasu i ograniczoną publikacją transakcyjną
Version 2.868.0
Added
- Generowanie maskowanych wyglądów pól password i literałowych file-select z zachowanymi wartościami Unicode i politykami AES-256, przenoszenie eskapowanego Unicode z płaszczyzny uzupełniającej przez natywne ABI JSON, retencja subnormalnych źródłowych tokenów dziesiętnych PDF oraz tworzenie buforów prefetch RGB bez screen DC
Version 2.867.0
Added
- Zawijanie rich text XFA przez style inline z mierzonymi granicami słów, jawnymi łamaniami linii, wspólnymi liniami bazowymi i wyrównaniem, rzeczywistymi przerwami między słowami przy justowaniu i geometrią linków fragmentów, z zachowaniem natywnej trwałości XDP powtórzonych instancji
Version 2.866.1
Added
- Uwierzytelnianie tokenów RFC 3161 raw-signature z użyciem faktycznie wspieranego przez nie algorytmu imprintu SHA256, SHA384 lub SHA512, przy zachowaniu istniejącego domyślnego żądania SHA256 i pełnych kontroli zaufania oraz odwołania tokena
Version 2.866.0
Added
- Wyrównywanie runów rich text XFA o mieszanych rozmiarach do wspólnej linii bazowej zapisanego PDF, zachowanie trybu pozycji tekstu wywołującego i stosowanie większego sąsiedniego marginesu akapitów, w tym przejść przez puste akapity
Version 2.865.0
Added
- Żądanie i uwierzytelnianie znaczników czasu RFC 3161 dla jawnych imprintów SHA256, SHA384 i SHA512 bez ponownego hashowania imprintu, z zachowaniem ścisłych długości digestów, świeżych nonce, ograniczonego transportu, łańcuchów zaufania i walidacji odwołań
Version 2.864.0
Fixed
- Zachowanie oryginalnego deadline'u skanowania kodów kreskowych przez priorytetyzowanie kompletnych rastrów liniowych i grup kandydatów strefy ciszy oraz odrzucanie niepoprawnych projekcyjnych ramek finderów DataMatrix przed próbkowaniem modułów wewnętrznych, bez zmiany tolerancji finderów
Version 2.863.0
Added
- Poszanowanie poprawnych dziedziczonych ograniczeń seed i certyfikatów podpisów Windows z rzeczywistym wyborem digest i CAdES, informacjami podpisu Unicode, znormalizowanymi pośrednimi blokadami pól, uwierzytelnionymi historycznymi uprawnieniami blokad, dozwolonymi drugimi podpisami i zaszyfrowanymi politykami formularza
Version 2.862.0
Added
- Renderowanie rzeczywistych natywnych shadingów PDF function, axial i radial z ograniczoną geometrią i wyliczaniem funkcji, dziedziczonym przycinaniem, semantyką Domain, Matrix, Extend i BBox, kalibrowanymi i specjalnymi kolorami, przezroczystością, miękkimi maskami, blendowaniem i grupami knockout
Version 2.861.0
Added
- Export rzeczywistych natywnych PDF przeglądu umów z adnotacjami i jawnych podświetleń Unicode z widocznymi wyglądami normal, zachowanie zawartości źródłowej i przyrostowych rewizji podpisów, wymuszanie uwierzytelnionych uprawnień adnotacji P3 i zaszyfrowanych praw użytkownika oraz przygotowanie ograniczonych wyjść przed publikacją callbacków
Version 2.860.0
Added
- Bindowanie natywnych opcji podpisywania i weryfikacji Linux do rzeczywistego wyboru digest, metadanych podpisu Unicode, nazwanych profili wyglądów, jawnych bajtów zaufania, tożsamości transportu znaczników czasu i uwierzytelnionych dowodów odwołań, z ograniczonym prywatnym przygotowaniem przed publikacją
Version 2.859.0
Added
- Zastosowanie żywych per-instancja nadpisań font, paragraph i treści skalarnych XFA do rzeczywistego rysowania i mierzenia rich text, zachowanie pierwszeństwa inline CSS i jawnie pustej zawartości przez natywną trwałość XDP oraz utrzymanie dokładnego transakcyjnego rollbacku
Version 2.858.0
Added
- Dekodowanie eskapowanych nazw czcionek, kodowań, glifów, kolorów i zasobów PDF dokładnie raz w natywnym renderowaniu i współdzielonej ekstrakcji tekstu, zachowanie literałowych kluczy zasobów z hashem oraz utrzymanie zgodności równoważnych nazw z rzeczywistymi konturami i metrykami glifów
Version 2.857.0
Added
- Porównywanie dokumentów natywnych po liczbie stron i obiektów, tekście Unicode, znormalizowanych grafach strukturalnych i rzeczywistych renderowanych pikselach RGB lub luminancji, z semantyczną równoważnością strumieni, uwierzytelnionymi zaszyfrowanymi wejściami i ograniczonym przygotowaniem przed publikacją callbacków
Version 2.856.0
Added
- Wybieranie rzeczywistych natywnych presetów wyglądów podpisów po zarejestrowanej nazwie profilu, generowanie odrębnych layoutów approval, certification i compact, zachowanie uwierzytelnionych metadanych profilu i zaszyfrowanych polityk oraz odrzucanie nieznanych profili przed publikacją
Version 2.855.0
Added
- Zastosowanie natywnych domyślnych wartości schematu właściwości XFA i zachowanie jawnych pustych wartości, stylów per-instancja oraz ułamkowych pomiarów punktowych czcionek, ramek i rysunków przez rzeczywiste wyjście AcroForm i spłaszczone PDF
Version 2.854.0
Added
- Wystawienie natywnych obiektów właściwości i atrybutów XFA z trwałymi bindowaniami formularza per-instancja, zsynchronizowanymi zapisami wartości/danych i rzeczywistymi efektami font, border, paragraph i layoutu UI, z zachowaniem transakcyjnego rollbacku i budżetów fokusa bez skryptów
Version 2.853.0
Added
- Osadzanie prawdziwych dowodów odwołań Adobe jako uwierzytelnionych podpisanych atrybutów CMS, walidacja kompletnych łańcuchów certyfikatów i znaczników czasu wobec jawnego zaufania i bieżących dowodów CRL lub OCSP przed publikacją oraz wymuszanie wymaganego osadzania odwołań w seed podpisu
Version 2.852.0
Added
- Zapisywanie uwierzytelnionych prawnych atestacji Unicode w podpisach certyfikacji, poszanowanie wymagań Legal seed wyłącznie dla certyfikacji, zachowanie istniejących statystyk prawnych i uprawnień katalogu oraz utrzymanie zaszyfrowanych polityk stringów
Version 2.851.0
Added
- Renderowanie fizycznych kolorów źródłowych Lab ICC i ograniczonych wejść kompatybilności XYZ w ścieżkach, tekście, spakowanych obrazach i paletach Indexed, zachowanie kalibrowanych i alternatywnych tonacji ICC przez grupy RGB lub CMYK oraz stosowanie osadzonych profili JPX z oddzielną lub skojarzoną alfą
Version 2.850.0
Added
- Konwersja kompatybilnych dokumentów z brakującymi czcionkami do przeszukiwalnego tekstu i wektorowego PDF/A-4 z jawnym ograniczonym osadzaniem czcionek Ghostscript, prawdziwą walidacją veraPDF i publikacją atomową oraz spójny wybór natywnych czcionek Unicode TrueType między dystrybucjami
Version 2.849.0
Added
- Renderowanie osadzonych prostych czcionek Type1 i Type1C z dokładnymi zadeklarowanymi lub wbudowanymi kodowaniami glifów Adobe, oddzielenie ekstrakcji ToUnicode od wyświetlanych konturów oraz akceptacja zwalidowanego neutralnego stroke-adjustment i względnego kolorymetrycznie stanu grafiki
Version 2.848.0
Added
- Rozwiązywanie kompletnych sufiksów ścieżek potomków XFA wewnątrz każdego kontekstu wildcard, zachowanie lokalnych granic wystąpień i wykonywanie predykatów w bieżącym zakresie zdarzenia z dokładnym transakcyjnym rollbackiem
Version 2.847.0
Added
- Wymuszanie dziedziczonych natywnych ograniczeń seed i certyfikatów podpisów z prawdziwymi łańcuchami wystawców, politykami subject i key usage, wybieralnymi digestami CMS, zaszyfrowanymi metadanymi podpisu Unicode i transformacjami blokujących dokumentów
Version 2.846.0
Added
- Wystawienie natywnych datasetów i węzłów danych XFA z dwukierunkowymi bindowaniami formularza, dynamicznym mirroringiem danych instancji, stabilnymi zapamiętanymi referencjami, niezależnymi niezbindowanymi wartościami formularza i transakcyjnym replayem skryptów
Version 2.845.0
Added
- Emitowanie uwierzytelnionych referencji FieldMDP z istniejących lub dziedziczonych blokad pól podpisów, zachowanie zaszyfrowanych nazw pól Unicode i referencji certyfikacji oraz stosowanie poziomów uprawnień blokad bez osłabiania oryginalnych podpisanych polityk
Version 2.844.0
Added
- Renderowanie alternatywnych tonacji Separation i DeviceN z ograniczonymi funkcjami wektorowymi, spakowanymi obrazami i blendowaniem grup CMYK, zachowanie geometrii knockout None i spójne mapowanie kolorów rejestracji All
Version 2.843.0
Added
- Rozwiązywanie dynamicznych ścieżek SOM XFA z wywnioskowanymi i względnymi wystąpieniami, zakresowanymi predykatami, selektorami klas i potomków, kolekcjami wildcard oraz transakcyjnymi przypisaniami właściwości obiektów skryptowych
Version 2.842.0
Added
- Udostępnienie natywnego porównania semantycznego dwóch dokumentów przez C ABI i Pascal we współdzielonym przenośnym rdzeniu, z geometrią glifów źródła, wejściami zaszyfrowanymi i o zagnieżdżonej zawartości, przygotowanym wyjściem przeglądu JSON lub HTML i stabilną kolejnością blokad współbieżnych
Version 2.841.0
Added
- Uwierzytelnianie oryginalnych rewizji CMS i CAdES przed natywnymi aktualizacjami formularza, wymuszanie oryginalnych uprawnień DocMDP i FieldMDP oraz zablokowanych pól, zachowanie podpisanej zawartości i zasobów oraz atomowa synchronizacja metadanych podpisów push-button
Version 2.840.0
Added
- Renderowanie kalibrowanych kolorów źródłowych CalGray, CalRGB i Lab, kalibrowanego blendowania grup i stron, baz Indexed, 16-bitowych próbek obrazów i miękkich masek luminancji XYZ z ograniczoną konwersją i bezpiecznym wyliczaniem gamma
Version 2.839.0
Added
- Implementacja kopiowania wartości FormCalc i stabilnych referencji węzłów z przypisaniem przez referencję, rebindowaniem i odłączeniem null, tożsamościową równością numeryczną, zapamiętanymi uchwytami i transakcyjnym rollbackiem
Version 2.838.0
Added
- Wykonywanie generowanych w runtime programów Eval FormCalc z izolowanymi zakresami obliczeń, zagnieżdżonym wyliczaniem, źródłem Unicode, ograniczonymi ponowieniami kompilacji i transakcyjnym replayem odpowiedzi hosta
Version 2.837.0
Added
- Generowanie osadzonych wyglądów Unicode przez natywne wypełnianie formularzy JSON w Linuksie dla pól text, choice i multiselect, stanów checkbox i radio oraz podpisów przycisków, z zachowaniem publikacji transakcyjnej i szyfrowania
Version 2.836.0
Added
- Udostępnienie synchronicznego transportu znaczników czasu RFC 3161 przez kompatybilny rozszerzony rekord natywnej operacji podpisywania, z ograniczonymi odpowiedziami, współdzielonym anulowaniem i jawną walidacją zaufania TSA oraz odwołań
Version 2.835.0
Added
- Wykonywanie transakcyjnego stanu hosta XFA, flag stron i cyklu życia, per-instancja zmian fokusa, walidacji oczekujących edycji i operacji reset ze stabilną tożsamością i replayem stanu leksykalnego
Version 2.834.0
Added
- Walidacja identyfikatorów certyfikatów podpisujących CAdES wobec rzeczywistego podpisującego niezależnie od opcjonalnego zaufania do certyfikatów oraz rozwiązywanie osadzonych strumieni CMap Encoding przez natywny adapter czcionek
Version 2.833.0
Added
- Renderowanie pionowych CMap Identity-V i predefiniowanych Unicode z rzeczywistymi początkami W2/DW2, macierzami, ruchem tekstu i przycinaniem oraz poprawne dekodowanie osadzonych strumieni CMap Encoding
Version 2.832.0
Added
- Podpisywanie przez natywne ABI callbacków Linux z tożsamościami PEM lub ograniczonymi PFX, nowymi polami wyglądów Unicode i certyfikacją oraz zachowanie przygotowanego podpisanego dokumentu jako bieżącego kontekstu po udanej publikacji
Version 2.831.0
Fixed
- Spójne stosowanie ograniczeń seed podpisywania, blokad i tylko-do-odczytu do zakodowanych nazw PDF, odrzucanie semantycznie zduplikowanych kluczy i walidacja dziedziczonych słowników polityk
Version 2.830.0
Added
- Wykonywanie zaawansowanych klauzul picture XFA — numerycznych, kalendarzowych, tekstowych i złożonych — przez rzeczywiste zdarzenia formularza, z zachowaniem precyzji wejścia, semantyki locale i transakcyjnego replayu skryptów
Version 2.829.0
Added
- Import natywnych grafów zasobów stron i przekształconych wyglądów adnotacji do zwykłych lub zaszyfrowanych dokumentów oraz konwersja kompatybilnych wejść do przeszukiwalnego tekstu i wektorowego PDF/A-4 z prawdziwą walidacją przed publikacją atomową
Version 2.828.0
Added
- Renderowanie czteroskładnikowych grup przezroczystości CMYK i ICC oraz grup stron ze wszystkimi trybami blendowania, zagnieżdżoną geometrią knockout i współdzielonymi budżetami profili kolorów
Version 2.827.0
Added
- Wykonywanie świadomych locale obrazów picture XFA dla daty, czasu, liczb i tekstu z osadzonymi zbiorami locale, ograniczonymi transakcyjnymi zapytaniami locale i chronioną arytmetyką IEEE JavaScript
Version 2.826.0
Added
- Odczyt i zapis zaznaczeń choice o wartościach tablicowych Unicode, utrzymanie posortowanych indeksów opcji i generowanie pasujących wyglądów dla zaznaczeń list widocznych i przewiniętych
Version 2.825.0
Added
- Podpisywanie zaszyfrowanych dokumentów przez joby Windows JSON i C ABI z zachowaniem oryginalnych rewizji, ustawień zabezpieczeń AES, ID dokumentów i uprawnień podpisów
Version 2.824.0
Added
- Tworzenie natywnych dokumentów HTML w Linuksie, wstawianie widocznego lub dopasowanego przeszukiwalnego tekstu Unicode, uruchamianie ograniczonego, anulowalnego OCR Tesseract oraz autorowanie niezależnie walidowanego rastra PDF/A-4 przez API Pascal i callbacki
- Renderowanie masek Alpha/Luminosity stanu grafiki, ograniczonych funkcji transferu, addytywnej przezroczystości i grup stron, kształtów knockout oraz rozszerzonych próbek JPEG 2000 z osadzonym kolorem i alfą
- Walidacja dostarczonych dowodów certyfikatów, OCSP i CRL przed przyrostową publikacją DSS/VRI, przy zachowaniu istniejących podpisów i szyfrowania AES
- Wykonywanie jawnych typowanych callbacków transportu hosta XFA i FormCalc z ograniczonymi żądaniami, nagranymi odpowiedziami i transakcyjnym replayem
Fixed
- Zachowanie wartości Unicode i diagnostyki wyjątków zwracanych przez API QuickJS Free Pascal
Version 2.823.0
Added
- Osadzanie zwalidowanych znaczników czasu RFC 3161 w headless podpisach CMS z kontrolami imprintu wiadomości, nonce, autoryzacji TSA, zaufania i dostarczonych dowodów odwołań, z zachowaniem plików docelowych przy niepowodzeniu wymaganego znacznika czasu
- Retencja stanu leksykalnego obiektów skryptowych XFA, zagnieżdżonych domknięć i niezależnych modułów powtórzonych instancji z deterministycznym ograniczonym transakcyjnym replayem
- Zastosowanie jawnego odstępu znaków i słów w mierzonych i generowanych headless wyglądach tekstu Unicode
Fixed
- Użycie zgodnej ze specyfikacją kolejności argumentów source/search w FormCalc At i zwracanie pierwszej pozycji dla pustego szukanego łańcucha
Version 2.822.0
Added
- Wykonywanie ogólnych zdarzeń XFA QuickJS i skompilowanego FormCalc z żywymi operacjami DOM powtórzonych instancji, transakcyjną trwałością standardowych pakietów formularza, automatycznym cyklem życia initialize/calculate/validate/ready oraz ograniczonym wykonaniem i anulowaniem
Fixed
- Zastosowanie zgodnych ze specyfikacją parametrów funkcji finansowych XFA i wzorów przepływów gotówki, początków dat gregoriańskich i zachowania ujemnej reszty, z zachowaniem precyzji double w Delphi i Free Pascal
Version 2.821.0
Added
- Rozszerzenie natywnych headless workflow dokumentów o wersjonowane C ABI Linux, rzeczywiste operacje text/form/render/sign oparte na callbackach, ograniczone anulowanie i rollback po błędach, wyglądy multiline/comb/rotated/choice/button ze shapowaniem HarfBuzz/FriBidi, tożsamości PFX, nowe widoczne pola podpisów i certyfikację DocMDP
- Renderowanie ograniczonych masek obrazów, miękkich masek, kolorów Indexed/ICC, trybów blendowania PDF, izolowanych grup przezroczystości RGB, glifów Type3 i przycinania tekstu oraz dekodowanie strumieni obrazów JPEG, JPEG 2000, CCITT, JBIG2 i RunLength przez uwierzytelnioną natywną ścieżkę dokumentów
Version 2.820.0
Added
- Wypełnianie wspieranych natywnych headless jednowierszowych pól AcroForm Unicode prawdziwymi osadzonymi wyglądami TrueType, dokładnymi szerokościami glifów i mapowaniami CIDToGID/ToUnicode, transakcyjnymi aktualizacjami wielu widgetów, zachowanym zabezpieczeniem AES, kontrolowanym osadzaniem czcionek i ograniczonym zapisem atomowym na Linuksie i Windows
Version 2.819.0
Added
- Renderowanie wspieranych ścieżek PDF, poziomego tekstu, obrazów, Forms i istniejących wyglądów adnotacji do PNG z natywnymi powierzchniami CPU Cairo/FreeType na Linuksie, wymuszanie ograniczonej pracy i anulowania, zachowanie źródeł oraz atomowa publikacja plików PNG
Fixed
- Użycie kanonicznych naliczeń AFM Adobe dla dwunastu standardowych stylów Helvetica/Times/Courier przy braku szerokości PDF, co zapobiega skumulowanemu dryfowi pozycji tekstu z metryk czcionek zastępczych, przy zachowaniu jawnych i osadzonych szerokości czcionek
Version 2.818.0
Added
- Publikacja prawdziwych natywnych headless przyrostowych podpisów CMS/CAdES PDF na Linuksie i Windows z użyciem istniejących niepodpisanych pól i jawnych poświadczeń PEM, zachowanie wcześniejszych rewizji i zabezpieczeń AES-256, weryfikacja dokładnych podpisanych bajtów oraz ochrona istniejących celów przez ograniczoną publikację atomową
Version 2.817.0
Added
- Ukończenie ograniczonych jobów dokumentów JSON i C ABI ze zwalidowanym przyrostowym podpisywaniem PFX, istniejącymi polami podpisów, porównaniem dwóch dokumentów, sześcioma natywnymi trybami porównania i dwustronnym przeglądem umów JSON/HTML/annotated-PDF, w tym kooperatywnym anulowaniem, limitami zasobów i atomową publikacją plików
Version 2.816.0
Added
- Weryfikacja natywnych headless podpisów PDF z dokładnym wiązaniem ByteRange/Contents i streamingowym OpenSSL 3, generowanie prawdziwych odłączonych podpisów CMS/CAdES z jawnych poświadczeń PEM oraz raportowanie zaufania do certyfikatów osobno od integralności na Linuksie i Windows
Version 2.815.0
Added
- Użycie ograniczonego helpera prezentacji instancji XFA dla zdarzeń warunkowych, jawnego powtórzonego bindowania, niezależnej obecności i dostępu instancji, stabilnej trwałej tożsamości, transakcyjnego reflow, malowania host canvas i rekordów dostępności
Version 2.814.0
Added
- Otwieranie natywnych headless dokumentów AES-256 R5/R6 na Linuksie i Windows, uwierzytelnianie uprawnień właściciela/użytkownika, dekodowanie zaszyfrowanych obiektów skompresowanych oraz zapis zaszyfrowanych przyrostowych wartości formularza z dokładnym zachowaniem prefiksu źródła i ograniczonym wyjściem atomowym
Version 2.813.0
Added
- Reflow tekstu w ograniczonych prostokątach stron przez linie bazowe i wybrane wspólne wywołania Form, zmiana czcionek i szerokości, inspekcja konserwatywnych raportów kolizji oraz użycie zaplombowanych podglądów z transakcyjnym commit lub rollback
Fixed
- Zachowanie edycji wczytanego dokumentu w powtórzonych zapisach po serializacji obiektów, w tym zapisach strumień-do-pliku i ponowieniach po niepowodzeniu wyjścia
Version 2.812.0
Added
- Konwersja kompatybilnych wczytanych dokumentów do PDF/A-4 z zachowaniem oryginalnego tekstu, wektorów, obrazów i osadzonych zasobów, składaniem widocznych wyglądów adnotacji/widgetów, retencją lub dodaniem przeszukiwalnego OCR, raportowaniem jawnych utrat oraz walidacją zachowania przed atomową publikacją pliku
Version 2.811.0
Added
- Wczytywanie strumieni cross-reference, hybrydowych sekcji referencji i skompresowanych strumieni obiektów przez natywne headless API dokumentów, walidacja ograniczonych indeksów członków i pierwszeństwa rewizji, zachowanie dokładnych szerokich wartości numerycznych źródła oraz zapis zachowujący źródło niezależnego wyjścia przyrostowego na Linuksie i Windows
Version 2.810.0
Added
- Korekta orientacji skanu, ukośności o ciągłych kątach, cieni, ramek i jawnych czworokątów perspektywicznych z ograniczoną odwracalną geometrią, użycie zaufanych dowodów orientacji Tesseract oraz mapowanie słów, linii bazowych, czworokątów stron i semantycznego layoutu OCR z powrotem do oryginalnego skanu dla edytowalnego ustrukturyzowanego wyjścia
Version 2.809.0
Added
- Konfiguracja lokalnych silników Tesseract i RapidOCR CLI lub DLL w jobach OCR JSON i C ABI, retencja przeszukiwalnego tekstu Unicode i pikseli skanu, odkrywanie wspieranych adapterów, walidacja jawnych ustawień oraz wymuszanie budżetów renderowania/rozpoznawania z wyjściem atomowym i rollbackiem nieudanej publikacji
Version 2.808.0
Added
- Wczytywanie PDF klasycznego xref w natywnych aplikacjach konsolowych Linux, ekstrakcja tekstu Unicode stron i zagnieżdżonych Form z dziedziczonymi zasobami, inspekcja i wypełnianie wartości text AcroForm oraz publikacja zachowującego źródło wyjścia przyrostowego z typowaną diagnostyką, anulowaniem, budżetami zasobów i atomową podmianą
Version 2.807.0
Added
- Lokalizowanie wielu oddzielnych natywnych kodów kreskowych w jednym rastrze, retencja powtórzonych payloadów na odrębnych pozycjach, dekodowanie obróconych i projekcyjnych symboli Data Matrix ECC 200 z geometrią czterech narożników oraz wymuszanie zagregowanych budżetów skanowania z anulowaniem i atomową publikacją wyników
Version 2.806.0
Added
- Porównywanie akapitów umów i edycji słów lub zdań z zapisami wstaw, usuń, zamień i przenieś, lokalizacjami stron po obu stronach porównania, zachowywaniem powtarzających się klauzul, jawnymi wykluczeniami boilerplate'u, ograniczonym przeglądem HTML oraz adnotowanym wyjściem PDF sprawdzanym względem źródła
Version 2.805.0
Added
- Import biznesowych szablonów HTML z zagnieżdżonymi panelami flex/grid, zawijającymi się wierszami, łączeniem kolumn grida oraz obrazami i kontrolkami formularzy w równoległych boxach, plus jawnie dostarczone zasoby font-face zachowywane mimo odłożonego osadzania i osobny budżet cache dla zdekodowanych obrazów
Version 2.804.0
Added
- Wspólny rdzeń biblioteki — obiekty PDF, bezpośrednie I/O plików, dekodowanie treści i czcionek, kompresja, kryptografia i writer — jest teraz natywnym kodem Linuksa z mapowaniem i synchronizacją POSIX, przy zachowaniu API Windows i poprawnej serializacji klasycznych wpisów xref
Version 2.803.0
Added
- Rejestrowanie wersjonowanych warstw profili faktur i reguł krajowych, walidacja jawnych faktur CII XML albo hybrydowych z raportami uwzględniającymi zakres oraz wykonywanie oficjalnych reguł faktur XRechnung 3.0.2 i francuskiego CTC przez jawnie skonfigurowany silnik Saxon, z jawnym wyborem profilu i diagnostyką failure-closed
Version 2.802.0
Added
- Eksport tabel z typami do niezależnych od Office skoroszytów XLSX przez natywne API, JSON jobs i C ABI, z zachowaniem typów wartości, formatów walutowych i procentowych, scalonych komórek, dokładnych dużych liczb całkowitych i opcjonalnych metadanych źródła, przy ograniczonym stagingu i publikacji odpornej na błędy
Version 2.801.0
Added
- JSON jobs i C ABI potrafią eksportować wybrane wczytane strony jako semantyczny HTML, XHTML, XML albo JSON, a tabele z typami jako CSV albo JSON — z natywnymi opcjami, ograniczonym stagingiem, anulowaniem, kompatybilnością z polami podpisu, zachowaniem stanu źródła i atomową publikacją plików
Version 2.800.2
Fixed
- Cache relacji formularzy wczytanego dokumentu jest unieważniany przed rollbackiem grafu, więc zadania podpisywania i nieudane edycje zostawiają oryginalny dokument bezpieczny do odpytywania i dalszego użycia
Version 2.800.1
Fixed
- Uporządkowane renderowanie równoległe przyjmuje teraz rezerwacje pamięci w kolejności wejścia, więc późniejsze strony nie potrafią wyczerpać budżetu, dopóki dostarczanie czeka na wcześniejszą stronę — z zachowanym anulowaniem i ograniczonym wyjściem w Delphi i FPC
Version 2.800.0
Changed
- Tekst SVG, wyglądy wczytanych FreeText i wczytane zamiany tekstu zachowują teraz funkcje shaping dokumentu, flagi auto-shapingu pisma oraz wybory skryptu i języka GSUB, korzystają z danych OpenType każdej wybranej czcionki i zachowują mapowania Unicode również po zmianie czcionki
Version 2.799.0
Changed
- Import wektorów SVG zachowuje teraz dziedziczone tablice kresek (dash array), ich przesunięcia i limity miter dla obrysów pełnych i gradientowych, a natywne renderowanie odtwarza przesunięte w fazie i zerowej długości wzory kresek
Version 2.798.0
Changed
- Stylizowany tekst Unicode trzyma teraz pogrubienia i kursywy przez fallbackowy layout; przeciążenia
ResolveFontForCodePointiAnalyzeUnresolvedGlyphsświadome stylu sprawiają, że preflight zgadza się z wynikiem, a referencje znaków XML w FPC zachowują skalary Unicode zamiast psuć tekst
Version 2.797.0
Fixed
- Import SVG komponuje teraz krycie obiektów i grup przez izolowane Formy przezroczystości wektorowej, zachowuje niezależną alfa wypełnienia i obrysu oraz utrzymuje zagnieżdżone zasoby, przycinanie, maski i działanie linków w ramach jawnych budżetów
Version 2.796.0
Added
- Dodano ograniczoną konwersję archiwalną PDF/A-4 do rastra przez JSON jobs i C ABI, z jawną akceptacją utraty informacji, ustrukturyzowanymi błędami budżetu, kooperacyjnym anulowaniem, przywracaniem stanu źródła i atomowym zapisem plików
Version 2.795.0
Added
- Wczytane PDF-y da się teraz normalizować do zwalidowanych dokumentów PDF/A-4 w rastrze — ze ścisłym natywnym renderowaniem, zweryfikowanym kolorem sRGB, ograniczonym dekodowaniem i zasobami rastra, anulowaniem, ochroną źródła przed aliasami i atomową publikacją plików; raport konwersji wskazuje celowo usuniętą zawartość interaktywną i załączniki
Version 2.794.0
Changed
- Import HTML5 korzysta teraz ze zmierzonych wierszy tekstu o mieszanym kierunku, łamania stron z obsługą wdów i sierot, opcjonalnego dzielenia wyrazów, ograniczonych layoutów flex i grid oraz obserwowalnej diagnostyki CSS; natywne bitmapy FPC synchronizują bezpośrednie rysowanie GDI z cache obrazów LCL
Version 2.793.0
Changed
- Dodano ograniczone dynamiczne zdarzenia dodawania i usuwania instance managerów XFA oraz obecności szablonu, z ponownym wiązaniem layoutu, zachowaniem stanu edycji, atomowym rollbackiem, limitami zasobów i trwałym wyjściem XDP
Version 2.792.0
Changed
- Rozszerzono import SVG o mierzone osadzone czcionki Unicode, zasoby PNG/JPEG, obrysy gradientowe i prawdziwe miękkie maski Alpha i Luminosity, a przy okazji poprawiono natywne alfa grup i komponowanie powierzchni bitmapowych FPC
Version 2.791.0
Changed
- Dodano zamianę tekstu Unicode w załadowanych dokumentach z możliwością podglądu, z osadzonymi czcionkami, politykami zawijania i szerokości, diagnostyką każdego dopasowania, wykrywaniem nieaktualnych planów, ograniczonymi zasobami, atomowymi commitami oraz operacjami podglądu i zastosowania przez JSON i C ABI
Version 2.790.0
Changed
- Renderowanie glifów obsługuje teraz standardowe operacje stosu CFF Type 2 i tablic przejściowych, a subsetting czcionek zachowuje zależności lokalnych i globalnych podprogramów wynikające z operacji arytmetycznych
Version 2.789.0
Changed
- Wbudowane dekodowanie kodów kreskowych zyskało Code 128, EAN/UPC, odzyskiwanie QR świadome perspektywy, Data Matrix ECC 200 oraz PDF417 z korekcją Reed-Solomon i ograniczonym dekodowaniem payloadu
Version 2.788.0
Changed
- Windows FPC obsługuje teraz natywnie TIFF, JPEG/JPX, konwersję ICC, JBIG2 i Zopfli przez most kodeków walidowany przez ABI, a do renderowania stron, uporządkowanych stron, kafli, pasów i kafli JPEG 2000 używa prawdziwych wątków roboczych — z budżetami, uporządkowanymi callbackami, anulowaniem i deterministycznymi pikselami
Version 2.787.0
Changed
- C ABI i procesor JSON jobs współdzielą teraz operacje dokumentowe wersjonowane schematem — dla możliwości, renderowania, tekstu Unicode i formularzy, warstw OCR, redaction i podpisywania PFX — z jawnymi budżetami zasobów, rollbackiem po nieudanym callbacku i atomowymi wyjściami plików; wielostronicowe wejścia callbacków wczytują się poprawnie
Version 2.786.0
Changed
- Edycja wczytanych FreeText przebudowuje teraz atomowo wyglądy Unicode i rich-text, z zawijaniem, wyrównaniem, kryciem, rotacją, dymkami, wewnętrznymi marginesami i jawnymi politykami przepełnienia; przepisane payloady strumieni są zapamiętywane przed modyfikacją, więc rollback transakcji przywraca oryginalny tekst
Version 2.785.0
Added
- Demo konsolowe SearchableOCR dodaje wbudowany OCR oraz silniki Tesseract DLL i CLI obok RapidOCR, generuje trójstronicową próbkę skanu i wystawia wybór stron, filtrowanie po pewności rozpoznania, budżety rozpoznawania i szczegółowe statystyki konwersji
Version 2.784.0
Changed
- Zbiorczy import FDF i XFDF wycofuje teraz wcześniejsze aktualizacje pól i adnotacji po nieudanym imporcie, respektuje transakcje należące do wywołującego i czyści metadane nieudanej wymiany
Version 2.782.0
Added
- Lokalny adapter Tesseract OCR przyjmuje przez THPDFTesseractOptions konfigurowalną segmentację stron, tryb silnika rozpoznawania, limity pikseli i limity czasu — dla rozpoznawania pojedynczej linii, pojedynczego słowa, sparse text i bloków pionowych
Fixed
- Natywny adapter Tesseract używa wymiaru boxu cross-text dla przeważnie pionowych linii bazowych, więc długości pionowych słów nie zawyżają już rozmiarów tekstu w przeszukiwalnych PDF-ach
Version 2.781.0
Changed
- Kolekcje demo Delphi i C++Builder zawierają teraz wielostronicowy przewodnik po polach kodów kreskowych z biznesowymi etykietami oraz pełny podręcznik nawigacji z hierarchicznymi zakładkami, nazwanymi celami i działającymi linkami do dokumentów towarzyszących; minimalne przepisy PDF/A trafiły do Miscellaneous, a redundantne samodzielne projekty outline i metadanych zostały wycofane
Version 2.780.1
Fixed
- Strona adnotacji dema Showcase rozdziela podpisy podglądu zawartości od żywych wyglądów free-text i stempli, więc etykiety nie nakładają się już w czytnikach PDF, a przykłady pozostają rozpoznawalne, gdy wyglądy adnotacji są ukryte
Version 2.780.0
Changed
- Katalogi demo stawiają teraz na kompletne workflow, a siedemnaście minimalnych, wąsko wyspecjalizowanych albo przestarzałych przykładów trafia do podkatalogów Miscellaneous; redundantne projekty ImageCompression i AddDelPages zostały usunięte, a ich funkcjonalność pozostała w głównych demo i zestawach regresyjnych
Version 2.779.0
Added
- Dema Showcase Delphi i C++Builder otwierają teraz kompletne dziesięciorozdziałowe studio dokumentów z osadzonym podglądem, podświetlaniem trafień wyszukiwania, spersonalizowanymi okładkami, znakami wodnymi do recenzji jednym kliknięciem, zweryfikowanym eksportem stron oraz kopiami chronionymi AES-256 R6, które zachowują edycje; oba korzystają z tego samego silnika dokumentów i obsługują polecenie generowania bez okna
Version 2.778.1
Removed
- Redundantne GUI dema TestNumeric w Delphi i C++Builder zostały wycofane na rzecz automatycznych testów regresyjnych liczb, które weryfikują ułamkowe wymiary stron i operandy rysowania po zapisaniu i ponownym wczytaniu PDF-ów bez kompresji i z kompresją Flate, z utrwalonym pokryciem tablic liczbowych
Version 2.778.0
Changed
- Dema stron i raportów dla klientów pokazują teraz praktyczne workflow: PageOperations edytuje prawdziwe PDF-y poleceniami extract, delete, move, insert i append z weryfikacją po ponownym wczytaniu, a DBTable używa silnika tabel do zawijanych wierszy, powtarzanych nagłówków i automatycznego łamania stron z domyślną próbką bez bazy danych
Version 2.777.1
Fixed
- OCR odrzuca przed publikacją tekstu zniekształcone UTF-8, nieobsługiwane znaki sterujące i niekompatybilne wyjścia natywnych modeli detekcji, a przy egzekwowaniu międzystronicowych limitów słów uwzględnia odrzucone wyniki rozpoznawania
Version 2.777.0
Fixed
- Wbudowany OCR przyjmuje puste lub nierozpoznane strony jako udane puste wyniki, więc przetwarzanie partii skanowanych dokumentów może być kontynuowane, zachowuje piksele bitmap Windows FPC oraz sprawdza anulowanie i limity czasu w całej analizie obrazu
- Klasyfikacja kąta w natywnym RapidOCR zachowuje proporcje krótkich linii i wymaga wystarczająco pewnych predykcji, że tekst jest do góry nogami, zanim obróci wycinki tekstu
- Lokalny adapter Python RapidOCR zachowuje rozpoznane odstępy wierszy i interpunkcję zamiast publikować pojedyncze znaki, które mogą dostać niepożądane spacje, a adapter Tesseract DLL odrzuca znaki sterujące C1 przed publikacją tekstu
Version 2.776.0
Added
- Warstwy tekstu skanowanych PDF mogą atomowo zastępować oznaczone strumienie OCR HotPDF po zapisie i ponownym załadowaniu, zachowują istniejące warstwy przy nieudanym lub pustym rozpoznaniu, raportują zastąpione strony i korzystają z natywnego wielojęzycznego przykładu konsolowego RapidOCR do konwersji bez nadpisywania istniejących plików
Fixed
- Sąsiadujące łacińskie i cyrylickie słowa OCR z odstępem słownym w tym samym wierszu dostają jawne spacje Unicode dla stabilnego wyszukiwania i kopiowania fraz, podczas gdy sąsiadujące słowa CJK pozostają nierozdzielone
- Renderowanie skanów JPEG w Windows FPC zachowuje zdekodowane piksele przy konwersji do formatu bitmapy OCR, co zapobiega pustemu wejściu rozpoznawania wynikłemu ze zmiany formatu pikseli LCL
Version 2.775.0
Added
- Natywny RapidOCR zyskuje lokalne presety modeli dla chińskiego uproszczonego i tradycyjnego, angielskiego, francuskiego, niemieckiego, hiszpańskiego, portugalskiego, włoskiego, niderlandzkiego, tureckiego, japońskiego, koreańskiego, rosyjskiego, arabskiego i hindi, z dopasowanymi słownikami znaków, weryfikowaną instalacją modeli, poziomą kolejnością czytania i wielojęzycznym wyjściem Unicode w Delphi, C++Builder i Windows FPC/Lazarus
Fixed
- Lokalne adaptery OCR działające jako proces ponawiają czyszczenie tymczasowych wyjść, gdy pliki diagnostyczne pozostają przez chwilę zablokowane po zakończeniu procesu roboczego
Version 2.774.0
Added
- Natywny adapter RapidOCR DLL utrzymuje lokalne modele ONNX wewnątrz procesu, rozpoznaje migawki bitmap bez Pythona, obsługuje opcjonalną klasyfikację kąta i przeszukiwalne PDF-y Unicode oraz waliduje budżety wyjścia z kooperacyjnym anulowaniem w kompilacjach Delphi, C++Builder i Windows FPC/Lazarus
Version 2.773.0
Added
- Lokalny adapter RapidOCR zyskuje jawną konfigurację modelu ONNX, opcjonalną klasyfikację kąta, lokalne słowniki znaków i czcionki, sterowanie wątkami CPU, preflight offline oraz budżety rozpoznawania dla przeszukiwalnych PDF-ów Unicode w kompilacjach Delphi, C++Builder i FPC/Lazarus
Version 2.772.1
Fixed
- Adaptery Tesseract DLL i CLI działają teraz w kompilacjach Win32 i Win64 Windows FPC/Lazarus, zachowując słowa OCR Unicode i odczytując bieżące piksele obrazu LCL dla przeszukiwalnych warstw tekstu PDF
Version 2.772.0
Added
- Opcjonalny natywny adapter Tesseract DLL dodaje wielojęzyczny OCR z konfigurowalną segmentacją stron i trybami silnika, słowami Unicode, pewnością, granicami słów i liniami bazowymi, a także kooperacyjnym anulowaniem, terminami granicznymi rozpoznawania i budżetami wyjścia dla przeszukiwalnych skanowanych PDF-ów
Version 2.771.1
Changed
- Wbudowany OCR rozpoznaje zwykły, pogrubiony, kursywny i pogrubiony kursywny tekst ASCII na jasnych lub przeważnie ciemnych tłach, akceptuje wyblakłe napisy o wystarczającym kontraście w skali szarości i pomija słowa zawierające niepewne zachowane glify zamiast po cichu gubić znaki
Version 2.770.175
Fixed
- LoadedDocInspector i SignatureValidator zwracają kod wyjścia porażki dla nieczytelnych PDF-ów i odrzucają nieprawidłowe argumenty polecenia zamiast raportować udaną pustą inspekcję
Version 2.770.174
Fixed
- LoadedImageExport waliduje każdy docelowy obraz przed wyeksportowaniem jakiejkolwiek strony, zapobiegając nadpisaniu wejściowego PDF albo innej wybranej strony przez aliasy ścieżek, i odrzuca nieobsługiwane nazwy formatów
Version 2.770.173
Fixed
- Dyskowy cache wyrenderowanych stron pomija dowiązane foldery dokumentów podczas odzyskiwania, wyszukiwania, zapisu, unieważniania i usuwania wpisów, chroniąc pliki znajdujące się poza cache
Version 2.770.172
Fixed
- Zadania JSON odrzucają zniekształconą składnię, treść po końcu danych, liczby poza skończonym zakresem Double i nadmierne zagnieżdżenie przed uruchomieniem jakiejkolwiek operacji, zwalniając częściowo sparsowane wartości przy porażce
Version 2.770.171
Fixed
- PreflightCLI sprawdza kompletny plan wyjść raportów przed zapisem, chroniąc wejściowe PDF-y przed aliasami plików i odrzucając konfliktowe cele raportów; skany rekurencyjne pomijają dowiązane katalogi potomne, by uniknąć cykli
Version 2.770.170
Fixed
- CopyPage sprawdza tożsamość plików przed eksportem, odrzuca konfliktowe aliasy wyjść i pozostawia automatycznie nazywane wyjścia obok wejść bez rozszerzenia w katalogach zawierających kropki
Version 2.770.169
Fixed
- Wartości zadań JSON zachowują escapowane znaki null, serializują skończone liczby poza 64-bitowym zakresem ze znakiem bez przepełnienia całkowitego i zwracają wartości domyślne dla parametrów całkowitych spoza zakresu bez zmiany ustawień regionalnych procesu
Version 2.770.168
Fixed
- Odzyskiwanie parsera prostych obiektów kończy się przy obcych nawiasach zamykających w ciałach tablic bez nawiasów i zachowuje poprawne liczby oraz klucze słowników występujące bezpośrednio po zniekształconych separatorach
Version 2.770.167
Fixed
- HotPDFCLI odrzuca ścieżki wyjściowe będące aliasami plików wejściowych i sprawdza wszystkie generowane ścieżki przed rozpoczęciem eksportu wsadowego, więc polecenia nie mogą skrócić ani zastąpić swoich danych źródłowych
Version 2.770.166
Fixed
- Przykład ExtractText chroni swój wejściowy PDF, gdy wyjście używa junction katalogu lub twardego dowiązania, a LoadedImageExport raportuje porażkę dla nieczytelnych dokumentów lub niekompletnych eksportów stron
Version 2.770.165
Fixed
- Bezpośrednie odczyty plików unieważniają niekompletne uzupełnienia cache po niepowodzeniu I/O i bezpiecznie ograniczają zakresy read-ahead blisko granicy 64-bitowego przesunięcia ze znakiem
Version 2.770.164
Fixed
- Dekodowanie RunLength alokuje tylko rozmiar zdekodowanych danych i waliduje zniekształcone sekwencje przed alokacją wyjścia, unikając nadmiernych rezerwacji pamięci dla strumieni z wczesnymi terminatorami
Version 2.770.163
Fixed
- Przykłady Delphi i C++Builder odnajdują dołączone obrazy, metapliki, profile kolorów i opcjonalne elementy podpisujące zarówno w folderach projektów, jak i w zagnieżdżonych katalogach wyjściowych kompilacji
Version 2.770.162
Fixed
- Przykłady HugeFileBenchmark odrzucają ścieżki generowanych PDF, które pokrywają się z jakimkolwiek dokumentem wejściowym, przed rozpoczęciem partii benchmarku
- Przykład C++Builder zachowuje względne podkatalogi wejściowe dla generowanych PDF, więc rekurencyjne wejścia o tej samej nazwie nie dzielą jednego pliku wyjściowego
- Nieudane operacje, przekroczenia limitu pamięci i nieprawidłowe załadowania dokumentów o zerowej liczbie stron dają teraz niezerowy kod wyjścia, zachowując przy tym raport benchmarku
Version 2.770.161
Fixed
- Preflight CLI w Delphi i C++Builder odrzuca ścieżki wyjściowe raportów i agregatów pokrywające się z wejściowym PDF, więc raporty nie nadpisują dokumentów źródłowych
Version 2.770.160
Fixed
- Parsowanie ASN.1 odrzuca kodowania high-tag-number wykraczające poza obsługiwany 32-bitowy zakres tagów zamiast akceptować zawinięty numer tagu
Version 2.770.159
Fixed
- Preflight CLI w C++Builder zachowuje względne podkatalogi dla rekurencyjnych raportów i linków dashboardów, więc PDF-y o tej samej nazwie nie nadpisują się już wzajemnie
- Dashboardy Preflight w Delphi i C++Builder kodują linki raportów poprawnie dla znaków specjalnych i nie-ASCII nazw katalogów
- Porażki walidacji standardowej w C++Builder zwracają teraz kod wyjścia 3 i widnieją w dashboardzie jako nieprawidłowe dla każdego formatu raportu, włącznie z wejściami, których nie da się załadować
Version 2.770.158
Fixed
- Przykład scalania PDF w C++Builder rozwiązuje względne ścieżki wejściowe względem katalogu pliku wykonywalnego i nie pozwala oknom dialogowym plików zmieniać katalogu roboczego
- Każda generowana zakładka wskazuje teraz pierwszą stronę skopiowaną z własnego dokumentu wejściowego
Version 2.770.157
Fixed
- Parser obiektów normalizuje nieescapowane końce wierszy CR i CRLF wewnątrz literałów łańcuchowych PDF do LF, zachowując przy tym escapowane powroty karetki i kontynuacje wiersza
Version 2.770.156
Fixed
- Kompresja strumieni LZW raportuje rzeczywistą liczbę zapisanych bajtów dla pustego wejścia
- Kompresja i dekompresja LZW działają poprawnie w obie strony przy InitialCodeSize ustawionym na 2, a kompresja odrzuca literały poza zredukowanym alfabetem przed zapisem wyjścia
Version 2.770.155
Fixed
- W kompilacjach Win64 importowanie danych ścieżek SVG lub XPS z liczbą o wykładniku bliskim 100, na przykład 1e-100 lub 5e99, nie powoduje już przepełnienia zmiennoprzecinkowego, gdy aplikacja odmaskowuje wyjątki zmiennoprzecinkowe
- Takie liczby są teraz odczytywane jako ich rzeczywista wartość, więc długa mantysa z dużym ujemnym wykładnikiem importuje się poprawnie
Version 2.770.154
Fixed
- DecodeLoadedPageBarcodes raportuje teraz poprawne granice kodów kreskowych na stronach, których CropBox różni się od MediaBox, gdy nie ustawiono regionu dekodowania; wcześniej pozycje były przesunięte o offset crop boxa albo skalowane względem złej wysokości strony
- Wyniki wykrywania twarzy z DetectLoadedRedactionFindings (z włączonym wykrywaniem twarzy) trafiają teraz na wykryte twarze na takich stronach, zamiast być od nich przesunięte
- Obie funkcje renderują widoczny obszar strony (CropBox przycięty do MediaBox) i odwzorowują wykryte pozycje z powrotem przez ten sam obszar; pole strony przekazywane do własnego IHPDFFaceDetector pasuje teraz do otrzymywanej bitmapy
- Dekodowanie kodów kreskowych z jawnym regionem oraz strony bez CropBox albo z CropBox równym MediaBox pozostają bez zmian
Version 2.770.153
Fixed
- ApplyLoadedOCRTextLayer kładzie teraz niewidzialną warstwę tekstu poprawnie na stronach, których CropBox różni się od MediaBox; wcześniej przeszukiwalny tekst był przesunięty o offset crop boxa albo skalowany względem złej wysokości strony, więc zaznaczenia i trafienia wyszukiwania nie trafiały w widoczne słowa
- Raster OCR jest renderowany z widocznego obszaru strony (CropBox przyciętego do MediaBox), a rozpoznane pozycje słów są teraz odwzorowywane z powrotem przez ten sam obszar
- Pole strony przekazywane do własnego IHPDFOCREngine w THPDFOCRRequest to teraz renderowany widoczny obszar, zgodny z otrzymywaną bitmapą
- Strony bez CropBox albo z CropBox równym MediaBox pozostają bez zmian
Version 2.770.152
Fixed
- GetLoadedInvoiceSummary zwraca teraz nazwę nabywcy (BT-44) jako zdekodowany tekst, więc nazwy z literami spoza ASCII, takie jak "Müller & Söhne", nie wracają już jako surowe bajty UTF-8 z nietkniętą encją XML
- Nazwa nabywcy jest teraz zawsze odczytywana wprost ze strony handlowej nabywcy, zgodnie z nazwą sprzedawcy i pozostałymi polami podsumowania
- Korzysta też ValidateVisualXmlConsistency: nazwa nabywcy z literami diakrytycznymi lub znakami escapowanymi jest teraz porównywana z widocznym tekstem strony taką, jaką zapisano
Version 2.770.151
Fixed
THPDFTabletrzyma teraz wiersze powiązaneRowSpanna jednej stronie: gdy grupa nie mieści się w pozostałym miejscu, cała grupa przenosi się na następną stronę razem z powtarzanym nagłówkiem- Komórka obejmująca kilka wierszy nie biegnie już poza dolny margines, podczas gdy wiersze, które obejmuje, są kontynuowane na następnej stronie
- Grupa row-span wyższa niż cała strona nadal jest dzielona wiersz po wierszu, z komórkami obejmującymi ciętymi na dolnym marginesie każdej strony
TotalHeightRenderedodzwierciedla przeniesioną grupę na ostatniej stronie
Version 2.770.150
Fixed
- Komórki
THPDFTablezColSpanlubRowSpanrównym zero lub mniej są teraz rysowane jako pojedyncze komórki, tak jak umieściła je już siatka tabeli, zamiast wypychać kolejne komórki do złych kolumn - Ujemne rozpiętości nie sprawiają już, że tabela czyta poza swoją siatką, a rozpiętości wykraczające poza ostatnią kolumnę lub wiersz są przycinane na krawędzi tabeli także przy pomiarze i rysowaniu
- Komórka, której pierwsze słowo jest szersze niż kolumna, nie zaczyna się już od pustego wiersza, więc jej wiersz nie jest wyższy, niż wymaga zawijany tekst
Version 2.770.149
Security
- Formularze XFA deklarujące encję wewnętrzną w swoim DOCTYPE nie potrafią już wysadzić pamięci przez wielokrotne odwołanie do dużej encji: tekst podstawiany za encje wewnętrzne ma limit 16 MB na dokument
- Pojedyncza wartość encji wewnętrznej dłuższa niż 1 MB jest odrzucana
- Dokumenty przekraczające którykolwiek z limitów nie ładują się, zgłaszając
EHPDFXFAError, zamiast rozrastać do gigabajtów tekstu; zwykłe użycie encji pozostaje bez zmian - Tekst zawierający wiele odwołań do encji lub znaków jest też dekodowany w czasie liniowym
Version 2.770.148
Fixed
RecalculateLoadedFormFieldsIncrementaltraktuje teraz każde przekazane pole jako zmienione w ten sam sposób, niezależnie od kolejności, w jakiej wymieniono nazwy- Pole obliczane zapisane wprost razem z jednym ze swoich pól źródłowych zachowuje zapisaną wartość zamiast być przeliczanym tylko wtedy, gdy wymieniono je po tym źródle
- Pola zależne od zmienionych pól są nadal przeliczane raz, w kolejności obliczeń
Version 2.770.147
Fixed
- Kody kreskowe GS1-128 z kodem startowym A (
THPDFBarcodetyp 20) kodują teraz swoje dane w zbiorze kodowym A, tak jak Code 128 A - Małe litery w takich kodach są teraz zapisywane z SHIFT-em do zbioru kodowego B zamiast kodu słownego zbioru B, który skanery czytają jako znak sterujący w zbiorze A
- Skanowane symbole GS1-128 A zawierające małe litery zwracają więc oryginalny tekst
Version 2.770.146
Fixed
- Kody dodatkowe EAN-2 i EAN-5 (
THPDFBarcodetypy 18 i 19) nie dopisują już wyliczonej cyfry doText, gdy włączony jestChecksum - Wielokrotne rysowanie takiego kodu daje teraz za każdym razem ten sam symbol zamiast rosnąć o jedną cyfrę na każde przerysowanie i zmieniać wzór kresek
- Symbole dodatkowe z definicji nie mają znaku kontrolnego, więc
Checksumjest dla nich ignorowany; wzór parzystości nadal wywodzi się z wartości jak wcześniej
Version 2.770.145
Fixed
- Eksport XFDF dekoduje teraz wartości pól formularza i tekst adnotacji jako łańcuchy tekstowe PDF (ISO 32000-1 7.9.2.2): wartości UTF-16BE, napisy szesnastkowe i znaki PDFDocEncoding, takie jak punkt, są zapisywane jako rzeczywisty tekst Unicode zamiast cyfr szesnastkowych lub śmieci ze strony kodowej
- Treść adnotacji, autor, temat, stan i tekst nakładki eksportowane do XFDF zachowują znaki spoza łaciny, na przykład chińskie lub cyrylickie komentarze
- Tekst sformatowany (
/RC,/RV) zaczynający się od deklaracji XML jest teraz osadzany bez niej, więc eksportowany XFDF pozostaje poprawnie zbudowanym XML-em - Import XFDF nie konwertuje już tekstu przez systemową stronę kodową ANSI: wartości, które potrafi przedstawić PDFDocEncoding, są przechowywane jako takie, a wszystko inne jako łańcuch tekstowy UTF-16BE — dotyczy to pól formularza i tekstu adnotacji
- Eksportowane pliki XFDF przenoszą teraz znaki spoza strony kodowej ANSI w obie strony przez
ImportLoadedFormFromXFDFiImportLoadedAnnotationsFromXFDFbez zamieniania ich w znaki zapytania
Version 2.770.144
Fixed
- Nazwy i inny tekst w podsumowaniu faktury są teraz dekodowane z UTF-8 XML-a faktury, więc sprzedawca taki jak "Müller GmbH" nie wraca już jako zniekształcone znaki wielobajtowe
- Escapowane znaki znaczników i odwołania znakowe są rozwiązywane, więc "A & B" w XML jest raportowane jako "A & B"
ValidateVisualXmlConsistencynie raportuje już nazwy sprzedawcy z literami diakrytycznymi lub ampersandem jako nieobecnej w widocznym tekście strony, gdy jest tam drukowana- Tekst podsumowania jest zwracany w systemowej stronie kodowej ANSI, bo pola rekordu podsumowania to łańcuchy ANSI; znaki, których ta strona kodowa nie potrafi przedstawić, stają się znakami zapytania
Version 2.770.143
Fixed
GetLoadedInvoiceSummaryraportuje teraz sumę netto na poziomie faktury (BT-106) z nagłówkowego sumowania kwot zamiast z kwoty pierwszej pozycji- Suma podatku, suma całkowita i kwota do zapłaty są podobnie odczytywane z sumowania w nagłówku, także dla faktur ZUGFeRD 1.0
- Data wystawienia (BT-2) jest teraz zwracana jako zwykła wartość daty, na przykład
20260305, bez zagnieżdżonego znacznikaDateTimeString HPDFFacturXXMLElementTextzwraca teraz dane znakowe całego elementu z usuniętymi tagami potomnymi i nie dopasowuje już elementów, których nazwa jedynie zaczyna się od żądanej nazwy
Version 2.770.142
Fixed
- Eksport XFDF zapisuje teraz znaki poza Basic Multilingual Plane, takie jak emoji albo rzadkie ideogramy CJK, jako poprawny czterobajtowy UTF-8 zamiast kodować każdą połówkę surogatu osobno, więc rygorystyczne czytniki XML akceptują plik
- Import XFDF dekoduje teraz odwołania znakowe powyżej U+FFFF, takie jak
😀, do pełnego znaku zamiast ucinać go do niezwiązanego znaku BMP - Odwołania znakowe, które nie nazywają skalarnej wartości Unicode, oraz niesparowane surogaty przy eksporcie stają się teraz U+FFFD zamiast psuć tekst
- Pliki XFDF zapisane przez wcześniejsze wersje nadal importują się poprawnie
Version 2.770.141
Fixed
- Wartości pól i tekst adnotacji zawierające ukośniki wsteczne, takie jak ścieżki Windows jak
C:\Data\2024\001, przechodzą teraz eksport i import XFDF bez zmian, zamiast mieć sekwencje cyfr zamieniane w znaki sterujące - Gdy ukośnik wsteczny zostałby przy odczycie potraktowany jako escape, eksport XFDF zapisuje go teraz jako ósemkowy escape
\134, jak w literale łańcuchowym PDF (ISO 19444-1 5.8.2) - Import XFDF dekoduje tylko ósemkowe escape, których format używa dla znaków sterujących i ukośników wstecznych; inne sekwencje ukośników z plików zewnętrznych pozostają literalne
- Tekst SVG czytany tym samym lekkim czytnikiem XML też nie gubi już sekwencji ukośników wstecznych
Version 2.770.140
Fixed
- Trwały cache wyrenderowanych stron włączany przez RenderCacheFolder działa teraz dla dokumentów otwieranych przez LoadFromFile, LoadFromStream i LoadFromRandomAccessSource; wcześniej warstwa dyskowa była pomijana przy zwykłych załadowaniach, więc żadna strona nie była nigdy zapisywana do folderu ani z niego czytana
- Dokumenty załadowane z pliku są identyfikowane po rozmiarze, czasie ostatniego zapisu oraz początkowych i końcowych bajtach, więc ponowne otwarcie niezmienionego pliku czyta jego strony z cache bez hashowania całego pliku
- Dokumenty załadowane ze strumienia lub źródła o dostępie swobodnym są identyfikowane po SHA-256 ich zawartości; ustaw RenderCacheFolder przed załadowaniem, żeby te dokumenty korzystały z warstwy dyskowej
- Dokument edytowany po załadowaniu nie czyta ani nie zapisuje już wpisów dyskowych przez resztę tego załadowania, więc edytowane strony nigdy nie są serwowane z ani zapisywane jako cache'owane strony oryginalnego pliku
- Wpisy dyskowe zależą teraz także od backendu renderowania stron i przepływu proofingu ICC, więc inny backend lub profil wyjściowy nie używa ponownie stron wyrenderowanych z innymi ustawieniami; zaszyfrowane dokumenty nigdy nie są zapisywane do dyskowego cache
Version 2.770.139
Fixed
- Import dużych plików XFDF nie zwalnia już z kwadratem rozmiaru pliku: plik z tysiącami pól lub adnotacji parsuje się teraz w millisekundach zamiast w sekundach lub minutach
- Wartości pól z wieloma końcami wierszy lub innymi odwołaniami znakowymi są dekodowane w czasie liniowym
- Szczytowe zużycie pamięci przy parsowaniu XFDF nie rośnie już jako liczba elementów razy rozmiar pliku
- Wejście SVG czytane tym samym lekkim czytnikiem XML korzysta z tego samego przyspieszenia
Version 2.770.138
Fixed
- Gdy
DecodeLoadedPageBarcodesponawia próbę na stronie obróconej o 90 lub 270 stopni, raster przekazywany dekoderowi jest teraz obracany zgodnie z ruchem wskazówek zegara, zgodnie z dokumentacjąAttemptRotationDegrees - Symbole znalezione tylko w tych ponowieniach są teraz raportowane na swojej rzeczywistej pozycji na stronie zamiast w pozycji odbitej punktowo
- Orientacja raportowana dla takich symboli zgadza się teraz z ich kierunkiem czytania na stronie, zamiast być odchylona o 180 stopni
- Własne dekodery kodów kreskowych opierające się na udokumentowanym obrocie zgodnym z zegarem dostają teraz poprawnie obrócone rastery
Version 2.770.137
Fixed
- Kopiowanie stron między dokumentami (CopyPageFromDocument, CopyPageByPhysicalIndex oraz metody importu i scalania stron) nie zamienia już łańcuchów tekstowych zawierających "<<" i ">>" albo "[" i "]" w słowniki lub tablice; komentarz adnotacji taki jak "Read <<this>> [now]" był kopiowany jako zepsuty słownik
- Napisy szesnastkowe, takie jak nazwy i identyfikatory adnotacji, są kopiowane w formie szesnastkowej zamiast być zapisywane jako literalne łańcuchy swoich cyfr szesnastkowych
Version 2.770.136
Fixed
- Adnotacje tworzone na nowych stronach (AddStampAnnotation, AddTextAnnotation i pozostałe metody adnotacji THPDFPage) zapisują teraz /Rect z lewym dolnym rogiem na początku, [llx lly urx ury]; kilka z nich zapisywało górną krawędź przed dolną, na przykład [395 712 575 652], co czytniki akceptują, ale walidatory PDF/A i niektóre narzędzia przetwarzania odrzucają lub błędnie czytają
Version 2.770.135
Changed
- THotPDF.RenderCacheFolder jest teraz łańcuchem (UnicodeString w Delphi 2009 i późniejszych, UnicodeString w C++Builder) zamiast AnsiString, więc folder cache, którego ścieżka zawiera znaki spoza systemowej strony kodowej, na przykład chińska nazwa użytkownika na angielskim Windows, jest używany taki, jaki podano, zamiast być zamieniany w znaki zapytania
- Kod przypisujący do właściwości AnsiString nadal się kompiluje; wartość jest konwertowana na Unicode przy przypisaniu
Version 2.770.134
Fixed
- SetOptionalContentGroupUsage z kategorią Zoom zapisuje teraz zakres powiększenia jako liczby /min i /max, jak definiuje je specyfikacja PDF; cała wartość była zapisywana jako łańcuch tekstowy pod /Min, który czytniki ignorują, więc zakres powiększenia warstwy nie miał efektu
- Wartość Zoom to minimalne powiększenie, opcjonalnie po maksimum, oddzielone spacją (na przykład '0.5 4'); wartość, która nie zaczyna się od liczby, zgłasza teraz wyjątek
Version 2.770.133
Fixed
- Tworzenie podzbiorów osadzonych czcionek CFF/OpenType nie gubi już podprogramów, których glify nadal używają; glify z więcej niż ośmioma hintami, hintami hstemhm lub maskami counter były skanowane błędnie, więc używany podprogram mógł zostać zastąpiony pustym, a glif wyrenderowany z brakującymi lub uszkodzonymi konturami
Version 2.770.132
Fixed
- RegisterNChannelColorSpace (przeciążenie z definicjami farb spot) zapisuje teraz nazwy farb zawierające spacje lub separatory, takie jak "PANTONE 185 C", poprawnie jako klucze słowników /Colorants, /Solidities i /DotGain; surowa nazwa łamała składnię pliku
- AddPDFX6ExternalOutputIntentSpotData zapisuje w ten sam sposób swoje klucze farb w słownikach solidności i danych widmowych
Version 2.770.131
Fixed
- Metadane XMP zapisywane z EnableXMPMetadata niosą teraz Title, Author, Subject i Keywords jako poprawne UTF-8, gdy zawierają tekst w systemowej stronie kodowej (na przykład znaki diakrytyczne lub chińskie przypisane jako AnsiString); surowe bajty strony kodowej robiły z pakietu niepoprawny XML, co odrzucają walidatory PDF/A i czytniki XMP
- Znaki sterujące, których nie dopuszcza XML 1.0, są pomijane w tych wartościach XMP
Version 2.770.130
Fixed
- Obrazy JBIG2 zapisywane z JBIG2Options.AccumulateGlobalsAcrossPages dekodują się znowu poprawnie, gdy późniejsza strona dodaje symbole, których wcześniejsze strony nie używały; takie strony dalej odwoływały się do strumienia globals pierwszej strony, który nowych symboli nie zawiera, więc czytniki pokazywały je zniekształcone albo wcale
- Zawsze gdy strona dodaje symbole, zapisywany jest strumień globals obejmujący cały słownik do tej strony i od tego momentu używany; strony nienadające symboli dalej współdzielą najnowszy
Version 2.770.129
Fixed
- Zapis załadowanego dokumentu, którego obiekty mają numer generacji różny od 0, pisze teraz spójne numery obiektów: pełny zapis ponowny (SaveLoadedDocument i metody pokrewne) zapisuje każdy obiekt, odwołanie i wpis tabeli odwołań z generacją 0, podczas gdy nagłówki obiektów i trailer trzymali dawniej starą generację, a odwołania i tabela odwołań używały 0
- Aktualizacje przyrostowe (SaveIncrementalUpdate i metody pokrewne) odwołują się teraz do istniejących obiektów z ich rzeczywistym numerem generacji; odwołania były zawsze zapisywane z generacją 0 i dlatego wskazywały obiekty, które nie istnieją, gdy oryginał używał innej generacji
Version 2.770.128
Fixed
- THPDFPage.TextOutHTML z MaxWidth nie traci już formatowania przy zawijaniu wiersza: gdy kilka runów o różnym stylu przenosiło się razem do następnego wiersza, były scalane w jeden run rysowany stylem obowiązującym w chwili zawinięcia, więc kolor, pogrubienie lub kursywa, czcionka, rozmiar, offset indeksu dolnego/górnego i link przepadały. Każdy run zachowuje teraz swoje formatowanie w nowym wierszu
Version 2.770.127
Fixed
- InvalidateRenderedPageCache usuwa teraz także wpisy glifów Type 3 i półtonów współdzielone przez renderowanie równoległe; po unieważnieniu całego dokumentu następny równoległy render mógł użyć ponownie glifów zcache'owanych dla poprzedniej treści
- PreflightLoadedPAdES nie opróżnia już współdzielonego cache renderowania jako efektu ubocznego sprawdzania poziomu PAdES podpisu, więc rendery po preflight zachowują swoje zcache'owane glify
Version 2.770.126
Fixed
- Analiza rewizji i modyfikacji podpisanych dokumentów raportuje teraz nazwy pól poprawnie, gdy nazwa zawiera nawiasy lub kończy się nawiasem, na przykład "Total (net)"; ostatni znak był ucinany
- Nazwy pól zapisane ósemkowymi escapami albo ukośnikiem wstecznym jako kontynuacją wiersza też są dekodowane
Version 2.770.125
Fixed
- SplitPDFToFiles nie otwiera już każdego pliku wyjściowego w domyślnym czytniku PDF w chwili zapisu; wewnętrzne dokumenty, które tworzy, mają teraz wyłączone AutoLaunch
Version 2.770.124
Fixed
- GetLoadedTrailerID zwraca teraz stały identyfikator pliku dokumentu z tablicy /ID w trailerze, jako tekst szesnastkowy; wcześniej szukał /ID w katalogu dokumentu, gdzie nigdy go nie ma, i dlatego nie raportował identyfikatora dla praktycznie każdego pliku
Version 2.770.123
Fixed
- SetLoadedOpenActionPage zapisuje teraz cel wskazujący żądaną stronę; odwołanie do strony było zapisywane jako 0 0 R, więc czytniki nie potrafiły otworzyć dokumentu na tej stronie
- Cel zachowuje bieżącą pozycję widoku (null dla left i top) zamiast wymuszać 0 0, co przerzucało do lewego dolnego rogu strony
Version 2.770.122
Fixed
- SetLoadedViewerPreferences zapisuje teraz HideToolbar, HideMenubar, FitWindow i DisplayDocTitle jako wartości logiczne; były zapisywane jako nazwy /true i /false, których czytniki nie traktują jako wartości logicznych, więc preferencje nie miały efektu
Version 2.770.121
Fixed
- CheckLoadedSignatureSeedValue wymusza teraz wartość seed /Reasons pola podpisu, gdy flagi /Ff pola oznaczają ją jako wymaganą (bit 4, wartość 8); wcześniej powód spoza listy przechodził
- Powody są porównywane dokładnie, tak jak łańcuchy tekstowe w PDF; "approved" nie zadowala już wartości seed, która wymienia "Approved"
Version 2.770.120
Fixed
- Pieczętowanie załadowanej strony więcej niż raz przez StampLoadedPageText lub StampLoadedPageShape daje teraz każdej pieczęci własne krycie, a każdej tekstowej pieczęci własną czcionkę standardową; druga i kolejne pieczęcie używały ponownie przezroczystości i czcionki pierwszej pieczęci na stronie
- Pieczęć o tym samym kryciu i czcionce co wcześniejsza nadal współdzieli swoje zasoby, więc powtarzane identyczne pieczęcie nie rozrastają zasobów strony
Version 2.770.119
Fixed
- ExtractLoadedPageStructureText podąża teraz za elementami struktury, których wpis /K to zwykły numer marked-content (na przykład /K 3 albo /K [0 1]) — najczęstsza forma w oznakowanych PDF-ach; takie elementy były ignorowane, więc metoda nie raportowała kolejności struktury dla wielu oznakowanych dokumentów albo zwracała ich tekst w kolejności rysowania
- Metoda nie czyta już nieprawidłowego wpisu katalogu, gdy dokument nie ma użytecznego obiektu root
Version 2.770.118
Fixed
- StampLoadedPageText, StampLoadedPageImage, StampLoadedPageShape, StitchLoadedPage i FlattenLoadedAnnotations nie łamią już stron dziedziczących zasoby z nadrzędnego węzła /Pages; dawały takiej stronie nowy, pusty słownik /Resources, co ukrywało odziedziczone czcionki i obrazy, więc oryginalny tekst i obrazki strony przestawały się wyświetlać
- Strona dostaje teraz własną kopię odziedziczonych zasobów, zanim zostanie dodana nowa czcionka, obraz lub formularz
Version 2.770.117
Fixed
- ComposeLoadedPagesNUp, ImposeLoadedPagesNUp, ImposeLoadedPagesBooklet i metody zszywania stron przenoszą teraz zasoby, które strona źródłowa dziedziczy z nadrzędnego węzła /Pages; takie strony były składane bez swoich czcionek i obrazów, więc ich tekst i obrazki były nieobecne lub błędne na składanym arkuszu
Version 2.770.116
Fixed
- SaveIncrementalUpdateAuthenticated może teraz zapisywać z powrotem do pliku, z którego rozpoczęto aktualizację przyrostową; przyjęta aktualizacja nie mogła zastąpić celu, bo dokument dalej trzymał otwarte źródło, a wywołanie zawsze kończyło się błędem zatwierdzenia w postaci odmowy dostępu
- Jak przy zapisie na miejscu przez SaveIncrementalUpdate, źródło jest zwalniane przed zastąpieniem, otwierane ponownie, jeśli zastąpienie się nie powiedzie, i BeginIncrementalUpdate trzeba wywołać jeszcze raz przed kolejnym zapisem przyrostowym
Version 2.770.115
Fixed
- RepairPDFUA2Structure nie potrzebuje już czasu wykładniczego na drzewach struktury, których elementy są wymieniane przez więcej niż jednego rodzica (albo tworzą cykl); naprawa dziedziczenia języka, naprawa kolejności nagłówków i skan marked-content stojący za naprawą tekstu alternatywnego przechodzą teraz każdy element struktury raz. Zmyślone drzewo z 24 elementów, z których każdy wymieniał następny dwa razy, zajmowało wcześniej około 40 sekund
Version 2.770.114
Fixed
- HPDFPaginateTable nie dodaje już stron, aż skończy się pamięć, gdy niewydzielalny wiersz nie mieści się pod powtarzanymi wierszami nagłówka; na stronie zawierającej tylko powtarzane nagłówki wiersz jest teraz dzielony (albo, gdy nagłówki zapełniają stronę, umieszczany z dopuszczonym przepełnieniem)
- HPDFLayoutFootnotes i HPDFLayoutEndnotes nie kręcą się już w nieskończoność, gdy separator nie zostawia miejsca na stronie albo minimalnej wysokości fragmentu przypisu nie da się spełnić na pustej stronie; przypis jest zamiast tego umieszczany na tej stronie
Version 2.770.113
Fixed
- HPDFBalanceColumns nie zawiesza się już, gdy podzielny element ma wiersz wyższy niż wysokość kolumny; wcześniej przechodził bez końca do następnej kolumny. Taki wiersz jest teraz umieszczany sam na górze pustej kolumny, przepełniając ją, a układ jest kontynuowany
Version 2.770.112
Fixed
- Dokumenty zaszyfrowane standardowym handlerem bezpieczeństwa w rewizji 4 (filtry kryptograficzne RC4 lub AES-128) otwierają się ponownie, gdy ich słownik szyfrowania pomija opcjonalny wpis najwyższego poziomu /Length; ładowanie kończyło się błędem "Unsupported legacy Standard security handler V=4 R=4 Length=40"
- Dla takich dokumentów akceptowana jest dowolna wartość /Length najwyższego poziomu, bo klucz pliku ma zawsze 128 bitów
Version 2.770.111
Fixed
- ProcessObjectStreamsForDecompression i ExtractRawObjectFromStream nie ufają już deklarowanej liczbie /N strumienia obiektów: liczba powyżej dziesięciu milionów jest odrzucana, a licznik jest ograniczony do par numerów obiektów, które nagłówek strumienia faktycznie może pomieścić, więc spreparowany plik nie potrafi już zmusić ich do alokowania ani przechodzenia milionów pustych wpisów
Version 2.770.110
Fixed
- Direct File API (DADirectEncryptFileAES256, DADirectDecryptFileAES256 i metody pokrewne) czyta teraz /Root, /Info, /Encrypt, /Prev i /XRefStm klasycznej sekcji odwołań krzyżowych wyłącznie z własnego słownika traileru tej sekcji; w plikach aktualizowanych przyrostowo mógł podchwycić /Prev z obiektów późniejszej rewizji (na przykład elementu konspektu) albo z jej traileru, kończąc porażką albo czytając złą rewizję
- Łańcuch /Prev zapętlający się z powrotem do już przeczytanej sekcji zatrzymuje się teraz zamiast czytać te same sekcje ponownie
Version 2.770.109
Security
- ApplyLoadedRedactions usuwa teraz tekst pod obszarem zaczernienia na stronach, których treść jest podzielona na kilka strumieni; gdy jeden strumień kończył się operatorem, a następny zaczynał operatorem (na przykład ET tuż przed BT), tekst po złączeniu był dopasowywany do złych operandów i pozostawał czytelny w zapisanym pliku, choć obszar był zamalowany
- Strumienie treści bez danych są pomijane konsekwentnie, więc pozostałe strumienie układają się z tekstem zlokalizowanym na stronie
Version 2.770.108
Changed
- GetLoadedOCGCount, GetLoadedOCGName, GetLoadedOCGVisibility i SetLoadedOCGVisibility używają teraz wszystkie tego samego indeksu: pozycji grupy treści opcjonalnych w tablicy /OCGs w /OCProperties dokumentu. Count i name używały pozycji w tablicy /ON konfiguracji domyślnej, visibility używało pozycji w /OFF, a setter używał /OCGs, więc jeden indeks mógł wskazywać trzy różne grupy; dokumenty bez /OCGs nadal uciekają do tablicy /ON
- GetLoadedOCGVisibility raportuje teraz grupę jako ukrytą, gdy jest wymieniona w /OFF, albo gdy nie ma jej w żadnej tablicy, a /BaseState konfiguracji domyślnej to /OFF
Fixed
- SetLoadedOCGVisibility nie wstawia już tego samego obiektu odwołania jednocześnie do /OCGs i /ON lub /OFF (był zwalniany dwa razy przy zwalnianiu dokumentu) i nie przecieka już usuwanych wpisów
Version 2.770.107
Fixed
- CopyLoadedPage nie sprawia już, że słowniki strony źródłowej i docelowej współdzielą te same obiekty wpisów /Contents i /Resources; współdzielone obiekty były zwalniane dwa razy przy zwalnianiu dokumentu lub zastępowaniu wpisu docelowego, co mogło uszkodzić pamięć
- Strona docelowa dostaje teraz własne odwołanie do treści i zasobów źródła (wartości bezpośrednie są kopiowane), a jej wpis cache wyrenderowanych stron jest odświeżany
Version 2.770.106
Fixed
- Ładowanie uszkodzonego PDF nie przecieka już pamięcią dla każdego obiektu strumienia, którego nie da się odczytać, na przykład strumienia ani z wpisem /Length, ani ze słowem kluczowym endstream, albo takiego, którego słownika lub danych nie da się załadować; wielokrotne otwieranie takich plików rozrastało proces bez granic
Version 2.770.105
Fixed
- Liczby zapisane z pustą częścią ułamkową, takie jak "21." (dozwolone przez specyfikację PDF), nie powodują już niepowodzenia ładowania; pośredni strumień z /Length zapisanym w ten sposób gubił dawniej cały strumień, zostawiając pustą stronę
- Liczby ze znakiem plus na początku, z pustą częścią całkowitą, taką jak ".5", albo z częścią całkowitą poza zakresem 32-bit też są odczytywane poprawnie
Version 2.770.104
Fixed
- Demo PDFmerge: przy włączonych zakładkach każda zakładka per źródło otwiera teraz pierwszą scaloną stronę tego źródła; wcześniej każda zakładka wskazywała pierwszą stronę scalonego pliku
- Demo PDFmerge: domyślne przykładowe źródła i nazwa wyjścia, a także względne nazwy wpisane w formularz, rozwiązywane są względem folderu demo; dodanie plików lub wybór wyjścia w oknie dialogowym nie zmienia już katalogu bieżącego i nie psuje względnych wpisów
Version 2.770.103
Fixed
- Demo TextOut: wygenerowany
TextOut.pdfnaprawdę używa teraz skompresowanych strumieni treści, jak obiecują komentarze demo; ustawiaCompressionnacmFlateDecodezamiast polegać na argumencieBeginDoc, który nie steruje kompresją
Version 2.770.102
Fixed
- Obrazy rysowane z
AlphaBlendw rozszerzonym metapliku zachowują teraz zapisane krycie, gdy metaplik jest konwertowany przezTHPDFEmfPatcher.RenderEmfDirect; były mieszane z zerowym kryciem i znikały - Zapisany format alfa jest też honorowany, więc obrazy bez kanału alfa są mieszane z ich stałym kryciem zamiast kończyć się błędem
- Rekordy bitmap, których nagłówek lub dane pikseli wskazują poza rekord, albo których dane pikseli są krótsze niż zadeklarowana bitmapa, są teraz pomijane zamiast czytać poza rekord
- Bitmapy większe niż 32768 pikseli na bok lub 64 megapiksele łącznie są pomijane zamiast być alokowane w całości
Version 2.770.101
Fixed
- StitchLoadedPage, StitchLoadedPageSideBySide i StitchLoadedPageSideBySideEx rysują teraz stronę źródłową przez Form XObject niosący treść strony, pole strony i zasoby; sam słownik strony był rejestrowany jako XObject, którego czytniki nie potrafią namalować, więc zszyta strona się nie pokazywała
- Szywanie więcej niż jednej strony na ten sam cel zachowuje każdą zszytą stronę: każda dostaje własną nazwę XObject zamiast wszystkich współdzielących jedną nazwę, która zastępowała poprzednią stronę
Version 2.770.100
Fixed
- Form XObjects są teraz przycinane do swojego
/BBoxprzy renderowaniu, jak wymaga ISO 32000-1; treść, którą formularz rysuje poza swoją ramką ograniczającą, nie pojawia się już na stronie - Form XObjects zagnieżdżone głębiej niż cztery poziomy są teraz rysowane; były porzucane, jakby rekursowały. Zagnieżdżanie jest dozwolone do 32 poziomów
- Form XObject rysujący samego siebie, wprost albo przez inne formularze, jest wykrywany, a powtórzone wywołanie jest pomijane, z wpisem rekursji w diagnostyce renderowania
Version 2.770.99
Fixed
- Demo PDFOptimize: rząd małych prostokątów na każdej stronie tekstowej jest teraz obrysowywany, więc paski są widoczne, a strumień treści kończy każdą ścieżkę operatorem malowania, jak wymaga ISO 32000-1 8.5.2; raportowane rozmiary tekstowych PDF zmieniają się przez to nieznacznie
Version 2.770.98
Fixed
- Literały łańcuchowe zawierające sparowane nawiasy bez ukośników wstecznych, takie jak /Title (Report (draft) v2), są teraz czytane w całości przy ładowaniu dokumentu; łańcuch kończył się dawniej na pierwszym nawiasie zamykającym, a reszta słownika była błędnie czytana
- Escapowane nawiasy działają dalej jak wcześniej
Version 2.770.97
Fixed
- Ładowanie nie bierze już obiektu słownika za strumień, gdy jedna z jego wartości łańcuchowych lub nazw zawiera litery "stream" na końcu wiersza, na przykład słownik Info z /Title (Livestream); obiekt był czytany jako strumień i jego wpisy przepadały
- Słowo kluczowe stream jest teraz rozpoznawane tylko jako własny token po zamykającym >> słownika i na końcu wiersza, jak określa specyfikacja PDF dla obiektów strumieniowych
Version 2.770.96
Fixed
- Demo Stamp: pliki PNG i BMP oferowane przez wybierak obrazów mogą teraz służyć jako pieczęć obrazowa; wcześniej działał tylko JPEG, a inne pliki kończyły się błędem nieprawidłowej bitmapy
- Demo Stamp: adnotacja pieczątki gumowej trafia teraz w prawy górny obszar każdej strony, jak zamierzono, pod pieczęcią obrazową w górnym narożniku, zamiast w prawy dolny róg, gdzie nakładała się na pieczęć obrazową w dolnym prawym rogu
- Demo Stamp: domyślne ścieżki wejścia, wyjścia i obrazu rozwiązywane są względem folderu demo, a wybranie pliku w oknie dialogowym nie zmienia już katalogu bieżącego, więc względne nazwy dalej wskazują te same pliki
Version 2.770.95
Fixed
- Żądania znacznika czasu budowane z OID polityki (HPDFRFC3161BuildRequest oraz podpisywanie z polityką autorytetu znacznika czasu) kodują teraz żądaną politykę jako zwykły identyfikator obiektu, jaki określa RFC 3161
- Polityka była dawniej owijana tagiem kontekstowym, który RFC 3161 rezerwuje dla rozszerzeń żądania, więc rygorystyczny autorytet znacznika czasu odrzucał żądanie albo ignorował politykę
- Żądania bez OID polityki pozostają bez zmian
Version 2.770.94
Fixed
- Demo ViewerPref: pozostawienie odznaczonego Initial Zoom naprawdę oznacza teraz "None (Default)"; wygenerowany PDF nie otwiera się już dopasowany do wysokości, co było domyślnym ustawieniem komponentu, którego demo nie resetowało
Version 2.770.93
Fixed
- Demo FileAttach: adnotacje załączników na poziomie strony są teraz tworzone, gdy demo działa z folderu, którego nazwa ma znaki spoza systemowej strony kodowej ANSI; załączany plik jest przekazywany przez swoją zwykłą nazwę pliku zamiast ścieżki bezwzględnej
Version 2.770.92
Fixed
- Demo HTMLText: ścieżka wyjściowa ze znakami spoza systemowej strony kodowej ANSI (na przykład grecka lub cyrylicka nazwa folderu) jest teraz zapisywana poprawnie zamiast kończyć się błędem
- Demo HTMLText: wygenerowany PDF nie jest już automatycznie otwierany w zewnętrznym czytniku, zgodnie z pozostałymi demo konsolowymi
Version 2.770.91
Fixed
- Import ścieżek SVG i XPS nie zgłasza już
EOverflowdla liczb z setkami cyfr albo dla długich liczb połączonych z dużym wykładnikiem; takie wartości są odrzucane jak każda inna liczba spoza zakresu - Dotyczy obrazów SVG wstawianych przez API importu SVG i geometrii ścieżek XPS na kompilatorach, które nie maskują wyjątków zmiennoprzecinkowych
- Zwykłe liczby, w tym długie mantysy z ujemnymi wykładnikami, są czytane jak wcześniej
Version 2.770.90
Fixed
- Demo EmfDraw: nieudana konwersja (na przykład brakujący wejściowy metaplik) kończy się teraz kodem wyjścia 1 zamiast 0, więc skrypty i kroki kompilacji uruchamiające demo wykryją porażkę
Version 2.770.89
Fixed
- Demo CJKAnnotations: gdy Arial Unicode MS nie jest zainstalowany, demo naprawdę przechodzi teraz na Microsoft YaHei; sprawdza zainstalowane czcionki zamiast czekać na wyjątek, którego brakująca czcionka nigdy nie zgłaszała, więc tekst CJK nie trafia już do podstawionej czcionki bez pokrycia CJK
Version 2.770.88
Fixed
- Strumienie treści zagnieżdżające więcej niż 32 operatory
qnie gubią już otaczającego stanu grafiki: głębsze zapisy były ignorowane, podczas gdy pasujące do nichQnadal przywracały, więc tekst i grafika po zagnieżdżonym bloku używały stanu sprzed zewnętrznegoq - Dotyczy ekstrakcji tekstu przez interfejs urządzenia treści i eksportu SVG takich stron
- Zapisane stany rosną teraz wraz z głębokością zagnieżdżenia; bardzo głębokie zagnieżdżenie nadal jest poprawnie parowane
Version 2.770.87
Fixed
- Demo ImageDemo: zakładka "Image zoom" przechodzi teraz do nagłówka IMAGE ZOOM zamiast do punktu w pobliżu dołu pierwszej strony
Version 2.770.86
Security
- Otwieranie PDF zaszyfrowanego na certyfikat adresata z kluczem krzywej eliptycznej (uzgodnienie klucza ECDH) czyści teraz surowy wspólny sekret i pośrednie bufory derywacji klucza, gdy tylko przestają być potrzebne, także przy ponowieniu z odwróconą kolejnością bajtów i na każdej ścieżce wczesnego niepowodzenia
- Podpisywanie certyfikatem z magazynu certyfikatów Windows nie zostawia już załadowanych bibliotek crypt32.dll i advapi32.dll, gdy nie można znaleźć wymaganej funkcji CryptoAPI
Version 2.770.85
Security
- Budowanie konturu glifu Type 1, którego charstring używa sbw ze zbyt małą liczbą operandów, nie czyta już przed stos operandów; zniekształcony operator jest ignorowany
- Charstring Type 1 kończący się bajtem ucieczki operatora dwubajtowego nie czyta już poza końcem charstringa
Version 2.770.84
Fixed
- Bajtowa długość kodów znaków w zakresie codespace CMap pochodzi teraz z długości jego napisów szesnastkowych, jak określa ISO 32000-1 9.7.6.2; zakres taki jak <0000> <00FF> był traktowany jako jednobajtowy, bo jego górna granica mieści się w bajcie, co rozbijało kody dwubajtowe przy renderowaniu i ekstrakcji tekstu
- Zakresy codespace wczytywane z wbudowanych CMap również niosą swoją długość kodu
Version 2.770.83
Fixed
- Osadzanie podzbioru zainstalowanej czcionki TrueType zachowuje każdy składnik glifów złożonych (liter z akcentami i podobnych), którego składniki niosą skalę albo transformację 2x2; składnik po takiej transformacji był źle odczytywany, więc mógł zniknąć z podzbioru albo mieć odwołanie do glifu zapisane po bajtach transformacji
- Glify złożone, których składniki odwołują się do siebie cyklicznie, odwołują się poza liczbę glifów czcionki albo wskazują pusty glif, nie powodują już awarii ani zawieszenia tworzenia podzbioru czcionki
- W podzbiorze glif złożony zagnieżdżony w innym glifie złożonym ma odwołania do składników przenumerowane raz zamiast dwa razy
Version 2.770.82
Fixed
- Liczby rzeczywiste w słownikach czcionek CFF (FontMatrix, FontBBox, wartości blue i podobne) są teraz czytane poprawnie, gdy bajt przechowuje znak, kropkę dziesiętną lub wykładnik obok cyfry; cyfra w tym samym bajcie była wcześniej gubiona, więc -2.25 stawało się -0.5
- Te wartości są parsowane z kropką jako separatorem dziesiętnym niezależnie od ustawień regionalnych Windows; na systemach używających przecinka dziesiętnego kończyło się to błędem konwersji
Version 2.770.81
Fixed
- Ekstrakcja tekstu i wyszukiwania w ToUnicode nie zwracają już nieaktualnego napisu wieloznakowego dla kodów z wpisu tablicowego beginbfrange, który następuje po innym wpisie tablicowym o wieloznakowych celach; takie kody mapują się teraz na swój własny pojedynczy znak
Version 2.770.80
Fixed
- Tworzenie egzemplarza czcionki zmiennej TrueType przy wybranych wartościach osi (na przykład przez SetVariableFontAxis) nie zniekształca już glifów, których dane gvar mają krotkę rzadką po innej krotce; krotka rzadka startowała z delt poprzedniej krotki i przesuwała te punkty podwójnie
- Punkty pominięte przez krotkę rzadką są teraz interpolowane wyłącznie z punktów, które ta krotka wylicza, zgodnie z wymogami reguł gvar OpenType
Version 2.770.79
Security
- AddTiffFromFile odrzuca teraz stronę TIFF, której szerokość razy wysokość wymaga rastra ponad 2 GB, zgłaszając wyjątek zamiast alokować bufor, którego rozmiar się przepełnił, i pozwalać dekoderowi pisać za jego koniec (przepełnienie sterty)
- Strona TIFF o zerowej szerokości lub wysokości jest odrzucana tak samo
- Wysokie strony TIFF (1200 wierszy lub więcej) zgłaszają teraz niepowodzenie alokacji zamiast dekodować do bufora nil
Version 2.770.78
Fixed
- Glify czcionek Type 3 podążają teraz za skalowaniem poziomym (
Tz): bieg rysowany przy 200% skali poziomej jest rysowany dwa razy szerzej zamiast w swojej naturalnej szerokości - Glify czcionek Type 3 podążają teraz za podniesieniem tekstu (
Ts), więc indeksy górne i dolne złożone czcionkami Type 3 są podnoszone lub opuszczane zamiast pozostawać na linii bazowej - Przesunięcia glifów były już skalowane; kształty glifów są teraz z nimi zgodne
Version 2.770.77
Fixed
- Żądania znacznika czasu RFC 3161 budowane przez HPDFRFC3161BuildRequest kodują zawsze nonce jako minimalny DER INTEGER; gdy losowy nonce zaczynał się od bajtu zerowego, żądanie niosło redundantne zero wiodące, które rygorystyczne serwery znaczników czasu odrzucają jako zniekształcone
- Zwracany nonce zachowuje żądaną długość, więc wywołujące porównujące go z odpowiedzią znacznika czasu nie są dotknięte
- Zaszyfrowane pliki PDF 2.0 (AES-256-GCM), których strumienie obiektów odszyfrowują się do pustej zawartości, nie zawodzą już przy ładowaniu z błędem uwierzytelnienia GCM; pusty strumień obiektów z poprawnym znacznikiem uwierzytelnienia jest teraz akceptowany, a zmanipulowany znacznik nadal odrzucany
Version 2.770.76
Fixed
- Demo Hyperlink: podpisy odnośników i adresy URL ze znakami poza systemową stroną kodową ANSI (na przykład greckimi, cyrylicą lub literami z akcentami) nie są już zamieniane w znaki zapytania; podpisy są rysowane jako tekst Unicode z nałożonym na nie odnośnikiem URI
- Demo Hyperlink: znaki spoza ASCII w adresie URL są kodowane procentowo jako UTF-8 przed zapisaniem w akcji odnośnika, więc przeglądarki otwierają właściwy adres
Version 2.770.75
Fixed
- Kolory CalRGB ze składnikami poza zakresem 0..1 nie zgłaszają już wyjątku zmiennoprzecinkowego (
EInvalidOp) podczas renderowania; składniki są przycinane do poprawnego zakresu przed zastosowaniem gammy - Takie kolory renderują się teraz jako najbliższy kolor w zakresie zamiast niezdefiniowanego na kompilatorach, które maskują wyjątki zmiennoprzecinkowe
Version 2.770.74
Fixed
- Bezpośrednie przepisywanie przez Direct File API (na przykład DADirectEncryptFileAES256 i DADirectDecryptFileAES256) uruchamiane równocześnie na kilku wątkach nie uszkadza już nawzajem swoich wyników; kopiowanie zakresów bajtów, które współdzielą, używało jednego bufora na cały proces
Version 2.770.73
Fixed
- Współdzielony cache odwołań w THPDFSignatureValidationBatch znajduje teraz odpowiedzi OCSP dla certyfikatów podpisujących, których numer seryjny ma ustawiony najstarszy bit; takie odpowiedzi były przechowywane pod numerem seryjnym bez wiodącego bajta zerowego i wyszukiwane z nim, więc każdy późniejszy podpis nie trafiał w cache
- Odpowiedzi OCSP podpisane przez delegowanego respondera albo identyfikujące respondera kluczem są teraz przechowywane pod wystawcą certyfikatu i mogą być ponownie używane przez późniejsze podpisy w paczce; wcześniej były zapisywane pod nazwą respondera albo wcale
- Podpisy polegające na dowodach zcache'owanych przez wcześniejszy podpis w tej samej paczce dochodzą teraz w tych przypadkach do werdyktu zaufania zamiast nieznanego statusu odwołania
Version 2.770.72
Fixed
- Wyszukiwanie osadzonego pliku po nazwie (GetLoadedEmbeddedFileSpec, ExtractEmbeddedFileBytes, SaveLoadedEmbeddedFileToDisk i metody pokrewne) nie przepełnia już stosu, gdy drzewo nazw /EmbeddedFiles dokumentu ma węzły, które wymieniają nawzajem siebie lub samych siebie jako /Kids
- Każdy węzeł drzewa nazw jest przeszukiwany raz, więc nazwy osiągalne przez współdzielony węzeł wciąż są znajdowane
Version 2.770.71
Fixed
- Demo PageSizes: strony formatów chińskich 8K i 16K drukują teraz pełny opis na każdym systemie; chińskie nazwy formatów podano w pinyin, bo opisy są rysowane czcionką Arial, która nie ma glifów CJK, a tekst spoza ASCII zamieniał się w znaki zapytania na stronach kodowych bez CJK
Version 2.770.70
Fixed
- Cieniowanie osiowe (Type 2) pokrywa teraz cały malowany obszar, gdy oś cieniowania leży daleko od niego, na przykład gradient zdefiniowany poza krawędzią strony z
/Extend [true true]; takie obszary pozostawały niemalowane - Dotyczy operatora
shi wzorów cieniowania używanych jako kolor wypełnienia lub obrysu
Version 2.770.69
Fixed
- Demo Navigation: nazwane cele
chapter-1ichapter-2otwierają teraz swoje strony u góry, 60 punktów poniżej górnej krawędzi, zamiast przewijać do dołu strony; współrzędne celu są w domyślnej przestrzeni użytkownika PDF z początkiem w lewym dolnym rogu
Version 2.770.68
Fixed
- Ekstrakcja tekstu z PDF z osadzoną czcionką TrueType nie zastyga już na minuty, gdy cmap czcionki jest ucięty, ale deklaruje tysiące segmentów lub grup; długość tabeli jest teraz sprawdzana przed odczytem segmentów i grup
- Budowanie mapy glif–Unicode dla osadzonej czcionki TrueType przechodzi przez każdą podtabelę cmap raz, segment po segmencie lub grupa po grupie, zamiast odpytywać po kolei wszystkie 65 535 punktów kodowych BMP, co także przyspiesza ekstrakcję z dużymi czcionkami CJK
- Wyszukiwania glifów przez uciętą podtabelę cmap formatu 4 albo formatu 12 zatrzymują się na końcu danych czcionki zamiast skanować segmenty, których tam nie ma
Version 2.770.67
Fixed
- Funkcje wykładnicze (Type 2) i stitching (Type 3) respektują teraz jednowejściowy
/Domain, taki jak[0 0.5]; był ignorowany i zastępowany przez[0 1], więc wejścia były przycinane do złego przedziału - Funkcja wykładnicza bez
/C1używa teraz domyślnej wartości[1.0]; kolory Separation i cieniowania zdefiniowane w ten sposób renderowały się na czarno - Funkcje wykładnicze obliczają teraz
C0 + x^N (C1 - C0)na samym wejściu zamiast przeskalowywać je do 0..1, zgodnie z ISO 32000-1 dla domen innych niż[0 1] - Wyjścia funkcji wykładniczych są przycinane do
/Rangetylko wtedy, gdy jest obecny; kolory spot z alternatywną przestrzenią Lab (L* do 100) były przycinane do 0..1 i renderowały się prawie czarno - Funkcja wykładnicza, której wejście leży poza wartościami, dla których jest zdefiniowana, jest odrzucana zamiast zgłaszać wyjątek zmiennoprzecinkowy
Version 2.770.66
Fixed
- Pliki PKCS#12 / PFX eksportowane bez hasła przez narzędzia, które derywują klucze z hasła o zerowej długości, otwierają się teraz z pustym hasłem w HPDFParsePFX, HPDFParsePFXByLocalKeyID, HPDFEnumeratePFXIdentities i metodach podpisywania PFX; wcześniej zawodziły z błędem uwierzytelnienia
- Przy pustym haśle najpierw próbowane jest standardowe kodowanie z RFC 7292, a w drugiej kolejności postać o zerowej długości — zarówno przy sprawdzaniu integralności, jak i przy odszyfrowywaniu klucza — więc pliki, które już się otwierały, otwierają się tak samo
Version 2.770.65
Fixed
- Nagłówek strony w demo C++Builder DBTable ma teraz treść "Page 1" zamiast "Page1"
- Błąd podczas zapisywania tabeli w demo C++Builder DBTable zamyka teraz dokument zbudowany w połowie, więc następne kliknięcie zaczyna od czystego stanu
Version 2.770.64
Fixed
- Konsolowe dema C++Builder AnnotationInteraction, FormFields, CanvasDraw, EmfDraw, FormXObject, GraphicDraw, ImageDemo, ImageMask, LineGraphicsState i RtLTextOut przełączają się przy starcie bez argumentów do folderu pliku wykonywalnego, podobnie jak dema Delphi, więc ich pliki wejściowe są znajdowane, a PDF-y zapisywane tam, nawet gdy uruchamia się je z innego katalogu
- Dema C++Builder Graphic nie wysyłają już komunikatu zamknięcia do każdego okna, którego tytuł zawiera nazwę ich wyjściowego PDF, co mogło zamykać niepowiązane okna
- Demo C++Builder ImageMask działa teraz jak wersja Delphi: sprawdza, czy Mask.bmp i Image.jpg istnieją, kompresuje wynik, nie otwiera przeglądarki i zgłasza błędy zamiast kończyć się nieobsłużonym wyjątkiem
- Demo C++Builder EmfDraw zgłasza błąd, na przykład brakujący Sample.emf, i zwraca niezerowy kod wyjścia zamiast kończyć się nieobsłużonym wyjątkiem
- Demo C++Builder AddDelPages rozwiązuje względne nazwy plików wejściowych i wyjściowych względem folderu pliku wykonywalnego, jak wersja Delphi
Version 2.770.63
Fixed
- Demo C++Builder FileAttach zapisuje FileAttach.pdf obok pliku wykonywalnego — pod nazwą, której używają wersja Delphi i readme — zamiast Output.pdf w katalogu roboczym, i trzyma załącznik FileAttach.txt w tym samym folderze
Version 2.770.62
Fixed
- Direct File API (DADirectEncryptFileAES256, DADirectDecryptFileAES256 i pozostałe metody bezpośredniego przepisywania) czyta teraz poprawnie offsety strumieni odwołań krzyżowych powyżej 2 GiB; takie offsety były ucinane i stawały się ujemne, więc obiektów w górnej części dużego pliku nie dało się znaleźć
- Offsety /Prev i /XRefStm powyżej 2 GiB w trailerze lub strumieniu odwołań krzyżowych są podążane zamiast czytane jako 0, więc starsze rewizje i hybrydowe sekcje odwołań krzyżowych dużych plików nie są już pomijane
- To samo dotyczy ładowania dużego pliku i badania jego rewizji
- Nowe funkcje pomocnicze HPDFDirectReadUIntBE64 i HPDFFindNameInt64 zwracają pełną wartość 64-bitową
Version 2.770.61
Fixed
- Strumień odwołań krzyżowych, którego szerokości pól /W są ujemne lub większe niż 8 bajtów, jest teraz odrzucany zamiast dekodowany; ładowanie wraca do skanowania pliku w poszukiwaniu obiektów
- Metody Direct File API (na przykład DADirectEncryptFileAES256) nie czytają już pamięci poza zdekodowaną tabelą i nie mogą już się wysypać na takim pliku; zamiast tego go odrzucają
Version 2.770.60
Fixed
- Ekstrakcja tekstu, wyszukiwanie i pozycje glifów czytają teraz poprawnie operator tekstu
": jego pierwszy operand to odstęp międzywyrazowy, a drugi — odstęp między znakami; wcześniej były zamienione - Linie zapisane operatorem
"z niezerowym odstępem międzywyrazowym lub między znakami nie zgłaszają już przesuniętych pozycji glifów, co mogło sklejać lub rozbijać słowa w wyekstrahowanym tekście strony i przesuwać trafienia wyszukiwania - Renderowanie strony nie było dotknięte
Version 2.770.59
Fixed
- Demo Table: wiersze objęte rowspanem "Group A" pokazują teraz swoją pozycję i notatkę w kolumnach Item i Notes; wcześniej tekst notatki był przesunięty o kolumnę i gubiony
- Demo Table: wygenerowany PDF nie jest już automatycznie otwierany w zewnętrznym czytniku, zgodnie z pozostałymi demo konsolowymi, a ścieżki wyjściowe ze znakami poza systemową stroną kodową ANSI pozostają nienaruszone
Version 2.770.58
Fixed
- Dekompresja danych Flate do strumienia nie przecieka już stanu dekodera (około 40 KB za każdym razem), gdy strumień źródłowy lub docelowy zgłosi wyjątek w połowie pracy, na przykład gdy zapis się nie powiedzie albo strumień osiągnie limit rozmiaru
- Kompresja napisu nie przecieka już swojego bufora tymczasowego, gdy kompresja zgłosi wyjątek
- Udane kompresja i dekompresja zachowują się dokładnie jak wcześniej
Version 2.770.57
Fixed
- Certyfikaty, których rozszerzenie ograniczeń nazw nie jest oznaczone jako krytyczne, nie są już odrzucane jako nieczytelne podczas walidacji certyfikatów podpisujących; certyfikat CA tego rodzaju powodował wcześniej, że budowanie każdego łańcucha przez niego kończyło się niepowodzeniem
- Ograniczenia takiego certyfikatu są teraz stosowane do reszty łańcucha jak krytyczne, więc nazwy podpisujących poza dozwolonymi poddrzewami nadal są zgłaszane jako naruszenie ograniczeń nazw
Version 2.770.56
Fixed
- Funkcje kalkulatora PostScript (Type 4) z głęboko zagnieżdżonymi procedurami
iflubifelsenie przepełniają już stosu podczas renderowania; taka funkcja jest traktowana jako bezużyteczna, a kolor wraca do wartości domyślnej jak przy każdej innej nieprawidłowej funkcji - Zagnieżdżanie jest ograniczone do 64 poziomów, znacznie ponad to, czego używają prawdziwe programy kalkulatora; zwykłe transformaty tint Type 4 i cieniowania renderują się jak wcześniej
- Obliczanie funkcji kalkulatora potrzebuje mniej stosu na poziom zagnieżdżenia
Version 2.770.55
Fixed
- Demo E-Invoice: wyekstrahowany XML Factur-X / ZUGFeRD jest dekodowany jako UTF-8, więc litery z akcentami i inne znaki spoza ASCII w nazwach i adresach nie pojawiają się już popsute w panelu XML
- Demo E-Invoice: w Delphi XE2 i nowszych zbiorczy werdykt e-faktury decyduje teraz o kroku reguł biznesowych, więc niepowodzenie pliku reguł albo silnika kończy się niepowodzeniem walidacji zamiast przejść cicho
- Demo E-Invoice: niezgodność tekstu widocznego z XML z heurystycznego sprawdzenia spójności jest zgłaszana jako ostrzeżenie i sama już nie zawala całej walidacji
Version 2.770.54
Security
- Weryfikacja podpisów CMS (HPDFVerifyCMSSignature, HPDFVerifyCMSSignatureEx i podpisów załadowanych PDF) zgłasza teraz zniekształcony podpis, gdy podpisane atrybuty nie mają atrybutu content-type albo nazywają typ zawartości inny niż podpisywana zawartość, jak wymaga RFC 5652; takie podpisy były wcześniej weryfikowane jako poprawne, co pozwalało podawać atrybuty podpisane dla jednego typu zawartości jako podpisujące inny
- Podpisy z powtórzonym atrybutem content-type są odrzucane jak wcześniej
- Kontrpodpisy, które z definicji nie niosą atrybutu content-type, i tokeny znaczników czasu RFC 3161 weryfikują się dalej jak wcześniej
Version 2.770.53
Fixed
- Drugie kliknięcie przycisku demo C++Builder Annotations nie zapisuje już ponownie poprzedniego dokumentu przed rozpoczęciem nowego
- Błąd podczas budowania PDF w demo C++Builder Annotations zamyka teraz dokument zbudowany w połowie, więc następne kliknięcie zaczyna od czystego stanu
Version 2.770.52
Fixed
- Kilka dokumentów albo egzemplarzy
THotPDFw jednym procesie, które używają tego samego folderu dyskowego cache renderowania, współdzieli teraz jeden indeks cache; wcześniej każdy egzemplarz trzymał własny indeks i przy każdym zapisie nadpisywał cudze, gubiąc kolejność ostatniego użycia - Limity liczby dokumentów i łącznego rozmiaru dyskowego cache renderowania są egzekwowane na wszystkich egzemplarzach współdzielących folder, więc folder nie rośnie już ponad swój budżet, gdy korzysta z niego równocześnie kilka przeglądarek albo wątków renderujących
- Ten sam folder jest rozpoznawany niezależnie od wielkości liter lub końcowego separatora ścieżki
Version 2.770.51
Fixed
- Próbkowanie bitmapy z jądrem bicubic albo Lanczos3 działa teraz dla każdego źródłowego formatu pikseli; źródło 32-bitowe, 8-bitowe lub 1-bitowe było wcześniej czytane tak, jakby trzymało piksele 3-bajtowe, co mieszało kanały kolorów albo czytało za koniec wierszy
- Takie źródła są najpierw konwertowane do 24 bitów, więc przesamplingowany obraz ma te same kolory co źródło; wynik pozostaje bitmapą 24-bitową jak wcześniej
- Źródła 24-bitowe i jądro halftone pozostają bez zmian
Version 2.770.50
Fixed
- Demo PreflightCLI:
-dna pojedynczym PDF zapisuje teraz indeks pulpitu nawet wtedy, gdy plik nie przechodzi preflightu - Demo PreflightCLI: pliki, które zgłoszą błąd podczas preflightu, są wypisywane jako nieudane w indeksie pulpitu, a kod wyjścia odzwierciedla każdy nieudany plik
- Demo PreflightCLI: z
-rraporty dla PDF-ów o tej samej nazwie w różnych podkatalogach trafiają do pasujących podfolderów zamiast nadpisywać się nawzajem — zarówno z-o, jak i w pulpicie - Demo PreflightCLI:
-f jsoni-f csvprodukują teraz ten sam schemat z opcjami--profile/--preset/--aggregatelub bez nich, łącznie z kolumną spec w CSV - Demo PreflightReport: raporty CSV generowane z profilem wypełniają teraz kolumnę spec jak raporty bez profilu
Version 2.770.49
Fixed
- Demo C++Builder LargeFile generuje teraz zestaw wejściowy benchmarku opisany w swoim readme, jak wersja Delphi: LargeFile-Text.pdf, LargeFile-Image.pdf, LargeFile-Mixed.pdf oraz zaszyfrowany AES-256 LargeFile-Encrypted.pdf w folderze BenchmarkInputs obok pliku wykonywalnego; wcześniej pisało tylko pojedynczy, 200-stronicowy LargeFile.pdf
- Demo C++Builder LargeFile przyjmuje opcje
--output-dir,--scale(small, default, large, huge) i--pagesoraz wypisuje polecenie HugeFileBenchmark dla wygenerowanego folderu
Version 2.770.48
Fixed
- Demo C++Builder Outlines zapisuje teraz Outlines.pdf obok pliku wykonywalnego — plik wymieniony w readme — zamiast Output.pdf w katalogu roboczym, i zgłasza, gdzie został zapisany, zamiast otwierać przeglądarkę
- Demo C++Builder Outlines buduje teraz ten sam 10-stronicowy dokument z etykietami stron Arial co wersja Delphi; etykiety przy dole strony na y = 830 były ucinane na krawędzi strony, a zakładki "Bottom" ostatniej strony wskazywały poniżej nich
- Błąd podczas zapisu PDF w demo C++Builder Outlines nie zostawia już dema niezdolnego do utworzenia kolejnego dokumentu
Version 2.770.47
Fixed
- Trwały dyskowy cache renderowania działa teraz w folderach, których nazwy zawierają znaki poza systemową stroną kodową ANSI (na przykład folder profilu użytkownika ze znakami spoza łaciny); wcześniej każdy zapis strony tam zawodził, a cache nigdy nie dawał trafienia
THPDFDiskPageCacheprzyjmuje folder główny jako napis Unicode i trzyma wszystkie ścieżki cache w Unicode, łącznie z atomową wymianą plików stron i indeksu cache
Version 2.770.46
Fixed
- Renderowanie regionów i kafli (
RenderLoadedPageRegionToBitmap,RenderLoadedPageTiles, renderowanie regionów progresywne) nie zostawia już kafla pustego, gdy jego jedyna zawartość pochodzi z form XObject umieszczonego z dala od początku układu; form liczy się teraz jako pokrywający swój/BBoxtam, gdzie umieszcza go jego/Matrixi bieżąca transformacja - Tekst umieszczany przez
TD,T*,'lub"trafia teraz na właściwą linię przy rozstrzyganiu, które kafle go zawierają, więc dalsze linie akapitu nie są już wycinane z kafli, w których się pojawiają - Offsety
Tdsą skalowane macierzą tekstu i mierzone od początku linii, zgodnie z tym, jak tekst jest faktycznie rysowany - Przy szacowaniu, gdzie kończy się bieg tekstu, uwzględnia się teraz odstęp między znakami, odstęp międzywyrazowy, skalowanie poziome i podniesienie tekstu, a glify nie są już uważane za węższe niż jedno em
Version 2.770.45
Fixed
- Demo C++Builder MemStream zapisuje MemStream.pdf obok pliku wykonywalnego — pod nazwą używaną przez wersję Delphi — zamiast Memory.pdf w katalogu roboczym
- Demo C++Builder MemStream wczytuje teraz PDF z pamięci ponownie przez LoadFromStream i sprawdza, czy ma jedną stronę, zanim go zapisze
- Błąd podczas zapisu PDF w demo C++Builder MemStream nie zostawia już dema niezdolnego do utworzenia kolejnego dokumentu
Version 2.770.44
Fixed
- Demo C++Builder HelloWorld nie wysyła już przy starcie komunikatu zamknięcia do każdego okna, którego tytuł zawiera HelloWorld.pdf, co mogło zamykać niepowiązane okna, jak edytor czy menedżer plików
- Demo C++Builder HelloWorld zapisuje HelloWorld.pdf obok pliku wykonywalnego i otwiera go tylko przy podanym
--open; jak wersja Delphi przyjmuje nazwę pliku wyjściowego albo--output <file>
Version 2.770.43
Fixed
- Ładowanie PDF, którego drzewo stron ma pośrednie węzły /Pages, nie gubi już stron pod tymi węzłami; takie dokumenty zgłaszały wcześniej tylko strony wypisane bezpośrednio pod korzeniem drzewa
- Strony zachowują kolejność z drzewa stron, więc indeksy stron, pola stron i zawartość zgadzają się z tym, co pokazują inne przeglądarki
- Strona, której /Type jest zapisany jako obiekt pośredni, jest rozpoznawana jako strona podczas tego porządkowania
Version 2.770.42
Fixed
- Ładowanie PDF, którego drzewo stron odwołuje się samo do siebie (węzeł /Pages wypisany wśród własnych /Kids albo dwa węzły wypisujące się nawzajem), nie kończy się już awarią z przepełnienia stosu; każdy węzeł drzewa stron jest odwiedzany raz, a absurdalnie głębokie drzewa są ucinane
- Węzeł drzewa stron, którego tablica /Kids lub nazwa /Type jest zapisana jako obiekt pośredni, wczytuje teraz swoje strony zamiast zawodzić albo czytać nieprawidłową pamięć
Version 2.770.41
Fixed
- THPDFPage.LastAnnotation zwraca teraz odnośnik utworzony przez AddGoToLink, AddURILink, AddNamedDestinationLink, AddGoToRLink, AddLaunchLink, AddStructureDestinationLink i AddGoToRStructureDestinationLink
- Wywołanie SetAnnotationFlags, SetAnnotationBorderStyle lub AddPopupAnnotationFor na LastAnnotation zaraz po dodaniu odnośnika nie zachowuje się już tak, że po cichu nic nie robi albo zmienia wcześniej utworzoną adnotację
Version 2.770.40
Fixed
- JSON zadania przekazywany do
THPDFJobProcessor.Execute,HPDFDocRunJobiHPDFDocRunJobWithCallbacksjest teraz czytany w całości jako UTF-8: sekwencje ucieczki\uXXXXnie zapadają się już w stronę kodową ANSI, a escape'owane pary surrogate, jak😀, dają zamierzony znak zamiast dwóch popsutych - Nazwy plików wejściowych i wyjściowych w zadaniach scalania, dzielenia, optymalizacji, szyfrowania i walidacji zachowują znaki poza systemową stroną kodową — niezależnie od tego, czy zapisano je jako surowy UTF-8, czy jako sekwencje
\u— więc takie pliki są znajdowane i zapisywane pod swoimi prawdziwymi nazwami - Zniekształcona sekwencja
\uz mniej niż czterema cyframi szesnastkowymi jest odrzucana bez połykania następnych znaków ani zamykającego cudzysłowu - Znacznik kolejności bajtów UTF-8 na początku tekstu zadania jest ignorowany
Version 2.770.39
Fixed
- Identyfikatory obiektów podawane przez wywołującego przy budowaniu podpisów i żądań znacznika czasu (polityka podpisu, typ zobowiązania, deklarowana rola, polityka znacznika czasu i podobne OID) są teraz kodowane poprawnie, gdy pierwszy łuk wynosi 2, a drugi 48 lub więcej; łączna pierwsza wartość była wcześniej ucinana do jednego bajta, co dawało inny, błędny identyfikator
- Łuk identyfikatora obiektu zbyt duży, by go zapisać, jest teraz odrzucany z błędem zamiast po cichu zawinąć się do innej wartości
Version 2.770.38
Fixed
- Demo HugeFileBenchmark: z
--recursive --keep-outputPDF-y dzielące nazwę pliku w różnych podkatalogach nie nadpisują już nawzajem swoich wygenerowanych plików; katalog roboczy odwzorowuje teraz drzewo folderów wejściowych
Version 2.770.37
Security
- Renderowanie PDF z osadzoną czcionką TrueType, której glify złożone wypisują wiele składników, z których każdy znów jest złożony, nie zawiesza już renderera ani eksportu tekstu do ścieżek; jeden glif rozwija się teraz co najwyżej do 1024 składników na wszystkich poziomach zagnieżdżenia
- Składnik glifu złożonego odwołujący się do własnego glifu jest pomijany, zamiast być rozwijany aż do limitu zagnieżdżenia
Version 2.770.36
Fixed
- Funkcja stitching (Type 3) odwołująca się sama do siebie, bezpośrednio albo przez inne funkcje, nie schodzi już w rekurencję aż do przepełnienia stosu; jest traktowana jako funkcja bezużyteczna
- Dotyczy transformat tint Separation i DeviceN, funkcji cieniowania i funkcji transferu w zniekształconych albo wrogich PDF-ach renderowanych przez
RenderLoadedPageToBitmapi pozostałe ścieżki renderowania - Zagnieżdżanie funkcji jest ograniczone do 16 poziomów; normalne dokumenty zagnieżdżają znacznie płycej
Version 2.770.35
Fixed
- Demo C++Builder PageOperations prowadzi teraz ten sam przepływ pracy co wersja Delphi: wstawia też pustą stronę o własnym rozmiarze przez InsertLoadedBlankPage i wypisuje tekst stron 1-3 przez ExtractLoadedPagesText
- Pliki po przestawieniu i pliki wyekstrahowane przez demo C++Builder PageOperations zawierają teraz te same strony co wersja Delphi: ostatnia strona trafia na stronę 2, a ekstrahowane są strony 2 i 5
Version 2.770.34
Fixed
- Demo C++Builder Hyperlink kontynuuje na nowej stronie, gdy lista odnośników nie mieści się na jednej stronie; odnośniki za dołem pierwszej strony były zapisywane poza stroną
- Przyciski Add, Remove i Make PDF w demo C++Builder Hyperlink są wyłączane podczas zapisu PDF, więc lista odnośników nie może już się zmienić, a dokument nie może zostać rozpoczęty drugi raz w trakcie generowania
Version 2.770.33
Fixed
- Demo C++Builder Stamp umieszcza teraz znak wodny tekstowy i adnotację pieczątki względem rozmiaru każdej strony; na stronach poziomych i innych niż A4 adnotacja pieczątki wypadała poza stronę, a znak wodny zjeżdżał ze środka
Version 2.770.32
Fixed
- Każdy przycisk demo C++Builder ViewerPref zaczyna teraz od świeżego dokumentu; kierunek czytania, zoom początkowy i inne preferencje przeglądarki z wcześniejszego kliknięcia pozostawały w mocy, więc na przykład Create PDF po Test Direction nadal pisał tekst od prawej do lewej i preferencje, które nie były już wybrane
- Demo C++Builder PDF_INFO zapisuje teraz PDFInfo.pdf obok pliku wykonywalnego — pod nazwą pliku używaną przez wersję Delphi i readme
Version 2.770.30
Security
- Walidacji ścieżki certyfikatów (HPDFValidateCMSCertificatePath, wariant online i paczki podpisów) nie da się już zablokować podpisem, który osadza wiele certyfikatów dzielących jedną nazwę i klucz; taki zbiór sprawiał wcześniej, że szukanie ścieżki próbowało każdego możliwego uporządkowania, co rośnie silnie i potrafiło zajmować walidację godzinami
- Każdy podpis wystawcy w kandydackim łańcuchu jest teraz weryfikowany raz na walidację, a jego wynik jest ponownie używany, zamiast być weryfikowany od nowa dla każdej ścieżki przez niego przechodzącej
- Szukanie ścieżki ma limit stałej ilości pracy; po osiągnięciu limitu walidacja zgłasza, że żadna poprawna ścieżka nie dochodzi do trust anchora, a zwykłe łańcuchy pozostają daleko poniżej niego
Version 2.770.29
Fixed
ImportLoadedInterchangeFromFDFdopasowuje teraz całe nazwy kluczy, gdy czyta adnotacje i status FDF:/Tnie zatrzymuje się już na/Typeani/Text,/Fnie na/FreeText, a/Statusnie na dłuższym kluczu zaczynającym się tak samo, więc importowane adnotacje zachowują autora i flagi- Klucze zagnieżdżonych słowników wewnątrz importowanej adnotacji oraz tekst przypominający klucze wewnątrz napisów nie są już brane za własne wpisy adnotacji
- Napisy literalne w importowanych adnotacjach i statusie FDF dekodują wszystkie sekwencje ucieczki zdefiniowane w ISO 32000-1:
\t,\b,\f, ósemkowe\dddi kontynuacje linii odwrotnym ukośnikiem, oprócz\n,\ri escape'owanych nawiasów
Version 2.770.28
Fixed
- W buildach zrobionych Delphi starszymi niż XE2, które używają dołączonego czytnika PNG, ładowanie pliku PNG z chunkiem skompresowanego tekstu (zTXt) nie czyta już poza wewnętrzny bufor; tekst dłuższy niż 256 bajtów wychodził zniekształcony i znacznie za długi, a duże chunki mogły powodować awarię
- Metoda kompresji chunka skompresowanego tekstu jest teraz czytana z właściwego bajta, więc chunki z nieobsługiwaną metodą są ignorowane zamiast być dekodowane tak, jakby były danymi deflate
- Ucięty albo zniekształcony skompresowany tekst nie grozi już nieskończoną pętlą dekodowania
- Buildy z Delphi XE2 i nowszymi używają systemowego czytnika PNG i pozostają bez zmian
Version 2.770.27
Changed
- Demo C++Builder SearchAndSelect działa teraz jak wersja Delphi: tworzy przykładowy PDF, ładuje go, znajduje szukany termin przez SearchLoadedDocumentText i dodaje adnotację wyróżnienia nad każdym trafieniem przez AddLoadedHighlightAnnotation
- Demo C++Builder SearchAndSelect przyjmuje wejściowy PDF, szukany termin, plik wyjściowy i opcje --case-sensitive oraz --whole-word, a w zapisanej kopii sprawdza nowe adnotacje
Fixed
- Wyróżnienia w demo C++Builder SearchAndSelect pokrywają teraz dopasowane słowa; były umieszczane o linię za wysoko, bo pozycja tekstu była brana jako linia bazowa zamiast góry tekstu
Version 2.770.26
Fixed
- Demo C++Builder DigiPrint startuje teraz na systemach z kropką jako separatorem dziesiętnym; liczby dziesiętne z przecinkiem w demo.xml były parsowane z ustawieniami regionalnymi systemu i zgłaszały błąd podczas tworzenia formularza
- Demo DigiPrint czyta demo.xml i swoje dwie ikony JPEG z folderu pliku wykonywalnego i zapisuje tam demo.pdf, a projekt umieszcza teraz plik wykonywalny w folderze demo obok tych plików
- Ikony stron w stopce demo DigiPrint są rysowane wewnątrz wiersza stopki zamiast pod dolną linią strony, a tytuł, rok i tekst stopki używają rozmiarów czcionek stylu raportu
- Wielokrotne klikanie przycisku DigiPrint nie przesuwa już lewego marginesu coraz bardziej w prawo z każdym kliknięciem
- Błąd podczas budowania PDF w demo DigiPrint, na przykład brakujący plik obrazu, nie zostawia już dema niezdolnego do utworzenia kolejnego dokumentu
Version 2.770.25
Fixed
- Demo Showcase: pasy nagłówków, tło okładki, próbki gradientów i akcent tylnej strony układają się teraz z kształtami, które wypełniają; współrzędne gradientu są podane w domyślnej przestrzeni użytkownika PDF (początek w lewym dolnym rogu), więc kolory nie są już przesunięte ani odwrócone
- Demo Showcase: Save Copy nie przełącza już pliku roboczego, więc Regenerate i Open External nadal używają głównej galerii zamiast ostatnio zapisanej kopii
- Demo Showcase: gdy wygenerowanie galerii się nie powiedzie, przeglądarka jest ponownie wiązana i dalej pokazuje ostatnią załadowaną galerię zamiast pozostać pusta
- Demo Showcase: ścieżki wyjściowe ze znakami poza systemową stroną kodową ANSI przechodzą bez zmian
Version 2.770.24
Fixed
- Ładowanie obrazu JPEG 2000 o czterech składnikach (RGB plus alfa albo YCC plus alfa) do
TJpeg2000Bitmapukłada teraz czerwień, zieleń, błękit i alfę we właściwych bajtach 32-bitowej bitmapy; wcześniej kanały kolorów były przesunięte o jeden bajt, a kanał alfa nadpisywał jeden z nich - Naprawia to również cykl zapisu i odczytu 32-bitowego
TJpeg2000BitmapprzezSaveToStreamiLoadFromStream, który wracał z pomieszanymi kolorami - Obrazy barwne o trzech składnikach, obrazy w skali szarości i czteroskładnikowe obrazy CMYK ładują się jak wcześniej
Version 2.770.23
Security
- Napis tekstowy, którego wartość zaczyna się od << i kończy na >> (na przykład tytuł, autor, wartość pola formularza albo tekst adnotacji, jak "<<URGENT>>"), jest teraz zawsze zapisywany jako napis; wcześniej był wypisywany dosłownie, co łamało składnię pliku i pozwalało spreparowanemu tekstowi wstrzyknąć do zapisywanego dokumentu słownik, na przykład akcję
- Dotyczy nowych dokumentów oraz dokumentów załadowanych zapisywanych przez SaveLoadedDocument i metody pokrewne
Version 2.770.22
Fixed
- Demo C++Builder Barcodes zapisuje Barcodes.pdf obok pliku wykonywalnego zamiast w bieżącym katalogu roboczym i przyjmuje opcjonalną nazwę pliku wyjściowego jako jedyny argument
- Demo C++Builder Barcodes nie otwiera już przeglądarki PDF po zakończeniu i — jak wersja Delphi — kompresuje zawartość strony i otwiera plik z zoomem dopasowującym wysokość
- Błędy w demo C++Builder Barcodes są zgłaszane z treścią komunikatu; konsola pokazywała wcześniej adres pamięci
Version 2.770.21
Fixed
- W stabilnym ABI C wywołanie
hpdf_document_destroy, podczas gdy inne wywołanie na tym samym uchwycie wciąż trwa (z innego wątku albo z wnętrza callbacka odczytu, zapisu, postępu lub anulowania), nie zwalnia już dokumentu spod tamtego wywołania - Uchwyt staje się nieprawidłowy, jak tylko
hpdf_document_destroyzwróci; sam dokument jest zwalniany, gdy ostatnie trwające na nim wywołanie się skończy - Wywołania odpytujące uchwyt równolegle z jego niszczeniem dostają
HPDF_STATUS_INVALID_HANDLEzamiast dotykać zwolnionej pamięci
Version 2.770.20
Security
- Kształtowanie tekstu czcionką TrueType/OpenType, której kontekstowe lookupy GSUB odwołują się samych siebie, nie przepełnia już stosu i nie kończy się awarią; głębokość zagnieżdżenia teraz naprawdę akumuluje się między poziomami
- Reguła kontekstowa odpalająca wiele zagnieżdżonych lookupów nie potrafi już pomnożyć ich w pętlę niemal nieskończoną: każde dopasowanie najwyższego poziomu uruchamia co najwyżej 1024 zagnieżdżonych lookupów
Fixed
- Łańcuchowa substytucja kontekstowa (GSUB lookup typu 6) osiągana z innego kontekstowego lookupu jest teraz stosowana; była czytana zwykłym układem kontekstowym i nigdy nie dopasowywała, więc niektórych ligatur i form kontekstowych brakowało
- Odwrócona substytucja łańcuchowa (GSUB lookup typu 8) wskazywana z reguły kontekstowej jest pomijana, jak wymaga specyfikacja OpenType, zamiast być błędnie czytana jako podtabela kontekstowa
Version 2.770.19
Fixed
RenderLoadedPageToDCnie zgłasza już naruszenia dostępu, gdy strona zawiera obrazowy XObject albo obraz inline; obrazy są rysowane do kontekstu urządzenia wywołującegoGetLoadedPageMetafilenie zawodzi już na stronach z obrazami, a obrazy są zapisywane w zwracanym metapliku- Przycinanie obrazu do widocznej powierzchni używa teraz rozmiaru przekazanego do
RenderLoadedPageToDC, gdy kontekst urządzenia nie ma regionu przycięcia
Version 2.770.18
Fixed
- Regiony półtonowe JBIG2 z włączonym grid skipping nie gubią już komórek siatki, które zaczynają się na lewo od regionu lub nad nim, ale wciąż go nachodzą; takie komórki były traktowane jako leżące daleko na zewnątrz, ich wartości szarości były pomijane, a pozostałe komórki regionu były dekodowane nie w kroku
- Ujemne współrzędne siatki, które nie są pełnymi pikselami, są teraz zaokrąglane w stronę minus nieskończoności, jak wymaga specyfikacja JBIG2, więc częściowo widoczne komórki trafiają na właściwy piksel
- Regiony półtonowe, których siatka leży w całości na współrzędnych nieujemnych, pozostają bez zmian
Version 2.770.17
Fixed
- Odpowiedzi OCSP, których responder jest identyfikowany hashem klucza w standardowej postaci z RFC 6960 (jawny tag [2] wokół hasha klucza), są znowu akceptowane; walidacja ścieżki certyfikatów była je wcześniej odrzucać, więc odwołanie pozostawało nieznane dla każdego respondenta, który nazywa się kluczem
- Pasują zarówno respondenci bezpośredni (wystawiające CA), jak i delegowane certyfikaty podpisujące OCSP identyfikowane kluczem, a starsza postać z tagowaniem niejawnym dalej działa
- HPDFDescribeValidationEvidence indeksuje teraz deskryptory OCSP pod DN wystawcy certyfikatu nazwanego w każdej odpowiedzi, rozwiązywanym z hasha nazwy wystawcy w odpowiedzi, zamiast pod DN respondenta; odpowiedzi od delegowanych respondentów i odpowiedzi identyfikowane kluczem dają teraz deskryptory, które wyszukiwanie po wystawcy certyfikatu znajduje
- Doszło przeciążenie HPDFDescribeValidationEvidence przyjmujące podpis CMS i dodatkowe certyfikaty wystawców — dla odpowiedzi, które identyfikują respondenta kluczem i nie osadzają certyfikatu
Version 2.770.16
Fixed
- Demo Viewer: formularz nie zgłasza już naruszenia dostępu przy starcie; pasek statusu istnieje teraz, zanim przeglądarka zostanie związana z dokumentem i zacznie zgłaszać zmiany strony
- Demo Viewer: Enter w polu wyszukiwania aktywuje teraz pierwsze trafienie zamiast przeskakiwać od razu do drugiego
- Demo Viewer: zakładki bez rozwiązywalnej strony celu są wypisywane bez fałszywego przyrostka "(p0)", a klikanie ich nie zgłasza już błędu zakresu
Version 2.770.15
Fixed
- Krok odszyfrowywania demo C++Builder Security otwiera teraz naprawdę zaszyfrowaną próbkę hasłem użytkownika "user"; argument hasła był brany jako flaga automatycznego odszyfrowania, więc próbka była ładowana bez hasła, a Security-Decrypted.pdf nie była odszyfrowaną kopią
Version 2.770.14
Fixed
- Ścieżka przycinająca ustawiona przez
WlubW*zaczyna działać teraz po zamalowaniu ścieżki, jak wymaga ISO 32000-1, zamiast przed nim - Obrysowywanie ścieżki, która też ustawia przycięcie (
re W S), maluje teraz całą szerokość linii; zewnętrzna połowa obrysu była wycinana przez własne przycięcie ścieżki - Wypełnianie z obrysem przy przycięciu even-odd (
W* B) wypełnia teraz własną regułą nawijania operatora malującego; przycięcie even-odd robiło wcześniej dziury w wypełnieniu B*ib*wypełniają teraz zawsze regułą even-odd, niezależnie od reguły wypełniania pozostawionej przez wcześniejszą operację
Version 2.770.13
Fixed
- Regiony półtonowe JBIG2, których płaszczyzny skali szarości są kodowane MMR, dekodują się teraz; wcześniej płaszczyzny wychodziły odwrócone, czytana była tylko co ósma kolumna, a koniec każdej płaszczyzny był wyznaczany na złym bajcie, więc kolejne płaszczyzny były dekodowane ze złej pozycji
- Znacznik końca bloku po każdej płaszczyźnie MMR jest rozpoznawany zarówno wtedy, gdy następuje bezpośrednio po ostatnim wierszu, jak i po wypełnieniu bajtowym, a każda płaszczyzna startuje teraz na następującej po nim granicy bajta
- Regiony półtonowe kodowane arytmetycznie pozostają bez zmian
- Dotyczy obrazów PDF z filtrem JBIG2Decode ładowanych, wyekstrahowanych lub renderowanych wbudowanym dekoderem
Version 2.770.12
Fixed
- JSON produkowany przez procesor zadań (
THPDFJobProcessor.Execute,HPDFDocRunJob,HPDFDocRunJobWithCallbacks) i przez porównywanie dokumentów escape'uje teraz cudzysłowy i odwrotne ukośniki jako\"i\; wcześniejsze postacie\x22/\x5Cnie są poprawnym JSON-em i kazały standardowym parserom odrzucać wyniki zawierające cudzysłów albo ścieżkę Windows - Znaki kontrolne są zapisywane jako sekwencje
\uXXXX, a wyjście jest zawsze poprawnie uformowanym UTF-8: bajty niebędące poprawnym UTF-8 są zastępowane przez U+FFFD zamiast być kopiowane do wyniku - Komunikaty błędów w wynikach zadań i w obiekcie błędu porównania są kodowane jako UTF-8, więc teksty wyjątków i nazwy plików spoza angielskiego nie przychodzą już w stronie kodowej ANSI
Version 2.770.11
Fixed
- RedactLoadedRect, StampLoadedPageText, StampLoadedPageImage, StampLoadedPageShape, StitchLoadedPage i FlattenLoadedAnnotations nie wyrzucają już istniejącej zawartości strony, gdy jej /Contents jest tablicą strumieni; nowe operatory są dodawane jako dodatkowy strumień na końcu tablicy, albo na początku dla podkładu
- Podkładowe pieczątki na stronie, której zawartość jest rozbita na kilka strumieni, zachowują każdy oryginalny strumień
- Strony, których jedyny strumień zawartości używa filtra innego niż czysty FlateDecode (ASCIIHex, ASCII85, LZW, RunLength, łańcuchy filtrów albo Flate z predyktorem), są teraz dekodowane przed doklejeniem nowych operatorów, więc pieczątka, prostokąt zatuszowania albo spłaszczony wygląd są faktycznie malowane, a oryginalna zawartość pozostaje czytelna
- Gdy strumienia zawartości strony nie da się w ogóle zdekodować, pozostaje nietknięty, a nowe operatory trafiają do osobnego strumienia zamiast być doklejane do zakodowanych bajtów
Version 2.770.10
Security
- Renderowanie PDF z osadzoną czcionką CFF (FontFile3, Type1C lub CIDFontType0C), która trzyma offset INDEX równy 0x80000000 lub większy, nie czyta już pamięci poza danymi czcionki; takie offsety były traktowane jako ujemne i przechodziły sprawdzenia granic
- Osadzone czcionki TrueType dostają to samo potraktowanie dla pozycji glifów i długości tabel równych 0x80000000 lub większych: glif albo czcionka jest pomijany zamiast być czytany ze złego miejsca
- Glif CFF, którego subroutine'y wołają się nawzajem wiele razy, nie zawiesza już renderowania ani eksportu tekstu do ścieżek; każdy glif ma teraz stały budżet operacji charstring, daleko ponad to, czego używają prawdziwe czcionki
Version 2.770.9
Fixed
- Obrazy JBIG2, których regiony tekstowe używają kodowania Huffmana razem z rafinacją symboli w szablonie 13-pikselowym, dekodują się teraz; bajty adaptacyjnych pikseli rafinacji w nagłówku regionu były pomijane, więc liczba instancji i każde następne pole były czytane ze złego offsetu, a obraz był odrzucany
- Regiony tekstowe z kodowaniem arytmetycznym albo z 10-pikselowym szablonem rafinacji pozostają bez zmian i dekodują się dokładnie jak wcześniej
- Dotyczy obrazów PDF z filtrem JBIG2Decode ładowanych, wyekstrahowanych lub renderowanych wbudowanym dekoderem
Version 2.770.8
Security
- Przy włączonej izolacji kodeków rozmiar zdekodowanego obrazu zwracanego przez odizolowany worker kodeków jest teraz sprawdzany względem skonfigurowanego limitu wyjścia i pamięci współdzielonej zaalokowanej przez proces gospodarza, zamiast względem pola pojemności, które sam worker może nadpisać
- Skompromitowany albo wadliwy worker nie potrafi już sprawić, by gospodarz kopiował za koniec bloku pamięci współdzielonej; taka odpowiedź jest odrzucana jako błąd protokołu, a obraz nie jest z niej rysowany
- Odpowiedź workera jest kopiowana raz i walidowana z tej kopii, więc jej nagłówek nie może się zmienić między sprawdzaniami a kopiowaniem pikseli
Version 2.770.7
Fixed
- Żądania OCSP budowane do sprawdzania odwołań na żywo (HPDFCollectCMSRevocationRequests i online walidacja ścieżki certyfikatów) kodują teraz poprawnie identyfikator algorytmu SHA-256 w CertID; wcześniej pierwsze dwa łuki identyfikatora obiektu były zapisywane jako osobne bajty, więc algorytm hashowania był nieprawidłowy
- Respondenci OCSP odrzucający zniekształcone żądania odpowiadają teraz na te żądania normalnym statusem zamiast błędem, więc online sprawdzanie odwołań nie spada już z powrotem do dowodów offline z powodu kodowania żądania
Version 2.770.6
Fixed
- Renderowanie czcionki Type 3 maluje teraz każde wystąpienie glifu; wcześniej glif powtórzony w tym samym biegu tekstu albo gdziekolwiek indziej na stronie z tym samym rozmiarem i orientacją był malowany tylko za pierwszym razem, a potem zostawał pusty
- Dotyczy
RenderLoadedPageToBitmap,RenderLoadedPageToDC, metaplików stron i ścieżek eksportu obrazu — z współdzielonym cache renderowania lub bez - Powtarzane glify Type 3 dalej używają cache glifów, więc poprawka nie czyta procedury glifu od nowa przy każdym wystąpieniu
Version 2.770.5
Fixed
- Stabilne ABI C nie zwalnia już źródła wejściowego dwa razy, gdy
hpdf_document_load_from_iozawodzi w trakcie parsowania dokumentu, na przykład gdy callback odczytu zgłosi błąd albo operacja zostanie anulowana w połowie; takie ładowanie mogło uszkodzić stertę albo wywalić proces gospodarza - Nieudane ładowanie zwraca teraz status callbacka albo anulowania zamiast wewnętrznego błędu, a ten sam uchwyt dokumentu można potem załadować ponownie
- Ładowanie nowego dokumentu do istniejącego uchwytu zwalnia poprzednie źródło wejściowe dopiero, gdy nowe ładowanie je przejmie
Version 2.770.4
Fixed
- Wyniki kodów z
DecodeLoadedPageBarcodesna stronach z/Rotate 90lub/Rotate 270podają teraz granice w rzeczywistym położeniu symbolu zamiast w położeniu odbitym względem strony - Zgłaszana orientacja kodu na tych stronach zgadza się teraz z kierunkiem, w którym symbol faktycznie czyta się w przestrzeni strony
- Niewidzialny tekst kładziony przez
ApplyLoadedOCRTextLayerna stronach obróconych o ćwierć obrotu leży teraz na rozpoznanych słowach, więc zaznaczanie i wyszukiwanie podświetlają właściwe miejsce - Wykryte twarze z detekcji do zatuszowania na stronach obróconych o ćwierć obrotu są też mapowane z powrotem na właściwy obszar strony
- Strony nieobrócone i obrócone o pół obrotu pozostają bez zmian
Version 2.770.3
Fixed
- W buildach 32-bitowych ładowanie albo zapis obrazu TIFF skompresowanego PixarLog nie kończy się już awarią z przepełnienia stosu; wybór kodeka buduje jego tablice compandingu, które trafiały na nieskończenie rekurencyjny helper wykładnika
- Obrazy TIFF SGILog (LogLuv) w buildach 32-bitowych przechodzą przez te same poprawione helpery matematyczne
- 32-bitowy helper zaokrąglania w dół używany przez kodeki TIFF zaokrągla teraz wartości ujemne w stronę minus nieskończoności i przyjmuje duże wielkości bez błędu przepełnienia, zgodnie z buildami 64-bitowymi
Version 2.770.2
Changed
- Przy renderowaniu obraz rysowany w połowie swojej rozdzielczości pikselowej lub mniejszej jest zaraz po dekodowaniu kurczony dokładnie do rozmiaru rysowania przez uśrednianie obszarowe, zamiast być trzymany w pełnym rozmiarze i rozciągany przy rysowaniu
- Skurczony obraz mieści się w cache zdekodowanych obrazów: grupa przezroczystości rysowana dwa razy — na czarnym i na białym — by odzyskać swoją alfę, dekoduje teraz taki obraz raz zamiast raz na przebieg, i to samo dotyczy ponownego renderowania tej samej strony
- Obraz z miękką maską jest łączony z maską piksel za pikselem w rozmiarze rysowania, gdzie maska też jest kurczona; to omija budowanie i premultiplikację pełnowymiarowej kopii dużego obrazu i jego maski, a krawędź maski nie jest już próbkowana najbliższym sąsiadem
- Na przykładowej stronie z maskowanym obrazem 4229 x 4629 rysowanym w około ćwierci swojego rozmiaru wewnątrz takiej grupy renderowanie zajęło około 1,8 sekundy zamiast 4,5
- Maski obrazów stencil zachowują pełną rozdzielczość, a publiczne metody dekodowania regionów dalej zwracają rozmiary, które dokumentują
Version 2.770.1
Fixed
- W buildach 64-bitowych renderowanie strony z grupą przezroczystości kończyło się błędem indeksu listy, ilekroć grupa nie ustawiała własnej miękkiej maski — regresja z wersji 2.769.3; takie strony renderują się teraz znowu
Version 2.770.0
Added
- Nowa właściwość
RenderColorimetricLuminosityMaskswybiera, jak miękka maska luminancji zamienia kolor na wartości maski, gdy jej grupa ma przestrzeń mieszania opartą na CIE (CalGray,CalRGB,LabalboICCBased) - Ustawienie jej na
truebierze CIE Y tak, jak opisuje ISO 32000-1 11.5.3; bitmapy renderowane przy obu ustawieniach są cache'owane osobno
Changed
- Domyślnie maska luminancji waży teraz rozwiązywany kolor swojej grupy jak DeviceRGB, niezależnie od przestrzeni mieszania, jak robią to popularne przeglądarki PDF. CIE Y jest mierzone w skali liniowej, więc średnia szarość w grupie ICC albo kalibrowanej maskowała tylko około jednej piątej, a cienie i przejścia wychodziły znacznie jaśniejsze niż w innych przeglądarkach
- Kolor tła
/BCmaski podąża za tym samym ustawieniem co malowanie wewnątrz grupy maski - Maski, których grupa używa urządzeniowej przestrzeni kolorów, renderują się jak wcześniej
Version 2.769.3
Fixed
- Grupa przezroczystości malowana trybem mieszania innym niż Normal, na przykład cienie Multiply eksportowane przez narzędzia projektowe, miesza teraz swój kolor i alfę z tłem (ISO 32000-1 11.3.6 i 11.4.8). Tam, gdzie grupa była częściowo przezroczysta, jej piksele trzymały już tło, które było potem mieszane samo ze sobą: cień Multiply wychodził zbyt ciemny i w odcieniu tła
- Zawartość grupy przezroczystości startuje od trybu mieszania Normal, bo tryb mieszania dotyczy grupy jako całości (11.6.6). Zachowywała wcześniej tryb, jakim grupa była malowana, więc izolowana grupa mnożyła swoją zawartość w pusty start i malowała na czarno
- Miękka maska ustawiona w tym samym stanie grafiki co tryb mieszania rysuje swoją grupę maski z mieszaniem Normal (11.6.5.2); tryb mieszania zamieniał białą grupę maski w czarną i ukrywał to, co maska miała pokazać
- By znaleźć alfę grupy nieizolowanej, grupa jest rysowana dwa razy — na czarnym i na białym — gdy jej własne stany grafiki mieszają się normalnie; takie strony renderują się nieco wolniej
Version 2.769.2
Changed
- Obraz z miękką maską jest dekodowany w rozmiarze, w jakim jest rysowany — tak jak już obraz bez maski — a jego maska też jest dekodowana w tym rozmiarze; maska JPEG przechodzi przez dekoder JPEG z ograniczonym rozmiarem zamiast być dekodowana w całości
- Obraz i jego maska są zawsze dekodowane w całości, więc maska nie może się przesunąć względem obrazu, a przycinanie ogranicza to, co rysowane, do widocznej części
- Na stronie z obrazem cienia 4229 x 4629 i maską JPEG 2114 x 2314 rysowaną na około 1000 pikseli szerokości renderowanie przy 72 dpi zajęło 1,6 zamiast 3,7 sekundy
DecodeLoadedImageRegionAtResolutionzwraca cały obraz formatu bez dekodera regionów tak, jak został zdekodowany, bez jeszcze jednego kopiowania
Version 2.769.1
Changed
- Miękkie maski budują się szybciej: budowanie maski nie trzyma już drugiej kopii całej strony do porównania, za co strony z wieloma maskami — jak gradienty i cienie eksportowane przez narzędzia projektowe — płaciły raz na maskę
- Maski luminancji nad kalibrowaną albo opartą na ICC przestrzenią mieszania podgładają krzywą sRGB z tablicy zamiast liczyć ją dla każdego kanału każdego piksela, a szara zawartość maski — przypadek typowy — jest konwertowana przez jedną tabelę
- Strona 1125 x 1600 z około dwudziestoma miękkimi maskami renderuje się mniej więcej o jedną piątą szybciej; renderowane piksele się nie zmieniają
Version 2.769.0
Changed
- Ustawianie Width albo Height strony nie ukrywa już błędów: niepowodzenie zgłasza teraz wyjątek zamiast po cichu zostawić rozmiar niezaaplikowany, a ustawienie rozmiaru strony, której kanwa została już zamknięta, podnosi nowy EHPDFPageClosedError z komunikatem mówiącym dlaczego
- Po takim niepowodzeniu strona nie zostaje już w stanie, w którym późniejsze zmiany rozmiaru aktualizują tylko jej MediaBox, a nie rozmiar strony używany do rysowania
Fixed
- Zmiana rozmiaru strony załadowanego PDF nie nadpisuje już innych obiektów: MediaBox, którego liczby są osobnymi obiektami, albo tablica MediaBox współdzielona przez kilka stron jest kopiowana dla strony zmienianej, więc inne strony zachowują swój rozmiar
- Zmiana rozmiaru załadowanej strony, której MediaBox ma mniej niż cztery liczby, zapisuje teraz kompletny MediaBox z nowym rozmiarem; wcześniej nowy rozmiar był ignorowany
Version 2.768.20
Fixed
- Ekstrakcja tekstu nie wchodzi już w Form XObject malujący samego siebie, bezpośrednio albo przez inne formy; taka forma była czytana od nowa na każdym poziomie zagnieżdżenia, powtarzając swój tekst do dwunastu razy, a forma malująca się dwa razy potrzebowała 4096 przebiegów
- Tekst Form XObject wypadający poza ramkę (bounding box) formy, która go przycina, nie jest już częścią tekstu strony
Version 2.768.19
Changed
- Duże dokumenty znów ładują się szybciej: przechodzenie drzewa stron nie przeszukuje już wszystkich załadowanych obiektów dla każdej strony, a sprawdzenie szyfrowania w LoadFromFile z AutoDecrypt czyta plik przez ten sam bufor co ładowanie. 56-megabajtowy PDF Reference 1.7 ładuje się teraz w około 8 sekund zamiast 22
Version 2.768.18
Fixed
- Renderowanie stron znajduje teraz zainstalowane czcionki, które Windows zgłasza pod zlokalizowaną nazwą, jak Microsoft YaHei na chińskim Windows albo Yu Mincho na japońskim; tekst takimi czcionkami był rysowany czcionką zastępczą, gdy PDF ich nie osadzał
- Nazwy czcionek zapisane bez spacji pasują teraz do rodzin Windows, które trzymają niektóre słowa sklejone, jak MicrosoftYaHei dla Microsoft YaHei, MicrosoftJhengHei dla Microsoft JhengHei i MSPGothic dla MS PGothic; wcześniej były odpytywane ze spacją przed każdą wielką literą i nigdy ich nie znajdowano
- Renderer pamięta, które nazwy czcionek są zainstalowane, więc dokumenty z wieloma niezainstalowanymi czcionkami nie odpytują już Windows o każdą nazwę na każdej stronie
Version 2.768.17
Changed
- Duże dokumenty ładują się znacznie szybciej: telemetria operacji próbuje teraz pamięć co najwyżej raz na 10 ms w ramach operacji, zamiast przy każdym obiekcie czytanym przez parser — próba, która przechodziła przez każdy blok menedżera pamięci. 1236-stronicowy PDF Reference 1.6 ładuje się w około 2,5 sekundy zamiast 30, a 56-megabajtowy PDF Reference 1.7 w około 22 sekundy zamiast ponad czterech minut
- Spowolnienie rosło z rozmiarem własnej sterty aplikacji, więc najwięcej zyskują aplikacje trzymające dużo pamięci
- UpdateOperationTelemetrySample zyskuje opcjonalny parametr Force, który bierze próbkę niezależnie od interwału; koniec każdej operacji nadal bierze jedną
Version 2.768.16
Fixed
- Ładowanie pustego pliku nie zawisa już; LoadFromFile kręcił się wcześniej w nieskończoność, czytając do tyłu od początku pliku
- Plik, w którym nie da się znaleźć żadnej strony — jak pusty plik, czysty tekst albo losowe bajty — nie ładuje się już jako jedna lub trzy puste strony zgadnięte z jego rozmiaru; LoadFromFile zwraca teraz 0 albo zgłasza wyjątek, jak dla innych nieczytelnych plików
- Zaszyfrowany plik, którego strony leżą w zaszyfrowanych strumieniach obiektów, zgłasza teraz wyjątek mówiący, że potrzebne jest hasło, gdy jest ładowany bez niego, zamiast ładować się jako pusta strona; ładuj go przeciążeniem z hasłem
Version 2.768.15
Fixed
- Tekst strony nie powtarza już znaków zamalowanych ponownie na sobie, jak w logach drukowanych nakładkowo albo w pogrubieniach udawanych przez rysowanie tekstu dwa razy z małym przesunięciem; taki tekst był wyekstrahowany dwa razy, na przykład "Bold wordsBold words", a wyszukiwania go mogły zawodzić
- Wszystkie tryby ekstrakcji tekstu — tekstowy, kolumnowy, layoutowy i semantyczny — czytają taki znak raz; lista glifów nadal zgłasza każdy zamalowany glif
Version 2.768.14
Fixed
- Nazwy glifów z pełnej listy Adobe Glyph List rozwiązują się teraz w ekstrakcji tekstu i renderowaniu, wśród nich ligatury fi, fl, ff, ffi i ffl oraz nazwy afii używane przez starsze czcionki cyrylicy, hebrajskie i arabskie; kodowanie czcionki, które nazywało takie glify, dawało złe znaki — na przykład "defined" było ekstrahowane jako "deÞned"
Version 2.768.13
Changed
- LoadFromFile czyta pliki poniżej LocalFileMappingThreshold (domyślnie 8 MB), a każdy plik, gdy mapowanie jest wyłączone albo niedostępne, przez 64-kilobajtowy bufor odczytu; pliki z wieloma obiektami i klasyczną tablicą odwołań krzyżowych ładują się znacznie szybciej — na przykład 912-stronicowy PostScript Language Reference Manual w około 1 sekundę zamiast blisko 3 minut
Version 2.768.12
Fixed
- Ekstrakcja tekstu układa teraz glify czcionek z kluczem CID (Type 0), których tablica szerokości /W nie jest uporządkowana po CID; większość glifów dostawała domyślną pełnoemową szerokość, więc linie biegły poza krawędź strony, a ich końce wypadały z wyekstrahowanego tekstu i wyszukiwania
Version 2.768.11
Fixed
- Litery z akcentami w osadzonych czcionkach CFF (Type 1C), złożone z litery bazowej i akcentu — tak zbudowano wiele czcionek skonwertowanych z Type 1 — renderują się teraz poprawnie; litery takie jak ü i é wychodziły puste, więc w słowach typu "München" widać było lukę
- W eksporcie SVG z osadzaniem czcionek te same litery są teraz kompletne
Version 2.768.10
Fixed
- Złożone glify osadzonych czcionek TrueType układają teraz każdą część pod jej własnym przesunięciem: litery z akcentami, takie jak é i Å, traciły akcent, a podwójne cudzysłowy wychodziły jako pojedynczy cudzysłów z luką za nim
- W eksporcie SVG z osadzaniem czcionek te same glify są teraz kompletne
Version 2.768.9
Fixed
- Obrazy oznaczone
/Interpolate falsesą teraz uśredniane, gdy są rysowane w rozmiarze mniejszym niż ich własna rozdzielczość; wcześniej próbkowano jeden piksel na kilka, więc wykresy wstawione jako obrazy pokazywały poszarpane, przyciemnione etykiety osi i połamane cienkie linie tam, gdzie inne przeglądarki rysują je gładko - Obrazy z
/Interpolate falseprzy powiększaniu zachowują ostre krawędzie pikseli jak wcześniej
Version 2.768.8
Fixed
- Tekst rysowany obrysem węższym niż piksel — tak dokumenty robią udawane pogrubienie — renderuje się teraz z tą właśnie szerokością; obrys miał zawsze cały piksel, więc takie nagłówki wyglądały na rozmyte i znacznie cięższe niż w innych przeglądarkach
- Małe glify czcionek osadzonych i zainstalowanych są w trybach renderowania tekstu 1 i 2 obrysowywane z antyaliasingiem, kolorem obrysu, po wypełnieniu
Version 2.768.7
Fixed
- Wywołanie
ProcessObjectStreamsForDecompressionna załadowanym dokumencie nie wyrzuca już strumieni obiektów przeczytanych podczas ładowania: skompresowane obiekty pozostają potem dostępne dlaExtractRawObjectFromStreamiExtractObjectFromStream, podczas gdy wcześniej nie dało się odczytać żadnego - Gdy metoda skanuje sam plik — jak w dokumencie z klasyczną tablicą odwołań krzyżowych — znajduje teraz strumień obiektów leżący bezpośrednio za innym strumieniem i odczytuje liczbę obiektów oraz przesunięcia z jego własnego słownika
ExtractRawObjectFromStreamdekoduje strumień obiektów ponownie, gdy cache strumieni obiektów zdążył go już zwolnić, zamiast zwracać pusty wynik
Version 2.768.6
Fixed
- Demo Stamp buduje się teraz poprawnie dla Win64
Version 2.768.5
Fixed
- Na chińskich, japońskich i koreańskich edycjach Windows dokumenty ze strumieniami odwołań krzyżowych, których słowniki zawierają binarne łańcuchy — na przykład sumy kontrolne załączonych plików — ładują się teraz w ułamku sekundy; portfolio 4 MB z dziewięcioma załączonymi plikami PDF otwierało się dwie minuty
- Parser szuka teraz swoich słów kluczowych w surowych bajtach pliku, a nie w tekście przepuszczonym przez stronę kodową Windows, więc dane binarne obok słowa kluczowego nie mogą już go schować ani przesunąć jego pozycji
Version 2.768.4
Fixed
- Zawartość wewnątrz Form XObject renderuje się teraz z kryciem, miękką maską i trybem mieszania, które formularz sam ustawia; wcześniej wszystko w formularzu było malowane przy pełnym kryciu, więc półprzezroczyste znaki wodne i stemple wychodziły jak pełne, nieprzezroczyste
- Formularz malowany z własnym kryciem jest nadal, jak wcześniej, składany raz jako całość
Version 2.768.3
Fixed
- Tekst strony obejmuje teraz także tekst, który strona maluje przez Form XObject — nagłówki i stopki strony, znaki wodne i stemple; wcześniej zwracano tylko tekst z własnej zawartości strony
- Tekst z formularza pojawia się tam, gdzie formularz jest malowany, jest pozycjonowany jego macierzą i czytany jego własnymi czcionkami, a formularze zagnieżdżone w formularzach też są obsługiwane
- Dotyczy to zwykłego, layoutowego, kolumnowego i semantycznego tekstu strony; ekstrakcja na poziomie glifów nadal zwraca wyłącznie glify własnej zawartości strony, bo ich pozycje wskazują właśnie na tę zawartość
Version 2.768.2
Fixed
EncryptFileiDecryptFilez AES-256 nie uszkadzają już osadzonych plików czcionek, których słownik podaje/Length1przed/Length— tak zapisują je Ghostscript i inne narzędzia; takie czcionki były szyfrowane jako pojedynczy bajt, przez co wynik stawał się nieczytelny- Strumienie, których długość jest zapisana w skompresowanym strumieniu obiektów, zachowują wszystkie dane przy szyfrowaniu i deszyfrowaniu AES-256; wcześniej ostatni bajt takiego strumienia mógł przepaść
Version 2.768.1
Fixed
- Dokumenty, których długości strumieni są zapisane wewnątrz skompresowanych strumieni obiektów — tak pisze Ghostscript — ładują się teraz w całości; wcześniej każdy strumień zawartości strony takiego pliku był wyrzucany, więc strony renderowały się puste i nie dawały tekstu
- Strumień, którego długość wskazuje na nieistniejący obiekt albo w ogóle nie ma długości, jest teraz czytany aż do znacznika końca zamiast zostać wyrzuconym
Version 2.768.0
Added
BuildLoadedPageSVGiSaveLoadedPageAsSVGprzyjmują opcjonalny parametrEmbedFonts; domyślnie jest wyłączony, a istniejące wywołania eksportują dokładnie jak wcześniej- Przy
EmbedFontsustawionym naTruetekst w czcionkach, których program TrueType albo CFF jest osadzony w PDF-ie, jest rysowany z własnych konturów glifów tej czcionki, więc SVG wygląda tak samo także na systemach, gdzie tych czcionek nie ma zainstalowanych - Każdy kontur glifu jest zapisywany raz i używany ponownie wszędzie tam, gdzie dany znak się pojawia, co trzyma rozmiar pliku w ryzach na stronach pełnych tekstu
- Tekst zostaje w SVG jako przezroczysty tekst na wierzchu konturów, więc nadal można go zaznaczać, przeszukiwać i czytać czytnikami ekranu
- Tekst z wypełnieniem, obrysem i obydwoma naraz, szerokości linii, tekst obrócony albo przeskalowany oraz tekst użyty jako ścieżka przycinająca wychodzą tak samo jak na wyrenderowanej stronie
- Czcionki nieosadzone, programy czcionek Type 1 i pionowy tekst CJK pozostają zwykłym tekstem SVG
Version 2.767.4
Fixed
- Tekst obrysowywany oraz wypełniany z obrysem (tryby renderowania tekstu 1 i 2) w czcionkach nieosadzonych honoruje teraz szerokość linii przy renderowaniu; wcześniej każdy obrys wychodził o szerokości jednego piksela, cokolwiek mówiła szerokość linii
- Takie obrysy są teraz rysowane z dokładnych kształtów glifów zainstalowanej czcionki, w dokładnych pozycjach — tak jak od dawna działał tekst wypełniany
- Znaki, których brakuje w zainstalowanej czcionce, a które Windows bierze z czcionki zapasowej, również zachowują szerokość linii przy obrysie
Version 2.767.3
Fixed
- Tekst w czcionkach nieosadzonych jest teraz rysowany tymi znakami, które nazywa jego kodowanie. Kody znaków trafiały do zainstalowanej czcionki bez zmian, a ta czytała je we własnym zestawie znaków, więc każdy wpis
/Differencesoraz kody, na których StandardEncoding albo MacRomanEncoding rozjeżdżają się z zestawem Windows, rysowały złe znaki — na przykład proste cudzysłowy zamiast typograficznych w czcionkach Type 1 bez kodowania - Na chińskich, japońskich i koreańskich edycjach Windows litery z akcentami, typograficzne cudzysłowy, znak copyright i inne znaki powyżej kodu 127 w czcionkach nieosadzonych rysowały się jako znaki zapytania od wersji 2.766.83; są znowu czytane w zestawie znaków zainstalowanej czcionki
- Czcionki Symbol zachowują własne mapowanie kodów
Version 2.767.2
Fixed
- Duże glify osadzonych czcionek są teraz renderowane również z antyaliasingiem. Glify większe niż 64 piksele — jak nagłówki i tytuły w rozdzielczościach drukarskich — były wypełniane bez niego i miały poszarpane krawędzie; teraz dostają antyaliasing do 256 pikseli, a większy tekst czcionek zainstalowanych dalej korzysta z systemowego wyjścia tekstowego z antyaliasingiem
Version 2.767.1
Fixed
- Ekstrakcja tekstu layoutowego, kolumnowego i semantycznego mierzy teraz stronę w jednostkach strony. Pozycje porównywano z rozmiarem czcionki podanym w
Tfi z przesuwami w przestrzeni tekstu, które w wielu dokumentach rozmiarujących tekst przez macierz tekstu stanowią ułamek rzeczywistych odległości, więc tekst layoutowy rozciągał każdą literę na kilka kolumn, tekst kolumnowy gubił wszystkie spacje między wyrazami, a tekst semantyczny prawie każde słowo zsyłał do osobnej linii - Wszystkie trzy zwracają teraz tylko tekst z widocznego prostokąta i rozdzielają słowa, które dokument odsuwa przez przesunięcie pozycji tekstu — tak jak zwykły tekst strony
- Tekst layoutowy trzyma litery słowa razem; szerokie litery, takie jak m czy W, wciskały mu wcześniej spację do środka
- Tekst semantyczny nie wstawia już pustej linii po każdej linii strony o jednej kolumnie: ciąg linii pełnej szerokości tworzy jedną strefę, a zmiana strefy rozdziela linie tylko wtedy, gdy dzieli je więcej niż interlinia
- Strony pomocy tych metod opisują, co zwracają, a metoda kolumnowa pokazuje pełną składnię
Version 2.767.0
Added
LoadFromFileiLoadFromStreammają przeciążenia z parametremAutoDecrypt. PrzyAutoDecryptrównym True dokument zaszyfrowany pustym hasłem użytkownika — jak dokumenty, które tylko ograniczają drukowanie, kopiowanie albo edycję — otwiera się w pamięci odszyfrowany, tak jak robią to przeglądarki, więc można ekstrahować jego tekst oraz renderować i eksportować jego strony bez podawania hasła- Dokumenty wymagające hasła oraz dokumenty nieszyfrowane ładują się dokładnie tak, jak ładują je zwykłe przeciążenia, a to, czy puste hasło otworzy dokument, jest sprawdzane po kilku małych fragmentach pliku jeszcze przed jego ładowaniem
- Jak przy przeciążeniach z hasłem, dokument otwarty w ten sposób nie jest już szyfrowany w pamięci, a jego zapis tworzy niezaszyfrowaną kopię
Version 2.766.83
Changed
- Mały tekst w czcionkach nieosadzonych — jak standardowa czternastka czy zainstalowane czcionki Office i czcionki chińskie — jest teraz renderowany z konturów glifów bez hintingu, w dokładnej pozycji i z tym samym antyaliasingiem co czcionki osadzone. Używane wcześniej systemowe wyjście tekstowe stawiało każdy glif na całym pikselu i dopasowywało jego kształt do siatki pikseli, więc mały tekst miał nierówne odstępy i wyglądał na poplamiony; renderowane strony pasują teraz do kształtów i odstępów innych przeglądarek znacznie lepiej
- Glify, których brakuje w zainstalowanej czcionce, oraz duże glify są nadal rysowane systemowym wyjściem tekstowym, które potrafi wziąć brakujące znaki z czcionek powiązanych
Fixed
- Małe glify osadzonych czcionek rysują się szybciej, bo bitmapy stojące za ich antyaliasingiem są używane ponownie, zamiast być tworzone od zera dla każdego glifu
Version 2.766.82
Fixed
- Tekst rysowany zainstalowanymi czcionkami na renderowanych stronach używa teraz antyaliasingu w skali szarości. Wcześniej podążał za systemowym ustawieniem ClearType, więc czarny tekst w renderowanych bitmapach nosił czerwono-niebieskie obwódki zależne od maszyny, które zostawały w zapisywanych, drukowanych i skalowanych obrazach
Version 2.766.81
Fixed
- Mały tekst w osadzonych czcionkach CFF i OpenType CFF jest teraz renderowany z antyaliasingiem, tak jak tekst TrueType już wcześniej. Te glify były wypełniane bez antyaliasingu, więc przy małych rozmiarach i typowych rozdzielczościach ekranu trzonki węższe od piksela znikały, a tekst główny rozpadał się na fragmenty; formularze i dokumenty złożone czcionkami takimi jak Helvetica Neue są teraz czytelne przy 72 DPI
Version 2.766.80
Changed
- Ekstrakcja tekstu strony zwraca tylko tekst, który strona faktycznie pokazuje. Glify leżące poza widocznym obszarem — crop boxem w obrębie media boxa — są pomijane, więc znaki drukarskie, linie montażowe i inna zawartość poza przyciętą stroną nie trafiają już do wyekstrahowanego tekstu. Ekstrakcja na poziomie glifów nadal zwraca każdy glif wraz z pozycją
Version 2.766.79
Fixed
- Ekstrakcja tekstu strony nie łamie już linii na podniesionej indeksie górnym ani lekko przesuniętej linii bazowej w tekście rozmiarowanym przez macierz tekstu. Nowa linia była zaczynana za każdym razem, gdy tekst przesunął się w górę albo w dół o połowę rozmiaru czcionki podanego w
Tf— w takich dokumentach to często 1, więc wystarczył ruch o pół punkta - Tekst obrócony — jak etykiety biegnące wzdłuż boku strony czy ukośne znaki wodne — nie zsyła już każdego znaku do osobnej linii. Linie rozróżnia się teraz po ruchu w poprzek kierunku biegu tekstu, porównywanym z połową wysokości tekstu na stronie
Version 2.766.78
Fixed
- Gdy eksport SVG schodzi do rodziny ogólnej dla czcionki, której nie ma w systemie, najpierw podaje teraz typowy krój tego rodzaju: Times New Roman przed
serif, Arial przedsans-serifi Courier New przedmonospace. Przeglądarka dobiera krój dla samej rodziny ogólnej według własnych ustawień językowych, a chińskie czy japońskie przeglądarki wybierały czcionki CJK, których szerokie litery łacińskie nakładały się na pozycjach wziętych z PDF-u
Version 2.766.77
Fixed
- Eksport SVG podaje teraz zainstalowane chińskie rodziny czcionek dla czcionek znanych pod historycznymi nazwami GB2312, takich jak
KaiTi_GB2312albo jego chińska pisownia. Aplikacje Windows sięgają do tych czcionek przez systemowe podstawienia czcionek, przeglądarki nie, więc taki tekst pokazywał się domyślną czcionką przeglądarki - Czcionka nazywana tylko w jednym języku dostaje też drugą nazwę zainstalowanej rodziny — na przykład SimHei razem z chińską nazwą — oraz pasującą stylistycznie rodzinę ogólną
Version 2.766.76
Added
THPDFGlyphRecordma polaGlyphEndXiGlyphEndY— koniec własnej szerokości glifu wzdłuż linii bazowej w przestrzeni strony, bez odstępów międzyliterowych i międzywyrazowych
Fixed
- Ekstrakcja tekstu strony rozdziela teraz słowa, które dokument odsuwa przez przesunięcie pozycji tekstu zamiast pokazać znak spacji. Wielu producentów zapisuje
[(PDF)-240(Reference)]albo stawia każde słowo osobnym operatorem pozycjonowania, a takie słowa sklejały się wcześniej wPDFReference - Spacja jest dodawana tam, gdzie luka za własną szerokością glifu przekracza 0,15 wysokości tekstu — mierzone w jednostkach strony, żeby tekst rozmiarowany przez macierz tekstu był traktowany tak samo jak tekst rozmiarowany przez rozmiar czcionki
- Kerning, lekko poluzowane odstępy, zacieśniona interlitera oddawana przez korekty pozycji, tekst drukowany nakładkowo i prawdziwe znaki spacji zostają jak są, a między dwoma znakami chińskimi, japońskimi albo koreańskimi spacja nie jest dodawana, choćby justowanie rozsunęło je jak daleko
Version 2.766.75
Fixed
- Ekstrakcja tekstu, eksport SVG i renderowanie rozpoznają teraz nazwy glifów czcionki Symbol, takie jak
copyrightsans,registerserif,trademarksansoraz części dużych nawiasów i klamer (parenlefttp,braceex,integralex, ...). Czcionki Symbol zredukowane do podzbioru zwykle przekodowują te nazwy, a znaki wychodziły jako surowe kody sterujące - Wszystkie nazwy glifów ITC Zapf Dingbats (od
a1doa206) też są rozpoznawane, więc ptaszki, krzyżyki, strzałki i numerki w kółkach, które czcionka wybiera przez te nazwy — jak często robią to pola formularzy i listy wypunktowania — są ekstrahowane jako ich znaki Unicode - Przy wyszukiwaniu nazwy glifu dla znaku nadal wygrywa nazwa pospolita, taka jak
arrowrightczyspade, a nie nazwa ZapfDingbats
Version 2.766.74
Fixed
HPDFExtractGlyphsViaDevicenie wysypuje się już od nieprawidłowej operacji na wskaźniku. Urządzenie ekstrakcji tekstu tworzone przez tę funkcję ma licznik referencji, a funkcja zwalniała je dodatkowo ręcznie, więc każde wywołanie kończyło się drugim zwolnieniem urządzenia
Version 2.766.73
Fixed
- Ekstrakcja tekstu przywraca teraz stan tekstu przez
Q, jak wymaga specyfikacja (ISO 32000-1 9.3.1). Wcześniej przywracana była tylko transformacja, więc czcionka, interlitera albo interlinia ustawione wq...Qdziałały dalej dla kolejnego tekstu - Gdy czcionka wybrana w
q...Qużywała kodów dwubajtowych, a czcionka poza nim jednobajtowych, tekst poQbył dekodowany jako dwubajtowy i ginął. Tak piszą strony Word i podobni producenci — typowo gubiły się wypełnienia spisu treści i łacińskie słowa między chińskimi fragmentami - Poprawka obejmuje i API tekstu strony, i interfejs ekstrakcji tekstu oparty na urządzeniach
Version 2.766.72
Fixed
- Tekst rysowany po
RestoreStatema teraz zawsze wybraną czcionkę. Strona pomija wybór czcionki, który powtarza ostatni zapisany, ale nie brała pod uwagę, żeRestoreState(operatorQ) wraca do czcionki obowiązującej przedSaveState. Tekst pokazywany poRestoreStateczcionką wybraną wewnątrz pary wychodził bez czcionki albo ze złą, więc przeglądarki mogły go gubić, a ekstrakcja tekstu nie potrafiła go odczytać - Interlitera, odstępy międzywyrazowe, skalowanie poziome i interlinia podążają za
SaveStateiRestoreStatetak samo, więc wartość ustawiona ponownie poRestoreStatejest zapisywana, zamiast zostać pominiętą, gdy czytnik zdążył już wrócić do wartości wcześniejszej - Wybór czcionki Type 3 nie powoduje już pominięcia następnego wyboru poprzedniej czcionki
- Dotknięte były dokumenty XPS konwertowane do PDF, bo każdy bieg glifów jest rysowany wewnątrz własnego zapisanego stanu grafiki
Version 2.766.71
Fixed
- Ekstrakcja tekstu i eksport SVG czytają kody prostej czcionki (Type 1, TrueType albo Type 3) jako dwa bajty, gdy jej CMap
/ToUnicodedeklaruje dwubajtową przestrzeń kodów — tak zapisują niektórzy producenci przy każdej czcionce. Kody czcionek prostych są zawsze jednobajtowe (ISO 32000-1 9.6.6), więc każda para znaków była brana za jeden nieznany kod i większość tekstu znikała, zostając tylko w postaci ciągów pojedynczych znaków
Version 2.766.70
Fixed
- Eksport SVG przesuwał tekst o argumenty
Td,TD,T*,'i"w jednostkach strony zamiast w przestrzeni tekstu (ISO 32000-1 9.4.2). Tekst o rozmiarze wziętym z macierzy tekstu — z1 Tfi przeskalowanymTm, jak często piszą procesory tekstu — miał linie stosujące się jedna na drugiej przy pierwszej linii bazowej; teraz układa się jak w PDF-ie - Ta sama korekta dotyczy tekstowego ekstraktora urządzenia zawartości
THPDFTextExtractDevice
Version 2.766.69
Fixed
- Renderer stron przekazywał Windows nazwy czcionek zawierające sekwencje
#xxrazem z tymi sekwencjami, więc nieosadzone czcionki tak nazwane — częste wśród czcionek CJK, jak KaiTi_GB2312 zapisywane znakami chińskimi — nie pasowały do żadnej zainstalowanej czcionki i były rysowane krojem zastępczym. Sekwencje są teraz dekodowane; nazwy UTF-8 zachowują swoje znaki, a pozostałe bajty są czytane w systemowej stronie kodowej
Version 2.766.68
Fixed
- Eksport SVG zapisywał nazwy czcionek z sekwencjami
#xxjako same sekwencje, więc nazwy czcionek CJK przechowywane jako bajty UTF-8 — jak nazwa KaiTi_GB2312 w znakach chińskich — trafiały dofont-familyjako#e6#a5#b7...i nigdy nie pasowały do zainstalowanej czcionki. Sekwencje są teraz dekodowane; nazwa będąca poprawnym UTF-8 zostaje zachowana, a bajty innych kodowań są wyrzucane jak wcześniej
Version 2.766.67
Fixed
- Eksport SVG nie przywracał stanu tekstu przy
Q: czcionka, rozmiar, odstępy, skalowanie, interlinia, podniesienie i tryb renderowania ustawione wq...Qprzenosiły się na kolejny tekst. Strony, które pogrubiały nagłówek przez2 Trw zapisanym stanie, rysowały cały dalszy tekst główny obrysowany i ciężki. Stan tekstu jest teraz zapisywany i przywracany razem z resztą stanu grafiki (ISO 32000-1 9.3.1)
Version 2.766.66
Fixed
- Eksport SVG obrysowywał tekst w trybach renderowania z obrysem (1, 2, 5 i 6) bez podanej szerokości obrysu, więc obowiązywała domyślna wartość SVG jednej jednostki przestrzeni tekstu; tekst, który producenci PDF pogrubiają cienkim obrysem — jak
2 Tr 0.25 w— wychodził znacznie cięższy. Szerokość linii jest teraz przeliczana z przestrzeni użytkownika do przestrzeni elementu tekstowego, szerokość zero daje linię o szerokości piksela, a połączenie linii zostaje zachowane
Version 2.766.65
Fixed
- Dokumenty, których trailer podaje
/Encryptjako słownik bezpośredni zamiast referencji — tak tworzą je niektóre programy — były ładowane jako niezaszyfrowane: nawet z właściwym hasłem ich strony renderowały się puste, ekstrakcja tekstu i eksport SVG nie zwracały nic, aSaveLoadedDocumentzapisywał uszkodzony plik, który wyrzucał/Encrypt, ale zostawiał zaszyfrowane strumienie. Teraz takie dokumenty otwierają się, deszyfrują i zapisują jak dokumenty z pośrednim słownikiem szyfrowania - Loader odwołań krzyżowych ucinał trailer na pierwszym
>>, więc wpisy po zagnieżdżonym słowniku w trailerze ginęły; teraz czyta trailer aż do pasującego domknięcia
Version 2.766.64
Fixed
- Renderowanie, eksport SVG, przeglądarka i drukowanie pokazywały cały
/MediaBoxzaładowanej strony. Strona jest wyświetlana i drukowana przez swój/CropBox, przycięty do/MediaBox(ISO 32000-1 14.11.2), więc strony z crop boxem wychodziły za duże, przesunięte i z zawartością, która miała zostać ukryta RenderLoadedPageToBitmap, renderery kafelkowy, pasowy, metafilowy i kontekstu urządzenia,BuildLoadedPageSVG, geometria stron, podświetlenia i migawki regionów w przeglądarce oraz drukowanie obejmują teraz widoczny prostokąt; strony bez/CropBoxpozostają bez zmian
Added
THotPDF.GetLoadedPageVisibleBoxzwraca widoczny prostokąt załadowanej strony — jej/CropBoxprzycięty do/MediaBoxTHPDFPageDisplayList.CropBoxpodaje ten sam prostokąt dla skompilowanej listy wyświetlania
Version 2.766.63
Fixed
- Wbudowana lista glifów była przeszukiwana do liczby o 13 wpisów mniejszej niż tabela, więc nazwy glifów sortujące się na końcu (
y,z,zero,zeta,yen,ydieresis,zcaroni inne) nigdy nie były znajdowane. Ekstrakcja tekstu ignorowała wpisy/Differencesczcionki je nazywające, a renderer stron rysował y, z i 0 osadzonych czcionek CFF zWinAnsiEncodingalboMacRomanEncodingsystemową czcionką zastępczą - Wyszukiwanie nazwy glifu akcentu, takiego jak U+0060, zwracało nazwę kapitalika z MacExpertEncoding (
Gravesmall) zamiastgrave, więc tych akcentów brakowało też w osadzonych czcionkach CFF
Version 2.766.62
Fixed
- Renderer stron traktował szerokość linii i długości kresek jako piksele urządzenia zamiast jednostek przestrzeni użytkownika (ISO 32000-1 8.4.3.2 i 8.4.3.6); linie miały tę samą szerokość w pikselach w każdej rozdzielczości i ignorowały ewentualne skalowanie z
cm. Slajdy eksportowane przez macOS Quartz — które obrysowują kształty szerokością w EMU przy skali 1/12700 — były zakryte w całości kolorem obrysu - Szerokość obrysu i kreski podążają teraz za skalą CTM obowiązującą w momencie obrysowania ścieżki, także dla tekstu rysowanego w trybie renderowania z obrysem
Version 2.766.61
Fixed
- Eksport SVG pomijał cieniowania funkcyjne Type 1 (ISO 32000-1 8.7.4.5.2), czy malowane przez
sh, czy używane we wzorze cieniowania; teraz funkcja cieniowania jest próbkowana po jego/Domaindo osadzonego obrazu PNG, umieszczanego przez/Matrixcieniowania, przycinanego do jego/BBox, z kolorem tła wzoru pod spodem
Version 2.766.60
Fixed
- Renderer stron malował kolor
/Backgroundcieniowania siatkowego pokazywanego operatoremsh, który PDF ignoruje (ISO 32000-1 8.7.4.5.1), więc cały obszar przycinania wokół siatki łapał ten kolor - Kolor tła wzorów cieniowania funkcyjnych, osiowych i promienistych nie był malowany przez renderer stron; teraz wypełnia obszar wzoru przed cieniowaniem, więc widać go wszędzie tam, gdzie cieniowanie nie sięga
- Eksport SVG maluje teraz kolor tła wzorów cieniowania tak samo i, jak renderer, ignoruje go przy
sh
Version 2.766.59
Fixed
- Renderer stron ignorował
/BBoxcieniowań funkcyjnych, osiowych i promienistych (ISO 32000-1 8.7.4.5.1); rozszerzone cieniowanie malowane przezshalbo użyte we wzorze cieniowania zakrywało cały obszar przycinania zamiast skończyć się na swoim prostokącie. Cieniowania siatkowe honorowały go już wcześniej
Version 2.766.58
Fixed
- Eksport SVG zapisywał tekst w czcionkach Type 3 jako tekst SVG w zainstalowanej czcionce, więc strony rysujące swoje znaki albo symbole procedurami glifów pokazywały złe kształty; teraz rysuje procedurę każdego glifu, pozycjonowaną przez
/FontMatrixczcionki, rozmiar czcionki i macierz tekstu (ISO 32000-1 9.6.5) - Glify Type 3 zaczynające się od
d1są malowane aktualnym kolorem wypełnienia, a glify ustawiające własne kolory zachowują je
Version 2.766.57
Fixed
- Ekstrakcja tekstu i eksport SVG brały
/Widthsczcionki Type 3 za tysięczne em, choć są one w przestrzeni glifów i skalowane przez/FontMatrixczcionki (ISO 32000-1 9.6.5); glify czcionki z macierzą[0.01 0 0 0.01 0 0]były stawiane co dziesiątą część własnej szerokości, co przy okazji sklejało słowa w wyekstrahowanym tekście
Version 2.766.56
Fixed
- Renderowanie załadowanej strony czytało każdą czcionkę Type 0 tak, jakby używała
Identity-H— dwa bajty na kod i każdy kod jako osobny CID. Czcionki zakodowane predefiniowanymi CMap UCS2 i UTF16 z kolekcji chińskich, japońskich i koreańskich, takimi jakUniGB-UCS2-H, albo z osadzoną CMap mapują teraz swoje kody na CID-y, więc szerokości z/Wi osadzone glify są wyszukiwane pod właściwymi CID-ami; wcześniej na przykład małe litery łacińskie w tekścieSTSong-Lightbyły rozsunięte o pełne em - Kody są czytane według zakresów codespace CMap, więc kody jedno- i czterobajtowe (pary surogatów) są czytane w całości, a nazwy kończące się na
-Vwybierają pionowy zapis
Version 2.766.55
Fixed
- Renderowanie załadowanej strony rysowało czcionki nieosadzone noszące w nazwie część stylową albo pisownię PostScript — takie jak
TimesNewRoman,Bold,TimesNewRomanPS-BoldMT,Arial,BoldItalicczySegoeUI-Semibold— krojem zastępczym; część rodzinna nazwy jest teraz wyszukiwana wśród czcionek zainstalowanych, także ze spacjami między słowami (Times New Roman, Segoe UI), a styl pochodzi z nazwy i deskryptora czcionki
Version 2.766.54
Fixed
- Czcionki standardowe bez tablicy
/Widths— na co ISO 32000-1 9.6.2.2 pozwala dla standardowej czternastki — były składane stałym przesuwem pół em przy renderowaniu załadowanej strony, eksporcie do SVG i ekstrakcji tekstu, więc litery tłoczyły się na sobie; rodziny Helvetica, Times i Courier, również pod nazwami Arial, TimesNewRoman i CourierNew, biorą teraz szerokości z zainstalowanych Arial, Times New Roman i Courier New, które dzielą z nimi metryki - Standardowa czcionka Type 1 bez
/Encodingdekoduje teraz przez implikowane StandardEncoding, więc na przykład kod 39 czyta się jako pojedynczy cudzysłów zamykający
Version 2.766.53
Fixed
- Renderowanie załadowanej strony ignorowało tablicę
/Widthsczcionki, gdy była obiektem pośrednim — tak zapisuje ją wielu producentów — i składało tekst stałym przesuwem pół em; taki tekst jest teraz rozstawiany według swoich szerokości - Deskryptory czcionek podane jako obiekty pośrednie są teraz czytane przy renderowaniu, więc flagi
ForceBoldiItalicoraz kąt pochylenia czcionek nieosadzonych zaczynają działać - Flaga
SmallCapnie pogrubia już tekstu: pogrubienie podąża teraz za flagąForceBold(ISO 32000-1 Table 123)
Version 2.766.52
Fixed
- Renderowanie załadowanej strony przycina teraz do tekstu pokazywanego w trybach renderowania od 4 do 7 (ISO 32000-1 9.3.6): glify stają się częścią ścieżki przycinającej na końcu obiektu tekstowego, dopóki stan grafiki nie zostanie przywrócony. Wcześniej tekst trybu 7 był ignorowany, a cieniowanie albo obraz mające prześwitywać przez litery zakrywały cały obszar; tryby od 4 do 6 malowały tekst bez przycinania
- Tekst przycinający jest brany z tych samych konturów glifów co tekst malowany — łącznie z czcionkami osadzonymi i glifami Type 3
Version 2.766.51
Fixed
- Eksport SVG przycina teraz do tekstu pokazywanego w trybach renderowania od 4 do 7 (ISO 32000-1 9.3.6): glify stają się ścieżką przycinającą SVG od końca obiektu tekstowego do końca stanu grafiki, więc cieniowanie albo obraz rysowany przez tekst pojawia się tylko wewnątrz liter
- Tekst w trybie renderowania 7 nie ginie już bez żadnego przycięcia, a tryby od 4 do 6 nadal wypełniają albo obrysowują tekst, jak robią to tryby od 0 do 2
Version 2.766.50
Fixed
- Cieniowania osiowe, promieniste i funkcyjne, których
/Functionjest tablicą funkcji o jednym wyjściu — po jednej na składową koloru (ISO 32000-1 8.7.4.5.1) — nie były rysowane przy renderowaniu załadowanej strony; teraz są rysowane, przy funkcjach tablicy podanych bezpośrednio albo jako obiekty pośrednie - Eksport SVG zapisuje takie cieniowania osiowe i promieniste jako gradienty, także gdy wypełniają ścieżkę przez wzór cieniowania
Version 2.766.49
Fixed
- Eksport SVG zapisywał tekst pogrubiony i pochylony stylem zwykłym: tekst dostaje teraz
font-weight="bold"ifont-style="italic"z części stylowej nazwy czcionki — takiej jakArial-BoldMT,Helvetica-ObliqueczyMinionPro-It— oraz z wagi, flag i kąta pochylenia deskryptora czcionki - Czcionki spoza standardowej czternastki były zapisywane z częścią stylową w nazwie rodziny (
SegoeUI-Semibold), która nie pasuje do żadnej zainstalowanej czcionki; rodzina jest teraz nazywana osobno i ze spacjami między słowami (SegoeUI, Segoe UI), a za nią podąża rodzina ogólna wybrana z flag deskryptora albo z nazwy
Version 2.766.48
Fixed
- Eksport SVG rysował zawartość form XObject na czarno zamiast kolorami wypełnienia i obrysu obowiązującymi w miejscu malowania formularza (ISO 32000-1 8.10.1);
Qwewnątrz formularza przywraca teraz również te kolory - Urządzenia zawartości mogą zaczynać zagnieżdżoną zawartość od kolorów wywołującego przez nowy interfejs
IHPDFContentInheritedColorDevice
Version 2.766.47
Added
- Eksport SVG wypełnia teraz ścieżki używające wzoru kafelkowego SVG-owym
<pattern>, który powtarza komórkę wzoru w odstępachXStepiYStep, przycinając do/BBoxkomórki; wcześniej takie ścieżki były wypełniane na czarno albo zachowywały poprzedni kolor - Wzory kafelkowe bezbarwne (
PaintType2) malują komórkę kolorem podanym razem ze wzorem — jak składowe w/CS0 cs 0 0 1 /P1 scn - Ścieżki wypełniane wzorem cieniowania dostają cieniowanie osiowe, promieniste albo siatkowe tego wzoru, przycięte do ścieżki
- Macierz wzoru jest stosowana w przestrzeni strony albo formularza używającego wzoru (ISO 32000-1 8.7.2), więc wzory nie skalują się ani nie przesuwają razem z bieżącą macierzą transformacji, a
Qprzywraca wzór zapisany przezq - Urządzenia zawartości mogą otrzymywać wybory wzorów przez nowy interfejs
IHPDFContentPatternDevice
Version 2.766.46
Added
- Obrazy z tablicą
/Masktypu color-key (ISO 32000-1 8.9.6.4) są teraz maskowane przy renderowaniu załadowanej strony: piksele, których wszystkie składowe wpadają w zakresy klucza, pozostają niepomalowane, więc przebija spod nich strona - Eksport SVG stosuje te same maski color-key i zapisuje takie obrazy jako obrazy PNG z kanałem alfa
- Klucz jest porównywany z próbkami takimi, jakie są zapisane, więc obraz Indexed maskuje według indeksu palety nawet wtedy, gdy dwa wpisy dzielą ten sam kolor, a objęte są też obrazy o 1, 2 i 4 bitach na składową
- Nowa metoda
DecodeLoadedImageColorKeyMaskzwraca maskę załadowanego obrazu jako bitmapę czarno-białą; obejmuje obrazy Flate, LZW i niefiltrowane, bo kodeki stratne nie zachowują dokładnych wartości próbek
Version 2.766.45
Changed
CompressDocumentiCompressLoadedDocumentpozwalają każdemu strumieniowi obiektów pomieścić do 250 obiektów zamiast 100; mniej, za to większe kontenery kompresują się lepiej i potrzebują mniej słowników- Załadowane PDF-y już wcześniej zapisane kompaktowo strumieniami obiektów wychodzą teraz w rozmiarze mniej więcej oryginału — większość lekko mniejsza — zamiast lekko większe
- Limit ustawiony przez
ConfigureAdaptiveObjectStreamPackingjest zachowywany,CompressDocumentprzywraca limit przyEndDoc, a zwykłe zapisy ze strumieniami obiektów dalej trzymają 100 obiektów na kontener
Version 2.766.44
Changed
- Strumień odwołań krzyżowych plików zapisywanych ze strumieniami obiektów używa najmniejszej szerokości pola, jakiej potrzebuje każda kolumna, więc przesunięcia w plikach poniżej 16 MB zajmują 3 bajty zamiast 4 (ISO 32000-1 7.5.8.2), a jego słownik jest zapisywany kompaktowo
- Pliki zapisywane ze strumieniem odwołań krzyżowych, ale bez strumieni obiektów, pozostają bez zmian
Version 2.766.43
Changed
- Nieszyfrowane pliki zapisywane ze strumieniami obiektów pakują teraz także katalog dokumentu i słownik informacji o dokumencie do strumieni obiektów, gdzie są kompresowane; ISO 32000-1 7.5.7 wyłącza z tego tylko słownik szyfrowania
- Szyfrowane pliki trzymają oba słowniki na najwyższym poziomie, jak wcześniej
Version 2.766.42
Changed
- Pliki zapisywane ze strumieniami obiektów, w tym te z
CompressDocumentiCompressLoadedDocument, zapisują słowniki i tablice kompaktowo, pomijając spacje i łamania wierszy, których składnia PDF nie potrzebuje (ISO 32000-1 7.2.2); najwięcej zyskują słowniki strumieni, które nie mogą trafić do strumieni obiektów i pozostają nieskompresowane - Słowniki podpisów i słownik szyfrowania zachowują układ ze spacjami, więc podpisywanie dokumentu zapisanego ze strumieniami obiektów działa jak wcześniej
- Pliki zapisywane bez strumieni obiektów nie zmieniają się ani na bajt
Version 2.766.41
Fixed
- Pliki PDF zapisywane ze strumieniami obiektów nie zaczynają się już od podwójnego nagłówka
%PDF-i linii komentarza binarnego; dotyczyło to każdego zapisu zUseObjectStreams,CompressDocumentalboCompressLoadedDocument - Przeglądarki tolerowały zduplikowany nagłówek, ale ścisłe walidatory mogły go zgłosić, a kosztował 15 bajtów na plik
Version 2.766.40
Fixed
- Załadowane PDF-y, które trzymają goły numer w strumieniu obiektów — tak wiele producentów zapisuje długości strumieni — można teraz edytować i zapisywać; każda zmiana przerywała wcześniej zapis komunikatem "Cannot rewrite compressed object N: the source member could not be loaded"
- Taki numer jest teraz czytany jako liczba; wcześniej parser szukał za końcem członka referencji pośredniej i się poddawał, więc członka nie dało się w ogóle załadować
- Zapisywanie takiego pliku bez zmian nie było dotknięte, bo niezmieniony plik jest kopiowany w takiej postaci, w jakiej jest
Version 2.766.39
Fixed
- Adnotacje stempla w dokumentach PDF/A-2 i nowszych oraz PDF/X-6 pokazywały tylko swoją ramkę, bez nazwy stempla takiej jak APPROVED czy CONFIDENTIAL
- Nazwa jest teraz rysowana aktualną czcionką strony — tę samą, która jest osadzana razem z tekstem strony — wielkimi literami i w kolorze adnotacji, wyśrodkowana w prostokącie
- Długie nazwy takie jak NOTFORPUBLICRELEASE dostają mniejszy rozmiar, żeby zmieściły się w szerokości prostokąta
- Dokumenty nadal przechodzą walidację PDF/A; stemple w innych dokumentach są zapisywane jak wcześniej
Version 2.766.38
Added
- Nowe przeciążenie
CompressLoadedDocumentz opcjami, które robią załadowany PDF tak małym, jak się da, bez zmiany jego wyglądu: wyrzuca nieużywane zasoby stron, scala identyczne czcionki i formularze, tworzy podzbiory osadzonych czcionek, rekompresuje strumienie algorytmem Flate i sprawia, że następny zapis używa strumieni obiektów - Każdy krok jest bezstratny, a obrazy nie są resamplingowane ani rekompresowane; dokument trójstronicowy z osadzonymi w całości czcionkami Arial i SimSun zmniejsza się z około 10 MB do około 20 KB, a trzy inne przykładowe PDF-y zmniejszyły się o 15-50%
- Dokumenty z polami podpisu są domyślnie odrzucane i pozostawiane bez zmian, bo każdy krok przepisuje podpisane bajty;
AllowSignatureInvalidationkompresuje je mimo wszystko SubsetLoadedFontszyskuje opcjęCompactTrueTypeSubsets, domyślnie wyłączoną, która buduje kompaktowe podzbiory czcionek TrueType używanych przez czcionki CIDFontType2 z tożsamościowym mapowaniem CID; czcionki kolorowe i czcionki z/CIDSetzachowują zwykły podzbiór- Bezparametrowe
CompressLoadedDocumentzachowuje swoje zachowanie polegające na rekompresji wyłącznie strumieni bez filtra
Version 2.766.37
Added
- Nowa właściwość
CompressDocument, domyślnie wyłączona: jeden przełącznik, który zapisuje następny dokument tak małym, jak się da, bez zmiany jego wyglądu - Dla tego dokumentu włącza kompresję Flate na poziomie maksymalnym, strumień odwołań krzyżowych ze strumieniami obiektów (ISO 32000-1 7.5.7 i 7.5.8), tworzenie podzbiorów czcionek i kompaktowe podzbiory czcionek; dokument trójstronicowy z mieszanym tekstem angielskim i chińskim zmniejsza się z około 10 MB do około 20 KB
- Strumienie obiektów wymagają PDF 1.5, więc starszy
Versionjest podnoszony do 1.5, chyba że wersja jest zablokowana; wyjście PDF/A-1 zachowuje swoją klasyczną tablicę odwołań krzyżowych - Własne ustawienia pozostają nietknięte: po
EndDocwłaściwościCompression,CompressionLevel,UseXRefStream,UseObjectStreams, opcje tworzenia podzbiorów czcionek i wersja odczytują się z powrotem tak, jak je ustawiono - Obrazy nie są resamplingowane ani rekompresowane
Version 2.766.36
Added
- Nowa właściwość
CompactFontSubsetting, domyślnie wyłączona: podzbiory czcionek ponownie numerują zachowywane glify, więc osadzona czcionka nie niesie już wpisu dla każdego glifu czcionki źródłowej; jawny strumień/CIDToGIDMapmapuje kody glifów strony na ponumerowane glify (ISO 32000-1 9.7.4.2) - Najbardziej kurczą się czcionki CJK: dwa znaki chińskie w SimSun zajmują około 3 KB danych czcionki zamiast około 25 KB, a dokument w Microsoft YaHei spada ze 114 KB do 6 KB
- Dotyczy czcionek TrueType zapisywanych jako czcionki Type 0 przy włączonym
EnableFontSubsettingoraz czcionki rejestrowanej przezRegisterUnicodeTTF, która do tej pory dostawała kompaktowe podzbiory tylko pod PDF/A - Zawartość strony, szerokości glifów i ekstrakcja tekstu się nie zmieniają; czcionki OpenType-CFF zachowują zwykły podzbiór, a czcionka, której nie da się skompaktować, wraca do niego
Version 2.766.35
Fixed
- Tekst rysowany z jawnym przyrostem dla każdego znaku nie przesuwa się już po znaku spoza Basic Multilingual Plane, takim jak symbol muzyczny albo emoji, gdy zarejestrowana czcionka Unicode go obejmuje. Każdy kolejny znak brał wcześniej przyrost swojego sąsiada; teraz znak przesuwa się o sumę swoich dwóch wpisów
- Justowane pola tekstu Unicode zawierające takie znaki wyrównują się do krawędzi pola, a podkreślenie albo przekreślenie tego tekstu ma długość tekstu
Version 2.766.34
Added
- Eksport SVG rysuje teraz maski obrazów (
/ImageMask), łącznie z inline'owymi, jako szablony w bieżącym kolorze wypełnienia: części, które nie są malowane, są przezroczyste zamiast być rysowane jako czarno-biały obrazek - Obrazy z miękką maską
/SMaskalbo jawnym szablonem/Masksą eksportowane jako obrazy PNG z kanałem alfa, więc ich zamaskowane części nie zasłaniają już tego, co leży za nimi /Decode [1 0]na masce albo masce obrazu jest respektowane, a maska drobniejsza niż jej obraz zachowuje swoją szczegółowość
Version 2.766.33
Fixed
- Renderowanie stron respektuje teraz jawny szablon
/Maskobrazu: części pokryte maską pozostają niezamalowane zamiast rysowania całego obrazu, także wtedy, gdy obraz jest obrócony albo odbity lustrzanie - Tablica
/Decode [1 0]na masce odwraca to, które części są zachowywane - Miękkie maski i maski drobniejsze niż ich obraz są nakładane w rozdzielczości maski, więc szczegółowa 1-bitowa maska na zdjęciu o niskiej rozdzielczości zachowuje swoje krawędzie
Version 2.766.32
Fixed
- Renderowanie stron rysuje teraz obrazy przez pełną macierz transformacji: obrazy obrócone o ćwierć obrotu albo o dowolny inny kąt, obrazy odbite lustrzanie i każdy obraz na stronie z
/Rotatenie są już rysowane wyprostowane i bez odbicia w swoim prostokącie otaczającym - Maski obrazów (
/ImageMask true) są teraz malowane jako szablony w bieżącym kolorze wypełnienia, z wygładzonymi krawędziami przy zmniejszaniu, zamiast być rysowane jako szary obrazek - Maski obrazów z
/Decode [1 0]malują teraz próbki o wartości 1, jak określa PDF - Inline'owe maski obrazów (
BI /IM true) są znowu rysowane, a ich tablica/Djest respektowana - Obrazy z miękką maską zachowują maskę przy obrocie albo odbiciu lustrzanym
Version 2.766.31
Added
- Eksport SVG konwertuje teraz kolory ustawione operatorem
k/K(DeviceCMYK) orazcs/sc/scnw dowolnej nazwanej przestrzeni barw: kolory ICCBased, kalibrowane, Lab, Indexed, Separation i DeviceN wychodzą takimi, jakimi pokazuje je renderer strony, zamiast czerni - Wybranie przestrzeni barw przez
cs/CSustawia teraz jej kolor początkowy, na przykład pełne zabarwienie dla koloru dodatkowego (spot), a przywrócenie stanu grafiki przezQprzywraca kolor ustawiony w ten sposób - Przestrzenie barw odwołujące się przez referencję do profili ICC, tablic wyszukiwania albo funkcji zabarwienia są rozwiązywane przez eksportowany dokument podczas eksportu SVG
- Wyliczanie ścieżek zgłasza teraz kolory wypełnienia i kreślenia CMYK zamiast trzymać poprzedni kolor
Version 2.766.30
Fixed
- THPDFEmfPatcher.RenderEmfDirect rysuje bitmapy metapliku rozszerzonego (EMF) w tym samym rozmiarze i na tej samej pozycji przy dowolnej wartości Resolution. Przy Resolution innej niż 72 wychodziły przeskalowane przez 72 / Resolution
Version 2.766.29
Added
- Eksport SVG stosuje teraz ścieżki przycinania
WiW*: każda staje się ścieżką clip path w SVG, obejmującą to, co jest rysowane po niej, dopóki stan grafiki nie zostanie przywrócony, więc obrazy, cieniowania i ścieżki przycinane przez PDF nie są już rysowane w całości - Form XObjects są przycinane do swojego
/BBoxw eksporcie SVG, a cieniowania osiowe i promieniste do swojego/BBox - Przycinanie parzysto-nieparzyste (
W*) zachowuje swoją regułę wypełniania, a ścieżka malowana razem zWjest rysowana, zanim nowe przycinanie zacznie działać, jak określa PDF
Version 2.766.28
Fixed
- Wykresy rysowane przez DrawChart zachowują swój układ przy dowolnej wartości Resolution. Ich marginesy, tytuły, etykiety osi i grubości linii są wartościami w punktach i kurczyły się wraz z rozdzielczością
- Domyślna czcionka nowej strony, a także strony, która ponownie staje się bieżąca, to przy dowolnej Resolution 12 punktów zamiast 12 jednostek rysowania
- Nakładka diagnostyki układu zachowuje grubość linii i rozmiar etykiet przy dowolnej Resolution
Version 2.766.27
Fixed
- DrawInlineImage i DrawFormXObject wymiarują obraz albo formularz w jednostkach rysowania, podobnie jak jego pozycję. Przy Resolution innej niż 72 szerokość i wysokość były traktowane jako punkty, więc obiekt wychodził za duży
Version 2.766.26
Fixed
- Strona, która znowu staje się bieżąca przez CurrentPageNumber, dalej rysuje w jednostkach, w których była składana. Przy Resolution innej niż 72 przełączała się na punkty, więc wszystko narysowane na niej później wychodziło w złym rozmiarze i na złej pozycji
- Strona zachowuje też swoją własną wartość Resolution, gdy jest odwiedzana ponownie
Version 2.766.25
Fixed
- Obrazy umieszczane przez ShowImage zachowują rozmiar na stronie wymiarowanej przez Width i Height, gdy Resolution dokumentu nie wynosi 72. Przy Resolution 144 wychodziły o połowę mniejsze i przesunięte
- ExtTextOut rozmieszcza znaki na takiej stronie zgodnie z podanymi przyrostami zamiast wykorzystywać połowę z nich
- Osadzone ciągi glifów zachowują na takiej stronie przesunięcia i przyrosty swoich glifów
Version 2.766.24
Added
- Eksport SVG respektuje teraz wpis
/Extendcieniowań osiowych i promienistych: końiec, który nie jest rozszerzony — a taki jest domyślnie — pozostaje niezamalowany jak w PDF, zamiast rozlewać swój kolor końcowy na cały obszar przycinania - Dla cieniowań promienistych oznacza to też, że wnętrze okręgu początkowego zostaje puste, chyba że początek jest rozszerzony
Version 2.766.23
Fixed
- Spłaszczanie obrotu strony obraca teraz strumienie wyglądu adnotacji razem ze stroną, więc adnotacje z wypalonym wyglądem albo spłaszczone wyglądają tak samo jak na obróconej stronie, zamiast być ściśnięte bokiem w swój obrócony prostokąt
- Obrót widżetu (
/MK /R) jest korygowany o obrót strony, więc wyglądy pól formularza regenerowane po spłaszczeniu zachowują orientację - Adnotacje z flagą NoRotate pozostają wyprostowane i zachowują rozmiar po spłaszczeniu, przypięte w lewym górnym rogu — tak jak pokazują je przeglądarki na obróconej stronie
Version 2.766.22
Fixed
- Spłaszczanie obrotu strony w otagowanym PDF nie obraca już dwukrotnie prostokąta adnotacji, gdy drzewo struktury zostaje osiągnięte przed drzewem stron
- Spłaszczanie obrotu strony nie obraca już prostokąta otaczającego Form XObjects używanych na stronie; ich geometria żyje w przestrzeni formularza, a obrót strony i tak stosuje się do nich przez transformację zawartości
- Prostokąty układu (Layout) elementów struktury należących do innej strony nie są już zmieniane, gdy jedna strona jest spłaszczana
Version 2.766.21
Fixed
- Odczyt bleed, trim albo art box załadowanej strony nie podkupuje już
/BleedBox,/TrimBoxani/ArtBoxumieszczonych na nadrzędnym węźle/Pages; te pola nie są dziedziczne w PDF, więc strona bez własnego wpisu zgłasza teraz swój crop box, jak wymaga specyfikacja - Spłaszczanie obrotu strony nie kopiuje już takiego nadrzędnego bleed, trim albo art box na stronę
Version 2.766.20
Fixed
- Tekst rysowany na Canvas strony albo w metapliku umieszczonym przez ShowMetafile zachowuje rozmiar, gdy Resolution dokumentu nie wynosi 72. Przy Resolution 144 wychodził o połowę mniejszy, podczas gdy reszta rysunku była poprawna
- Canvas strony i ShowMetafile rysują we właściwym rozmiarze na stronie wymiarowanej przez Width i Height, która rysuje w punktach. Przy Resolution 144 rysunek wychodził dwukrotnie za duży
- Canvas strony i ShowMetafile respektują też Resolution ustawioną na samej stronie, zamiast zmniejszać przez nią rysunek
Version 2.766.19
Fixed
- Justowane pola tekstu Unicode kończą się teraz na krawędzi pola, gdy ustawiony jest rozstaw znaków. Każdy znak dostawał rozstaw dodany do swojej justowanej pozycji, więc każdy wiersz wychodził za prawą krawędź o rozstaw pomnożony przez liczbę znaków
- Justowane pola tekstu Unicode z poziomym skalowaniem znowu wypełniają całą szerokość pola zamiast kończyć o współczynnik skalowania za wcześnie
- Odstępy między słowami liczą się teraz do naturalnej szerokości justowanego wiersza — tej samej szerokości, w której wiersz został złamany
- Tekst rysowany z jawnym przyrostem dla każdego znaku trafia na te pozycje niezależnie od działającego rozstawu znaków albo skalowania poziomego
Version 2.766.18
Fixed
- Spłaszczanie obrotu strony obraca teraz strony z
/Rotate 90i/Rotate 270zgodnie z ruchem wskazówek zegara, więc spłaszczona strona wygląda dokładnie jak obrócony oryginał, zamiast być odwrócona do góry nogami względem niego - Adnotacje, cele linków i geometria struktury przesuwają się razem ze stroną w ten sam sposób
- Spłaszczanie strony bez CropBox nie dodaje już CropBoxa, który ścinał stronę do kwadratu; obracane są tylko pola strony, które strona faktycznie ma
Version 2.766.17
Fixed
- Łańcuchy fallbacku czcionek znajdują teraz kroje takie jak SimSun i Microsoft YaHei na systemach Windows, które zgłaszają je pod zlokalizowaną nazwą, więc mieszany tekst CJK w
WideTextOutBox,WideTextOutBoxExiTextOutWithFallbackjest rysowany kroją fallbacku zamiast pokazywać puste kwadraty - Tekst, którego własna czcionka jest jedną z tych krojów, nie jest już dzielony na odcinki fallbacku ani zgłaszany jako nierozwiązany przez diagnostykę nierozwiązanych glifów
- Krój może być wpisany do łańcucha pod dowolną nazwą rodziny, jaką nosi, w dowolnym języku; krój, który Windows tylko podstawia inną czcionką, jest nadal pomijany
Version 2.766.16
Fixed
- Impozycja N-up umieszcza teraz strony z
/Rotate 90i/Rotate 270obrócone zgodnie z ruchem wskazówek zegara wewnątrz swoich komórek; wcześniej były obracane w drugą stronę i wypychane poza komórkę, często poza arkusz - Strony z
/Rotate 180są teraz obracane na arkuszu zamiast być komponowane wyprostowane - Impozycja N-up respektuje teraz pola strony i
/Rotateodziedziczone z drzewa stron, więc takie strony nie są już pomijane ani komponowane bez obrotu - Puste strony wstawiane do załadowanego dokumentu, łącznie ze złożonymi arkuszami N-up, nie są już obracane ani przycinane przez
/Rotatealbo/CropBoxodziedziczone z drzewa stron
Version 2.766.15
Fixed
HPDFTokenizeContentStreamAppendmoże teraz ponownie użyć tablicy tokenów po wyzerowaniu jej licznika: tokeny pozostałe z poprzedniego przebiegu są najpierw zwalniane, więc ich stringi już nie ciekną, a ich elementy tablicy albo dane obrazów inline nie pojawiają się już w nowych tokenach- Doklejanie wielu małych strumieni zawartości do jednej tablicy tokenów powiększa teraz tablicę co najmniej dwukrotnie, zamiast przy każdej operacji realokować ją i przenosić, co utrzymywało strony złożone z tysięcy małych strumieni wolne w kompilowaniu
Version 2.766.14
Fixed
- Strony z
/Rotate 90albo/Rotate 270są teraz renderowane obrócone zgodnie z ruchem wskazówek zegara, jak definiuje specyfikacja PDF, zamiast odbite po przekątnej; wcześniej lewy górny róg strony obróconej o 90 stopni lądował w prawym dolnym - Poprawka obejmuje renderowanie stron i regionów, eksport do bitmap, metaplików oraz pasmowy PNG i TIFF, a także backend renderowania SIMD
- Konwersje współrzędnych strona–widok i widok–strona oraz nakładki wyszukiwania i podświetlania w przeglądarce podążają za tym samym obrotem zgodnym z ruchem wskazówek zegara, więc trafienia i testowanie trafień zgadzają się z wyrenderowaną stroną
Version 2.766.13
Fixed
- Eksport stron SVG zapisuje teraz tekst w UTF-8, tak jak deklaruje dokument, więc znaki z diakrytykami i CJK przeżywają, zamiast zamieniać się w znaki zapytania albo bajty, które psują czytelność pliku; kody kontrolne niedozwolone w XML stają się U+FFFD
- Tekst po pierwszym odcinku wiersza oraz tekst po korekcie kerningu
TJjest teraz umieszczany poprawnie, gdy macierz tekstu skaluje albo obraca tekst — dokładnie tak wielu producentów PDF ustawia rozmiar czcionki - Podniesienie tekstu i skalowanie poziome podążają teraz za przeskalowaną albo obróconą macierzą tekstu, a korekty
TJrespektują skalowanie poziome - Tekst rysowany w trybach renderowania 4-6 (malowanie i przycinanie) jest eksportowany zamiast być wyrzucany, niewidzialny tekst nadal przesuwa pozycję tekstu, a tekst kreślony zachowuje krycie kreślenia
- Odstępy między słowami nie są już stosowane do dwubajtowych kodów, które akurat równają się 32, a ciągi spacji są zachowywane, więc każdy znak zostaje na swojej pozycji
- Glify ligatur eksportują wszystkie znaki, które reprezentują, a czcionki z mieszanymi kodami jedno- i dwubajtowymi są czytane kod po kodzie
- Strony, których
/MediaBoxnie zaczyna się w punkcie zerowym, trafiają teraz na płótno SVG zamiast być przesunięte poza nie
Version 2.766.12
Fixed
- Rysowanie na
THPDFPage.Canvasoraz metapliki odtwarzane jako grafika wektorowa przezShowMetafilena zadanej pozycji i skali nie tracą już fragmentu lewej i górnej krawędzi, gdy ustawiają region przycinania. Każdy region przycinania był przesuwany do środka o jednostkę na tych dwóch bokach, więc obramowanie albo wypełnienie wzdłuż lewej albo górnej krawędzi wychodziło cieńsze niż to samo na prawej albo dolnej - Regiony przycinania pokrywają się teraz z tymi samymi regionami przy wypełnianiu i obejmują ten sam obszar przy dowolnym
THotPDF.Resolution
Version 2.766.11
Fixed
- Podkreślenia i przekreślenia tekstu Unicode rysowanego przez
TextOut,UnicodeTextOut,RtLTextOutiExtTextOutobejmują teraz dokładnie tekst. Były mierzone na tekście skonwertowanym do systemowej strony kodowej, więc odcinki z cyrylicą, hebrajskim, greką, CJK albo innymi literami spoza tej strony kodowej dostawały kreski, które urywały się przed tekstem albo wychodziły poza niego - Kreski podążają też za rozstawem znaków, odstępami między słowami, skalowaniem poziomym i przesunięciami przekazywanymi do
ExtTextOut
Version 2.766.10
Fixed
- Dodatki eksportu raportów i siatek (FastReport, QuickReport, ReportBuilder, DevExpress i DBGrid) nie nadpisują już nawzajem swoich wyników, gdy kilka eksportów działa jednocześnie, na przykład na serwerze. Ich plik tymczasowy był nazywany od timera, który zmienia się dopiero co 10-16 ms, więc eksporty wystartowane razem pisały do tego samego pliku
Version 2.766.9
Fixed
TextWidthmierzy teraz tekst tak, jak jest rysowany, gdy ustawiony jest rozstaw znaków, odstępy między słowami albo skalowanie poziome. Rozstaw nie był skalowany przez skalowanie poziome, ujemne odstępy między słowami były ignorowane, a spacja na końcu nie dostawała odstępu między słowami, więc kontynuacja akapitu, prostokąty linków oraz tekst wyśrodkowany albo wyrównany do prawej trafiał obok narysowanego tekstuTextWidthiGetWideTextWidthzwracają tę samą szerokość dla tego samego tekstu
Version 2.766.8
Fixed
- Urządzenie ReportBuilder (
TppHotPDFDevice) rysuje teraz tekst natywny wewnątrz swojego pola tekstowego. Tekst był pozycjonowany tak, jakby jego pozycja była linią bazową, więc każdy obiekt tekstowy zaczynał wiersz zbyt nisko, a jego ostatni wiersz wychodził poza pole - Tekst natywny wyśrodkowany i wyrównany do prawej jest mierzony szerokościami Unicode, którymi jest rysowany, więc tekst z literami spoza systemowej strony kodowej, na przykład chiński na systemie zachodnim, układa się poprawnie
Version 2.766.7
Fixed
- Eksport FastReport umieszcza teraz tekst pola memo wewnątrz tego pola. Tekst był pozycjonowany tak, jakby jego pozycja była linią bazową, więc tekst każdego memo zaczynał o wysokość czcionki za nisko, a tekst wyrównany do dołu był rysowany pod memo, gdzie przycinanie go ukrywało
- Wyrównanie pionowe do góry, do środka i do dołu mierzy od góry pierwszego wiersza, zarówno dla zwykłych memo, jak i otagowanych HTML
Version 2.766.6
Fixed
- Filtr eksportu FastReport (
TfrxHotPDFExport) znowu się kompiluje. WłaściwośćNotEmbeddedFontsczytała pole innego typu, a natywny eksport obrazków używał właściwościClipped, którejTfrxPictureViewnie ma - Natywny eksport obrazków przycina teraz każdy obrazek do swojego widoku, tak jak robi to FastReport, więc obrazek większy niż jego widok nie wylewa się już na sąsiednie obiekty
- Wyśrodkowany obrazek zachowuje ramkę i przycinanie na granicach widoku; wyśrodkowany jest tylko sam obraz. Wcześniej ramka przesuwała się razem z obrazem
Version 2.766.5
Fixed
- Dodatek DBGrid mierzy teraz tekst komórki szerokościami tekstu Unicode, którymi go rysuje, zanim skróci go, żeby zmieścił się w kolumnie. Tekst z literami spoza systemowej strony kodowej, na przykład chiński na systemie zachodnim, był mierzony jako znaki zapytania i wychodził poza komórkę; tekst dwubajtowy na systemach chińskich, japońskich i koreańskich był skracany dawno przed zapełnieniem komórki
- Skrócenie nigdy nie zostawia połowy pary surrogate przed
...
Version 2.766.4
Fixed
- Dodatek DBGrid (
TDBGridHotPDFExportorazDBGridHotPDFExportToFile/ToStream) rysuje teraz tekst komórek wewnątrz komórek. Tekst był umieszczany tak, jakby jego pozycja była linią bazową, więc tekst każdego wiersza siadał na dolnej krawędzi komórki i był ścinany linią siatki następnego wiersza - Tekst nagłówka jest wyśrodkowany w wierszu nagłówka, a tytuł już nie dotyka góry tabeli
Version 2.766.3
Fixed
GetLoadedPDFVersionStringzwraca teraz%PDF-1.7i podobne ciągi na systemach, których locale zapisuje przecinek dziesiętny; tam zwracało to%PDF-1,7- Pole
pdfVersionwGetLoadedDocumentReportjest poprawione w ten sam sposób
Version 2.766.2
Fixed
- Import HTML (
RenderHTMLiRenderHTML5) daje tę samą stronę przy dowolnymTHotPDF.Resolution. Długości CSS orazMargin,BaseFontSize,ListIndentiBlockSpacingimportera to punkty, ale przy Resolution 144 tekst, marginesy, listy i tabele wychodziły o połowę mniejsze - Tekst i grafika rysowane przed i po imporcie nadal używają cala 1/Resolution
- Dokumenty budowane przy domyślnej Resolution 72 wychodzą dokładnie jak wcześniej
Version 2.766.1
Fixed
- Formularze XFA spłaszczane przez
ApplyXFAAsAcroFormalboFlattenLoadedXFAzachowują pozycje, rozmiary i stopnie czcionek z szablonu przy dowolnymTHotPDF.Resolution. Przy Resolution 144 cały formularz wychodził o połowę mniejszy w lewym górnym rogu strony - Tekst i grafika rysowane przed i po spłaszczeniu nadal używają cala 1/Resolution
- Dokumenty budowane przy domyślnej Resolution 72 wychodzą dokładnie jak wcześniej
Version 2.766.0
Added
THPDFPage.UserWidthiTHPDFPage.UserHeightzwracają rozmiar strony w jednostkach, w których rysujesz — cala 1/Resolution— więc kod układu może porównać go ze współrzędnymi, marginesami iTextWidthprzy dowolnymTHotPDF.Resolution.WidthiHeightnadal zwracają punkty, a istniejący kod czyta te same wartości co wcześniej
Fixed
- Przy
THotPDF.Resolutionustawionym na wartość inną niż 72 akapity łamią się teraz według rzeczywistej przestrzeni między swoimi marginesami i przechodzą na następną stronę przy dolnym marginesie. Mierzyły stronę w punktach, więc przy 144 akapit z szerokimi marginesami mógł się łamać po każdym znaku i rozlewać na zdecydowanie za dużo stron - Akapit kontynuowany na nowej stronie zachowuje ten sam rozmiar strony, te same współrzędne i ten sam stopień czcionki przy dowolnej Resolution. Przy 144 strona kontynuacji przełączała się na współrzędne w punktach, a tekst na niej wychodził o połowę mniejszy
THPDFTablezaczyna nową stronę dopiero, gdy wiersz osiągnie dolny margines; przy 144 tabela umieszczona w dolnej połowie strony trafiała każdy wiersz na osobną stronę- Import HTML składa tekst na całej szerokości strony przy dowolnej Resolution zamiast na lewej połowie
- Metapliki rysowane wyśrodkowane na stronie oraz regiony przycinania metaplików obejmujące całą stronę używają pełnej strony przy dowolnej Resolution
- Diagnostyka układu dla warstw strony i stron opróżnianych podaje rozmiar strony w jednostkach rysowania
- Dokumenty budowane przy domyślnej Resolution 72 wychodzą dokładnie jak wcześniej
Version 2.765.52
Fixed
- Hasła AES-256 ze znakami spoza ASCII działają teraz w innych czytnikach PDF. HotPDF hashował hasło w systemowej stronie kodowej, podczas gdy ISO 32000-2 definiuje je jako UTF-8, więc inne czytniki odrzucały hasło chińskie albo z diakrytykami; naprawiono zarówno rewizję 5, jak i rewizję 6
- Hasła AES-256 dłuższe niż 127 bajtów są teraz obcinane do 127 bajtów, jak określa standard, więc czytniki go stosujące je przyjmują
- HotPDF otwiera teraz pliki AES-256 od innych producentów, których hasło ma znaki spoza ASCII
- Pliki zaszyfrowane przez wcześniejsze wersje takimi hasłami nadal otwierają się w HotPDF z tym samym hasłem
Version 2.765.51
Fixed
- Tekst ANSI zapisany po tekście Unicode tą samą czcionką nie pokazuje się już jako puste kwadraty. Gdy strona rysowała tekst Unicode przez
TextOut, a potem używałaTextBoxalboTextOutBoxExw tej samej króji (na przykład Arial w innym rozmiarze), tekst ANSI był zapisywany do czcionki Unicode i przeglądarki nie umiały znaleźć jego glifów; teraz dostaje własny zasób czcionki i poprawnie się wyświetla oraz ekstrahuje - Strony używające wyłącznie tekstu ANSI albo wyłącznie tekstu Unicode produkują wyjście identyczne jak wcześniej
Version 2.765.50
Fixed
- Dokumenty szyfrowane AES-256 rewizji 6 (
UseAES256R6oraz AES-256 z PDF 2.0) otwierają się teraz w innych czytnikach PDF. Hash hasła był liczony z solą w każdej rundzie i bez wpisu użytkownika po stronie właściciela, więc qpdf, MuPDF i inne czytniki odrzucały oba hasła; HotPDF przyjmował wyłącznie własne pliki - HotPDF otwiera teraz pliki rewizji 6 stworzone przez innych producentów ich hasłem użytkownika albo właściciela, zamiast zgłaszać nieprawidłowe hasło
- Przykład AES-256 R6 z demo Security otwiera się w innych czytnikach
Version 2.765.49
Fixed
- Justowane pola tekstu Unicode nie rozsuwają już swoich liter i nie wychodzą poza prawą krawędź pola. Przy czcionce wybieranej nazwą, na przykład Arial, każdy justowany wiersz wychodził około dwukrotnie szerszy niż pole i nakładał się na to, co leżało obok; każdy justowany wiersz kończy się teraz na krawędzi pola
- Tekst rysowany z jawnym przyrostem dla każdego znaku trafia teraz tam, gdzie poproszono, w tym samym scenariuszu, zamiast przesuwać każdy znak o dodatkową szerokość znaku w prawo
Version 2.765.48
Changed
- Demo HelloWorld, CJKAnnotations, TextOut i RtLTextOut dla Delphi i C++Builder osadzają teraz wyłącznie glify, których używają. Osadzały całe czcionki systemowe takie jak Arial Unicode MS, więc jednostronicowe hello world wychodziło około 15 MB, a przykład od prawej do lewej około 30 MB; te same strony mają teraz od 80 KB do 650 KB i wyglądają tak samo
Version 2.765.47
Fixed
- Tekst od prawej do lewej nie wychodzi już z literami w złej kolejności przy niektórych czcionkach. Hebrajski w Arial Unicode MS miał zamienione sąsiednie litery w wielu słowach, a arabski w Microsoft Sans Serif nie był w ogóle odwracany, bo numery glifów tych czcionek brano za znaki akcentów, gdy wiersz układano w kolejności wizualnej
- Hebrajskie wiersze demo RtLTextOut czytają się teraz poprawnie
Version 2.765.46
Fixed
GetWideTextWidthuwzględnia teraz rozstaw znaków i odstępy między słowami, jakimi tekst jest rysowany, podobnie jakTextWidth. Tekst Unicode łamany wierszami i wyśrodkowany z ustawionym rozstawem był mierzony zbyt wąskoTextOutHTMLpokazuje teraz odstępy między słowami ustawione przezSetWordSpacing: umieszcza każdy odcinek na swojej zmierzonej szerokości, co pomijało rozstaw. CSS-oweword-spacingiletter-spacingimportu HTML przechodzą przez ten sam układ
Version 2.765.45
Fixed
SetWordSpacingdziała teraz z czcionkami osadzonymi. Tekst w czcionce osadzonej jest zapisywany dwubajtowymi kodami znaków, a PDF stosuje odstępy między słowami tylko do jednobajtowego kodu spacji, więc rozstaw był po cichu ignorowany, zawsze gdyFontEmbeddingbyło włączone albo tekst potrzebował czcionki Unicode- Rozstaw jest dodawany po każdej spacji jako korekta pozycjonowania tekstu, którą respektuje każdy czytnik PDF; tekst bez odstępów między słowami jest zapisywany dokładnie jak wcześniej
- Wiersz word-spacing demo TextOut pokazuje teraz dodatkową spację
Version 2.765.44
Fixed
- Demo AnnotationInteraction dla Delphi i C++Builder mieści teraz podpis każdego linku w jego prostokącie. Tekst zaczynał zbyt nisko, więc obramowanie prostokąta przecinało go, a był też szerszy niż prostokąt
Version 2.765.43
Fixed
- Tekst z przekreśleniem (
fsStrikeOut) jest teraz przekreślany przez środek małych liter. Linia była rysowana pół wiersza poniżej linii bazowej, pod podkreśleniem, więc przekreślony tekst wyglądał jak podwójnie podkreślony; dotyczyło to też<s>wTextOutHTML - Obrócony tekst dostaje teraz podkreślenie poniżej linii bazowej zamiast wzdłuż góry liter, a przekreślenie przez litery
- Linie przekreślenia są tak grube jak podkreślenia w każdej ścieżce rysowania tekstu; ścieżki tekstu Unicode i zwykłego łacińskiego rysowały znacznie cieńszą linię
Version 2.765.42
Fixed
- Demo HTMLText daje teraz jedną stronę ze wszystkimi pięcioma przykładami. Dokładało drugą stronę po tej, od której dokument i tak się zaczyna, zostawiając pierwszą stronę pustą, i zaczynało pisać blisko dołu strony, więc przykład encji i akapit łamany wierszami wypadały poza stronę
Version 2.765.41
Fixed
- Demo Layer dla Delphi i C++Builder pokazuje teraz tekst swoich warstw. Tekst widocznej warstwy był rysowany kolorem prostokąta za nim i nie dało się go zobaczyć, a tekst ukrytej warstwy był prawie biały
- Podpis demo Patterns jest rysowany na czarno zamiast być wypełniany wzorem kafelkowym, który rozbijał go na fragmenty wzoru
- Podpis demo AlphaTransparency nie jest już rysowany półprzezroczystą zielenią z trybem mieszania Multiply; przezroczyste kształty zostawiają teraz swoją przezroczystość dla siebie
Version 2.765.40
Fixed
- Demo GraphicDraw dla Delphi i C++Builder rysuje teraz poprawnie linie styczne swoich przykładów krzywych. Pierwsza linia punktu kontrolnego lewej krzywej urywała się przed opisanym punktem, a prawa krzywa pokazywała krótki poziomy kres zamiast linii biegnących od punktu startowego przez punkt kontrolny do punktu końcowego
- Nagłówki sekcji stron prostokąta i elipsy są znów czarne, zamiast brać kolor ostatnio narysowanego kształtu
Version 2.765.39
Fixed
- Tekst i kształty rysowane po
PrintHyperlinkzachowują kolory ustawione przed nim. Szary wracał jako inny kolor (biel zamieniała się w niebieski), a kolory ustawione w CMYK albo przez przestrzeń barw wracały jako starszy kolor RGB - Kolor hiperlinku dotyczy teraz tylko tekstu linku, niezależnie od przestrzeni barw używanej przez stronę
Version 2.765.38
Fixed
TextOutOutlinerysuje teraz kontury glifów w rozmiarze czcionki przy dowolnymResolution. PrzyResolutioninnej niż 72 kontury były skalowane w dół drugi raz, na przykład do połowy rozmiaru przy 144- Kontury czcionek z mniej niż 1000 jednostek na em, takich jak SimHei, nie są już rysowane kilka razy za duże
Version 2.765.37
Fixed
- Demo CJKUnicode dla Delphi i C++Builder pokazuje teraz swój koreański wiersz na systemach bez Arial Unicode MS. Rysowało go pierwszą znalezioną czcionką chińską, która nie ma Hangul, więc wiersz pozostawał pusty; teraz używa Malgun Gothic, gdy wybrana czcionka nie potrafi pokazać koreańskiego
Version 2.765.36
Fixed
- Tekst chiński i japoński pisany czcionkami takimi jak SimHei nie piramidkuje już znaków jeden na drugim. Gdy ta sama czcionka była używana do drugiego odcinka tekstu, wiele ideogramów dostawało szerokości kilku jednostek zamiast pełnego em
- Dotknięte czcionki przechowują mniej szerokości przyrostów niż glifów; glify po ostatniej zapisanej szerokości używają teraz tej szerokości, jak wymaga format TrueType
Version 2.765.35
Fixed
- Tekst Unicode w czcionkach, których siatka projektowa ma mniej niż 1000 jednostek na em, takich jak SimHei i SimSun z 256, jest teraz rozstawiony poprawnie. Szerokości glifów zapisywane do PDF były około czterokrotnie za duże, więc przeglądarki zostawiały szerokie przerwy po spacjach i innych świeżo użytych znakach
Version 2.765.34
Fixed
- Scenariusz skanowanego obrazu w demo PDFOptimize kompresuje teraz prawdziwą stronę tekstu. Jego 1-bitowy obraz testowy wychodził w całości czarny, więc CCITT G4 i JBIG2 były porównywane na jednolitym prostokącie
- Scenariusze obrazów w demo PDFOptimize osadzają teraz tylko glify etykiety swojej strony, więc raportowane rozmiary pokazują różnicę między metodami kompresji obrazów, zamiast być zdominowane przez całą osadzoną czcionkę
Version 2.765.33
Fixed
- Demo E-Invoice układa teraz widoczną stronę faktury od góry: tytuł jest na górze strony, a faktura, strony transakcji i kwoty następują pod nim. Strona była rysowana do góry nogami w kolejności, z tytułem blisko dolnej krawędzi i notą stopki na górze
Version 2.765.32
Fixed
- Obrazy JBIG2 kodowane ściśle bezstratnie (
LosslesszLossyLevel = 0) zachowują teraz każdy piksel. Domyślne usuwanie drobnych czarnych kropek jako szumu skanu ignorowało te ustawienia, więc kropki kończące zdania oraz oczka liter i i j w drobnym tekście znikały z obrazów, które miały być bezstratne - Domyślne ustawienia przyjazne skanom (
LossyLevel = 5zRemoveIsolatedBlackPixels) nadal usuwają drobne nakrapianie jak wcześniej
Version 2.765.31
Fixed
- Eksport załadowanych stron do PNG albo TIFF nie kończy się już błędem "received too many rows" przy rozdzielczościach, w których pas renderowania nie jest pełną liczbą punktów, na przykład przy domyślnych 150 DPI
SaveLoadedPagesAsImagesze stroną Letter. Zaokrąglanie robiło każdy pas o jeden wiersz pikseli wyższy niż planowano, więc pasy sumowały się do większej liczby wierszy niż ma obraz
Version 2.765.30
Fixed
TextWidth,TextHeight,GetWideTextWidthiGetWideCharAdvancesodpowiadają teraz w jednostkach strony wynikających zResolution— w tych, w których rysowany jest tekst. PrzyResolutioninnej niż 72 odpowiadały w punktach, więc zmierzony tekst nie pasował do współrzędnych, na których był umieszczany- Przy
Resolutioninnej niż 72 tekst rysowany przezTextOutzaczyna się teraz na swoim Y zamiast za wysoko, a podkreślenia i przekreślenia obejmują cały tekst we właściwej odległości i grubości zamiast ułamka - Przy dowolnym
ResolutionpolaTextBox,TextOutBoxExiWideTextOutBoxExwyśrodkowują i wyrównują do prawej swoje wiersze według rzeczywistej szerokości tekstu, komórki tabel i akapity łamią tekst według niej, a stylizowane odcinkiTextOutHTMLnie nakładają się już - Odcinek fallbacku czcionki wewnątrz
WideTextOutBoxExzachowuje rozmiar czcionki przy dowolnymResolutionzamiast się kurczyć - Wyjście przy
Resolution72 się nie zmienia
Version 2.765.29
Fixed
- Gdy Windows nie potrafi sam zastosować transformacji świata metapliku EMF, HotPDF łączy transformacje na własną rękę. Pionowe przesunięcie transformacji złożonej używało złego składnika, więc zawartość w takich metaplikach mogła być przesunięta w górę albo w dół
Version 2.765.28
Fixed
- Wyświetlanie metapliku EMF nie wypisuje już linii diagnostycznych takich jak
[WMF_DEBUG] EMR_POLYGON16 record foundna standardowe wyjście aplikacji konsolowych. Śledzenie metaplików zostało pozostawione włączone w buildzie wydaniowym
Version 2.765.27
Fixed
- Tekst w metaplikach EMF pokazywanych przez
ShowMetafilesiedzi teraz na wysokości, na której rysuje go Windows. Tekst wyrównany do góry — domyślny wTCanvas.TextOut— był rysowany o wysokość wiersza za wysoko, a tekst wyrównany do dołu też był za wysoko - Tekst metapliku wyrównany do linii bazowej oraz obrócony się nie zmienia
Version 2.765.26
Fixed
ShowMetafilez pozycją i skalą rysuje teraz metaplik z lewym górnym rogiem w zadanym punkcie i przeskalowany według żądania. Wcześniej ignorował te argumenty i zawsze rysował metaplik w lewym górnym rogu strony w jego naturalnym rozmiarzeShowMetafilebez pozycji się nie zmienia
Version 2.765.25
Fixed
- Rysunki
AngleArcw metaplikach EMF pokazywanych przezShowMetafilerysują teraz łuk, który opisują, w dowolnym kierunku, a za nim linie kontynuowane od końca łuku. Zamiast tego rysowano pełne koło, a jego rozmiar był zły, zawsze gdy metaplik miał przesunięcie
Version 2.765.24
Fixed
- Pod PDF/A i PDF/X adnotacje free text ze zwykłą treścią ASCII pokazują teraz swój tekst. Ich wygląd rysował wcześniej tylko ramkę i wypełnienie, bo Helvetica wymieniona w domyślnym wyglądzie adnotacji nie może tam być używana nieosadzona
- Tekst jest rysowany w 12 pt aktualną czcionką strony — osadzaną razem z tekstem strony, łamaną do pola adnotacji i wyrównywaną wybranym justowaniem, tak jak już robiono to dla treści spoza ASCII
- Poza PDF/A i PDF/X adnotacje free text z samym ASCII są zapisywane dokładnie jak wcześniej
Version 2.765.23
Fixed
- Przy włączonym
AutoShapeArabicmetodyTextOutiUnicodeTextOutłączą teraz litery arabskie, perskie i urdu w ich formy początkowe, środkowe i końcowe oraz ligatury, jak robiło to jużRtLTextOut. Każda litera była wcześniej pokazywana w formie odizolowanej - To samo dotyczy
AutoShapeSyriac,AutoShapeNko,AutoShapeAdlam,AutoShapeHanifiRohingyaoraz przestawiania punktów hebrajskich (sfHebrewReorderwShapingFeatures) - Przy tych opcjach tekst, którego numery glifów akurat wpadały w zakresy znaków arabskich albo hebrajskich, mógł być pokazywany złymi glifami; to już się nie zdarza
- Adnotacje free text rysowane czcionką strony są kształtowane tak samo jak tekst strony
- Wyjście przy tych opcjach wyłączonych się nie zmienia
Version 2.765.22
Fixed
- Kształty krzywe respektują teraz wartości
Resolutioninne niż 72.Ellipse,Circle,Arc,DrawArc,Pie,DrawPie,ChordiArcTobyły wcześniej rysowane w złym miejscu i rozmiarze, podczas gdy proste linie, prostokąty i prostokąty zaokrąglone były poprawne - Wyjście przy domyślnej rozdzielczości 72 się nie zmienia
Version 2.765.21
Fixed
- Wycinki koła rysowane przez
PiealboDrawPiesą teraz pojedynczymi zamkniętymi kształtami, więc ich kontur dostaje porządne narożniki tam, gdzie proste krawędzie spotykają łuk, zamiast dwóch luźnych końców linii - Cięciwy w metaplikach EMF pokazywanych przez
ShowMetafilezamykają się teraz wzdłuż prostej między końcami swojego łuku. Linia biegła wcześniej do punktu daleko od kształtu
Version 2.765.20
Fixed
DrawArciDrawPierysują teraz tę część elipsy, którą opisuje ich dokumentacja: przeciwnie do ruchu wskazówek zegara od punktu początkowego do końcowego, jak robią to wywołaniaArciPieWindows GDI. Rysowały wcześniej tę drugą część, więc ćwierć łuku wychodził jako trzy czwarte- Wycinki koła, cięciwy i łuki
ArcTow metaplikach EMF pokazywanych przezShowMetafilezgadzają się teraz z obrazem, który rysuje Windows, dla obu kierunków łuku. Pokazywały wcześniej przeciwną część elipsy; zwykłe łuki były już poprawne - Metody
Arc,Pie,ChordiArcTooparte na kątach się nie zmieniają
Version 2.765.19
Fixed
- Obrócone prostokąty rysowane przez
RectangleRotatesą teraz zamkniętymi kształtami, jak te rysowane przezRectangle. Kreślenie takiego prostokąta pomijało wcześniej jego czwartą stronę, więc obrócony prostokąt z samym konturem pokazywał trzy krawędzie - Wypełnione obrócone prostokąty oraz kreski podkreślenia i przekreślenia obróconego tekstu wyglądają tak samo jak wcześniej
Version 2.765.18
Fixed
- Liczby ujemne zapisywane do generowanych PDF-ów są teraz zaokrąglane poprawnie. Wartości takie jak -50 były wcześniej zapisywane jako -49.99, więc ujemne współrzędne, przesunięcia i pozycje w zawartości strony, prostokątach adnotacji i podobnych wpisach mogły mylić się do 0.01 jednostki
- Wartości ujemne są teraz zaokrąglane połówkowo od zera (half away from zero), dokładnie lustrzanie do wartości dodatnich; ujemna wartość zaokrąglająca się do zera jest zapisywana jako 0
- Wyjście dla zera i liczb dodatnich się nie zmienia
Version 2.765.17
Fixed
- Adnotacje free text z chińską, japońską, koreańską, arabską, cyryliczną albo inną treścią spoza ASCII pokazują teraz swój tekst w każdym czytniku. Polegały wcześniej na tym, że czytnik narysuje tekst w Helvetica, która reprezentuje tylko znaki zachodnie, więc czytniki takie jak Poppler pokazywały wyłącznie interpunkcję ASCII
- Te adnotacje noszą teraz własny wygląd (ISO 32000-1 12.5.5): tekst jest rysowany aktualną czcionką strony, osadzaną i redukowaną do podzbioru razem z tekstem strony, łamany do pola adnotacji (między słowami, a dla tekstu bez spacji między znakami), wyrównywany wybranym justowaniem i kładziony na tej samej ramce i wypełnieniu co wcześniej
- Wygląd jest zapisywany także pod PDF/A, gdzie osadzona czcionka trzyma dokument w zgodności ze standardem, a tekst adnotacji jest teraz widoczny zamiast pustego prostokąta
- Adnotacje free text z treścią czysto ASCII są zapisywane dokładnie jak wcześniej
Version 2.765.16
Fixed
- Puste strony wstawiane do załadowanych dokumentów przez
InsertLoadedBlankPagemają teraz słownik zasobów, którego wymaga każda strona (ISO 32000-1 Table 30), więc walidatory takie jak qpdf nie zgłaszają już drzewa stron jako uszkodzonego, a do strony można później dodać zawartość
Version 2.765.15
Fixed
- W demo
Tablekwota sumy częściowej rozciąga się teraz na kolumny Qty i Price zgodnie z zamysłem; kod używał złego indeksu komórki, przez co kolumna Qty zostawała pustą komórką
Version 2.765.14
Fixed
- Obrazy w komórkach
THPDFTablesą teraz rysowane wewnątrz swojej komórki i respektują wyrównanie pionowe; wcześniej trafiały o wysokość obrazu za nisko, pod komórką i poza tabelę
Version 2.765.13
Fixed
- Szerokości tekstu Unicode (
GetWideTextWidthi miara justowania) odpowiadają teraz czcionce; dla czcionek takich jak Arial wychodziły około dwa razy za duże - Tabele, tekst łamany wierszami oraz oparty na tych szerokościach tekst wyrównany do prawej, wyśrodkowany albo justowany układają się znowu poprawnie: krótki tekst komórki nie łamie się już do następnego wiersza, wartości wyrównane do prawej sięgają krawędzi komórki, a tekst HTML w komórkach tabeli nie pokazuje już dużych odstępów między słowami
Version 2.765.12
Fixed
- Formularze z polami wyboru albo przyciskami opcji umieszczają teraz czcionkę ZapfDingbats (
/ZaDb) w domyślnych zasobach formularza. Przeglądarki rysujące te pola same (domyślnie, gdyAutoFormAppearancesjest wyłączone) znajdują tę czcionkę właśnie tam, żeby narysować znacznik wyboru; wcześniej przeglądarki oparte na Popplerze zgłaszały nieznaną czcionkę i nie rysowały znacznika
Version 2.765.11
Fixed
- W demo
CJKAnnotationspierwsza ikona notatki w każdym wierszu języka ustawia się teraz w jednej linii z pozostałymi ikonami tego wiersza; wcześniej była umieszczana 5 punktów wyżej
Version 2.765.10
Fixed
- Czcionki żądane pod angielską nazwą są teraz znajdowane na systemach Windows w innych językach. Żądanie SimSun, Microsoft YaHei albo MS Gothic na chińskim, japońskim czy koreańskim Windows było traktowane jako brakująca czcionka, bo Windows zgłasza nazwę w języku systemu, i tekst po cichu składano w Arial Unicode MS
Version 2.765.9
Fixed
- Czcionki, które Windows trzyma w kolekcjach TrueType (.ttc), takie jak SimSun, Microsoft YaHei i MS Gothic, są teraz osadzane jako poprawne, samodzielne czcionki. Wcześniej każda tablica osadzonej czcionki wskazywała złe dane, więc przeglądarki odrzucały ją i przechodziły na czcionkę systemową, a na komputerach bez tej czcionki tekst pokazywał złe glify
- Dotyczyło to też dokumentów, których żądana czcionka była niedostępna, a Windows mapował ją na czcionkę z kolekcji, na przykład tekstu Unicode w Arial Unicode MS na systemach, gdzie dostępny był tylko SimSun
Version 2.765.8
Fixed
- Pliki źródłowe zawierające tekst inny niż ASCII są znowu zapisywane jako UTF-8 ze znacznikiem kolejności bajtów. Bez niego Delphi czyta plik źródłowy w stronie kodowej komputera budującego projekt, więc na chińskim, japońskim, koreańskim i innych niezapadnych systemach Windows tekst CJK, arabski, hebrajski i tekst z diakrytykami w demo wychodził w wygenerowanych PDF-ach zniekształcony, a komunikaty błędów biblioteki pokazywały złe znaki
- Demo
CJKAnnotations,Annotations,HelloWorld,RtLTextOut,PageSizes,TextOut,ShowcaseiViewerPrefdają znowu zamierzony tekst niezależnie od tego, gdzie są kompilowane
Version 2.765.7
Fixed
- Informacje o dokumencie podawane jako UTF-8 (
Title,Author,Subject,Keywords, tytuły wątków artykułów orazSetLoadedDocumentInfoz rodzinąSetLoadedTitle) są teraz zapisywane jako Unicode, więc przeglądarki poprawnie pokazują tekst z diakrytykami i CJK, a informacje o dokumencie zgadzają się z metadanymi XMP - Tekst w stronie kodowej systemu (na przykład chiński tytuł na chińskim Windows) też jest zapisywany poprawnie, ponieważ bajty niebędące poprawnym UTF-8 są czytane właśnie w tej stronie kodowej
Version 2.765.6
Fixed
- Widok początkowy nowych dokumentów (
InitialZoom) zapisuje teraz kompletne destynacje dopasowania do szerokości i do wysokości; brakowało operandu wymaganego przez ISO 32000-1 Table 151, więc przeglądarki takie jak Poppler zgłaszały zbyt krótką tablicę destynacji dla każdego dokumentu utworzonego z ustawieniem domyślnym
Version 2.765.5
Fixed
- Etykiety stron niezaczynające się na pierwszej stronie obejmują teraz także strony przed pierwszym zakresem, które zachowują zwykłe numery; drzewo etykiet stron musi obejmować pierwszą stronę (ISO 32000-1 12.4.2), a bez tego przeglądarki mogły pokazywać złe etykiety
SetLoadedPageLabelzachowuje teraz zakresy w kolejności stron i zastępuje zakres zaczynający się na tej samej stronie, więc przeglądarki pokazują zamierzone etykiety; wcześniej nowe zakresy były doklejane bez zachowania porządku i mogły się powtarzaćSetLoadedPageLabelnie porzuca już istniejących etykiet dokumentów, które trzymają je w osobnym obiekcie, i aktualizuje też drzewa etykiet rozbite na kilka węzłów- Prefiksy etykiet stron podawane jako UTF-8 są teraz zapisywane jako Unicode
Version 2.765.4
Fixed
- Opisy łączy podawane jako UTF-8 (
AddURILink,AddGoToLink,AddGoToRLink,AddLaunchLink,AddNamedDestinationLinkoraz łącza destynacji struktury) są teraz zapisywane jako Unicode, więc czytniki ekranu i przeglądarki pokazują tekst z diakrytykami i CJK zamiast zniekształconych znaków - To samo dotyczy tekstu i autora adnotacji dodawanych do załadowanych dokumentów metodami
AddLoaded...Annotation, na równi z adnotacjami tworzonymi w nowych dokumentach
Version 2.765.3
Fixed
AddGoToLinkpotrafi teraz linkować do strony dodawanej później w nowym dokumencie, więc spis treści na pierwszej stronie może linkować do przodu; wcześniej takie łącza były wyrzucane bez żadnego błędu- Łącze, którego strona docelowa nigdy nie zostanie dodana, zachowuje swój obszar, ale traci akcję, zamiast wskazywać nieistniejącą stronę
Version 2.765.2
Fixed
SetLoadedOutlineOpenrozwija i zwija teraz zakładki w załadowanych dokumentach; wcześniej zapisywał klucz, który przeglądarki ignorują, i zakładka zachowywała swój stanAddLoadedOutline,SetLoadedOutlineURIiSetLoadedOutlineDestinationdziałają teraz na żądanej zakładce; przy każdym indeksie powyżej 0 zmieniały złą zakładkę albo nie robiły nic- Dodanie zakładki do załadowanego dokumentu aktualizuje teraz liczniki widocznych elementów jej rodzica, jego przodków i konspektu, więc przeglądarki nie pokazują już złych stanów rozwinięcia ani złych sum elementów
- Ustawienie łącza internetowego na załadowanej zakładce usuwa teraz jej destynację strony, a ustawienie destynacji usuwa jej akcję, bo zakładka może nieść tylko jedno z nich
- Tytuły zakładek podawane jako UTF-8 do
AddLoadedOutlineiSetLoadedOutlineTitlesą teraz zapisywane jako Unicode zamiast jako zniekształcone bajty
Version 2.765.1
Fixed
- Zakładki w nowych dokumentach zapisują teraz, ile wpisów jest widocznych, jak wymaga ISO 32000-1 12.3.3: wcześniej konspekt i każda rozwinięta zakładka liczyły wszystkie zagnieżdżone wpisy, łącznie z tymi wewnątrz zwiniętych zakładek
- Ustawienie
Openedna zakładce po dodaniu jej dzieci rozwija ją teraz w przeglądarce; wcześniej ta zmiana nigdy nie trafiała do pliku - Przypisanie
Titleistniejącej zakładce zmienia teraz tytuł pokazywany w dokumencie - Tytuły zakładek z tekstem innym niż ASCII, podawane jako UTF-8, są teraz zapisywane jako Unicode, więc tytuły z diakrytykami i CJK wyświetlają się poprawnie zamiast jako zniekształcone znaki
- Zakładki mają teraz referencję do rodzica, którą wymaga specyfikacja
Version 2.765.0
Added
HPDFTokenizeContentStreamAppendtokenizuje strumień zawartości od razu do istniejącej tablicy tokenów, więc wywołujący, którzy łączą kilka strumieni, unikają tymczasowej tablicy na każdy strumień
Changed
- Kompilacja strony do renderowania nie alokuje już pamięci dla każdej liczby i operatora w jej strumieniu zawartości, a zawartość strony jest tokenizowana bezpośrednio do listy wyświetlania strony zamiast być tam kopiowana
- Równoległe renderowanie stron skaluje się znacznie lepiej na zimnym dokumencie: na wektorowym dokumencie testowym z 128 stronami 4 workery kończą teraz około 3 do 3,5 raza szybciej niż 1 worker (wcześniej około 1,4 raza w buildach 32-bitowych i 1,7 raza w 64-bitowych)
- Jednowątkowa kompilacja i renderowanie strony jest na tym dokumencie również około 35% szybsze; tokeny, listy wyświetlania i wynik renderowania pozostają bez zmian
Version 2.764.7
Changed
- Renderowanie zawartości, która często zapisuje i przywraca stan grafiki (
q/Q), nie alokuje już pamięci przy każdym zapisie, co zmuszało wątki robocze równoległego renderowania stron do wzajemnego czekania wewnątrz menedżera pamięci - Zimne równoległe renderowanie 128-stronicowego wektorowego dokumentu testowego jest około 7–10% szybsze z 4 workerami i około 5% szybsze na jednym workerze; wynik renderowania pozostaje bez zmian
Version 2.764.6
Fixed
- Równoległe renderowanie stron nie spada już do jednej strony naraz, gdy strony były wcześniej renderowane, a ich listy wyświetlania wciąż są w cache
- Wcześniej każda strona czekająca na rysowanie trzymała swoją rezerwację pamięci, podczas gdy w danym momencie rysowana była tylko jedna strona, więc pozostałe workery zastygały na wspólnym budżecie pamięci; gdy czeka już tyle stron, ile jest workerów, są teraz rysowane równolegle
- Pierwsza strona nadal przychodzi wcześnie, a pamięć zarezerwowana przez paczkę pozostaje teraz proporcjonalna do liczby workerów, zamiast wypełniać cały budżet
Version 2.764.5
Fixed
SetStructureClassMapEntrypotrafi teraz zarejestrować jeden słownik atrybutów pod kilkoma nazwami klas albo ponownie pod tą samą nazwą, bez zwalniania go- Wcześniej usunięcie albo zastąpienie jednego z tych wpisów zwalniało współdzielony słownik, więc pozostałe wpisy
/ClassMapwskazywały na zwolnioną pamięć, a zapis dokumentu mógł wypisać śmieci albo zgłosić access violation - Słownik atrybutów utworzony bezpośrednio staje się teraz obiektem pośrednim w momencie rejestracji, a każdy wpis
/ClassMapodwołuje się do niego; dokument jest właścicielem słownika, więc wywołujący nie może go zwolnić
Version 2.764.4
Fixed
RemoveUnusedLoadedPageResourcesnie zapisuje już do tabeli zasobów po jej usunięciu, gdy tabela zasobów/Font,/XObjectalbo inna tabela zasobów strony jest zapisana bezpośrednio wewnątrz/Resources, a każdy jej wpis jest nieużywany- Wcześniej ten zapis trafia do zwolnionej pamięci; zwykle przechodził niezauważony, ale mógł uszkodzić pamięć albo zgłosić access violation później w trakcie sesji
- Opróżnione tabele zasobów są w dalszym ciągu usuwane z
/Resources, a zapisany wynik pozostaje bez zmian
Version 2.764.3
Fixed
- Otwieranie PDF-a zaszyfrowanego kluczem publicznym (certyfikatem) z
PubSecKeyMaterial, przezLoadFromFilealboBeginIncrementalUpdate, nie czyta już kopert adresatów z pamięci zwolnionej wcześniej podczas odzyskiwania klucza pliku - Awaria zależała od tego, jak akurat ułożyło się ponowne użycie pamięci: dokument zwykle się otwierał, ale mógł zostać odrzucony, jakby nie przypisano żadnego materiału klucza, albo rozpakować złe bajty
- Dokumenty z wieloma adresatami, callback wyboru adresata i dodatkowe materiały klucza zarejestrowane przez
AddPubSecKeyMaterialkorzystają z tej samej poprawionej listy kopert
Version 2.764.2
Fixed
- Appearance pól generowane dla załadowanych formularzy przez
AddLoadedTextFieldi pozostałe metody pólAddLoaded*,EnsureLoadedFieldAppearanceStreamlubFlattenFormFieldsmają teraz własną referencję do czcionki AcroForm/DRzamiast współdzielić wpis/DR - Zastąpienie lub usunięcie słownika AcroForm
/DRalbo usunięcie ostatniego pola formularza (które usuwa też sam AcroForm) nie pozostawia już tych appearance wskazujących na zwolnione obiekty czcionek - Wcześniej zwolnienie dokumentu po fakcie mogło trafić na ukryte access violation, które zostawiało resztę dokumentu niezwolnioną, albo uszkodzić pamięć, najczęściej w buildach 64-bitowych
- Czcionka zapisana bezpośrednio wewnątrz
/DRstaje się obiektem pośrednim przy pierwszym użyciu przez jakiś appearance, więc appearance pola i/DRodwołują się do tego samego obiektu czcionki w zapisanym pliku
Version 2.764.1
Fixed
- Wywołanie
ProcessObjectStreamsForDecompressionpoLoadFromFilenie czyta już strumienia pliku zamkniętego przez wczytanie; zamiast tego metoda ponownie przeszukuje załadowany plik, więc elementy strumieni obiektów pozostają dostępne dlaExtractObjectFromStream - Awaria zależała od tego, jak akurat ułożyła się pamięć: zwykle przechodziła niezauważona, ale mogła zgłosić access violation albo skanować niepowiązaną pamięć, najczęściej w buildach 64-bitowych
FindAllObjectStreams,ScanAndLoadReferencedObjectsiForceLoadMissingReferencedObjectswywołane poza wczytywaniem nie robią teraz nic, zamiast dotykać zamkniętego strumienia
Version 2.764.0
Changed
- Jedna instancja
THotPDF, na przykład komponent upuszczony na formularz, może teraz zapisywać dowolną liczbę dokumentów jeden po drugim:BeginDocpoEndDocrozpoczyna nowy, niezależny dokument zamiast zgłaszać wyjątek EndDocporzuca wszystko zarejestrowane dla zapisywanego dokumentu, w tym jego obrazy, czcionki, pola formularzy, konspekty, JavaScript dokumentu, destynacje nazwane, etykiety stron, profile ICC i output intents, a następnyBeginDoczwalnia jego strony i obiekty, więc nic z tego nie trafia do kolejnego pliku; przy włączonymReproducibleOutputdrugi dokument z ponownie użytej instancji jest bajt w bajt identyczny z tym dokumentem z nowej instancji- Rejestracje wykonane między
EndDoca następnymBeginDoc, na przykładAddPDFAOutputIntentalbo skrypty dodane przezNames, należą do następnego dokumentu i nie są już czyszczone przezBeginDoc - Ustawienia właściwości, takie jak
FileName,Compression,PDFACompliance,AuthoriTitle, razem z warstwami stron i łańcuchami fallbacku czcionek, przenoszą się na kolejny dokument; wersja PDF podniesiona automatycznie dla jednego dokumentu wraca do wartości właściwościVersion - Zapisany dokument pozostaje dostępny po
EndDocdo następnegoBeginDoc, więcValidatePDFUA2Structure,CurrentPageNumber,PagesCounti diagnostyka układu nadal na nim działają - Ponieważ hasła są czyszczone, gdy tylko chroniony dokument zostaje zaszyfrowany,
BeginDoczgłasza wyjątek, gdyActivateProtectionjest nadal włączone, a żadne nowe hasło nie zostało ustawione, zamiast chronić kolejny plik pustymi hasłami - Rozpoczęcie nowego dokumentu po przepisaniu załadowanego na tej samej instancji też daje czysty plik
Version 2.763.1
Fixed
- Konwersja EPUB-a albo import HTML z profilem HTML5 nie ryzykują już access violation, gdy akapit nie mieści się na bieżącej stronie; akapit jest teraz zawsze rysowany na nowej stronie
- Ta sama poprawka obejmuje akapity, elementy list i linie poziome w kompaktowym rendererze blokowym używanym przez
HPDFRenderHTMLDocument - Awaria zależała od tego, jak akurat ułożyła się pamięć, więc pojawiała się tylko sporadycznie, najczęściej w buildach 64-bitowych, i mogła zostawić konwersję bez żadnego wyjścia albo uszkodzić jej zawartość
Version 2.762.1
Fixed
- Ponowne wywołanie
BeginDocna instancjiTHotPDF, która zapisała już nowy dokument, nie kończy się już access violation; zamiast tego zgłaszany jest wyjątek proszący o nową instancję, bo instancja nadal trzyma obiekty, obrazy, czcionki i pola formularzy ukończonego dokumentu - Nawet gdyby nie było crasha, drugi dokument niósłby obiekty pierwszego, łącznie z jego zawartością i polami formularzy; jedna instancja na nowy dokument trzyma każdy plik przy jego własnej zawartości
- Wczytanie istniejącego dokumentu przez
LoadFromFilei przepisanie go pozostaje bez zmian
Version 2.762.0
Fixed
- Adnotacje tekstowe, free text, linii, kwadratu, koła, stempla i załącznika plikowego są widoczne w dokumentach PDF/A-2, PDF/A-3, PDF/A-4 i PDF/X-6; niosły one pusty strumień wyglądu, który tylko zaspokajał walidator, a ponieważ przeglądarki rysują wygląd, nic nie było wyświetlane
- Te wyglądy rysują teraz adnotację: ramki kwadratu i koła, linię, ikonę notatki i ikonę załącznika w kolorze adnotacji, ramkę stempla oraz pole free text wypełnione kolorem tła
- Wyjście PDF 2.0 daje strumień wyglądu każdej z tych adnotacji, rozszerzonym adnotacjom markup i nowym polom formularzy, jak wymaga ISO 32000-2 Table 166, i zapisuje
/NeedAppearances false; poza PDF/A i PDF/X free text i nazwa stempla rysowane są w Helvetica - W PDF/A i PDF/X wyglądy free text i stempla nie rysują tekstu, bo każda tam używana czcionka musi być osadzona; tekst pozostaje w adnotacji do wyświetlenia przez przeglądarki
Version 2.761.6
Fixed
- Adnotacje załącznika plikowego (
AddFileAttachmentAnnotation) dają się w przeglądarkach ponownie otwierać i zapisywać: specyfikacja pliku zapisywała sam strumień osadzonego pliku jako/EF, tam gdzie ISO 32000-1 Table 44 wymaga słownika/EFtrzymającego strumień pod/F, więc czytniki zgłaszały brak wpisu pliku - Strumień osadzonego pliku takiego załącznika ma typ
/EmbeddedFile, a tekst adnotacji jest dodatkowo zapisywany jako opis pliku
Version 2.761.5
Fixed
- Destynacje nazwane, JavaScript poziomu dokumentu i załączniki dokumentu są zapisywane z kluczami drzewa nazw w porządku posortowanym, jak wymaga ISO 32000-1 7.9.6; wcześniej zapisywano je w kolejności rejestracji, a czytniki przeszukujące drzewo mogły gubić wpisy (qpdf zgłaszał drzewa jako nieposortowane)
- Załączenie dwóch plików o tej samej nazwie nie tworzy już dwóch wpisów z jednym kluczem, przez co osiągalny pozostawał tylko jeden załącznik; drugi dostaje numerowany klucz, taki jak
a (2).txt, i zachowuje oryginalną nazwę pliku - Zmiany z
AddLoadedDocumentJavaScriptiAddLoadedNamedDestinationsą zapisywane; edytowane drzewo nazw nie było zapisywane z powrotem, gdy mieszkało w słowniku bezpośrednim, więc nowe wpisy przepadały. Obie metody wstawiają w posortowanej pozycji, także w drzewach podzielonych na węzły/Kids, i zastępują istniejący wpis o tej samej nazwie AddLoadedDocumentJavaScriptzapisuje akcję JavaScript jako wartość drzewa nazw zamiast nagiego strumienia skryptu, aAddLoadedNamedDestinationzapisuje operand powiększenia swojej destynacji/XYZRemoveLoadedJavaScriptiRemoveLoadedJavaScriptAllusuwają skrypty z samego dokumentu; wcześniej zmieniała się tylko lista zwracana przez getter-y, a skrypty zostawały w zapisanym plikuSetDocumentAttachmentMetadatazmienia nazwę podanego załącznika; wcześniej zmieniała klucz ostatniego załącznika w drzewie, a zmieniony wpis przesuwa się teraz na swoją posortowaną pozycję
Version 2.761.4
Fixed
- Nowe AcroFormy zawsze definiują czcionkę Helvetica, którą wymieniają domyślne łańcuchy wyglądu pól w domyślnych zasobach formularza (
/DR), jak wymaga ISO 32000-1 12.7.3.3; bezAutoFormAppearancestej czcionki brakowało, więc przeglądarki budujące wyglądy pól nie miały jej, na czym budować AddLoadedComboBoxtworzy prawdziwe combo box; ustawiała flagę Edit zamiast flagi Combo, więc pole było list boxem, który przeglądarki pokazywały jako listę wszystkich opcji- Pola dodawane do załadowanego dokumentu zapisują
/NeedAppearancesjako wartość booleantruezamiast nazwy/true, a tworzony dla nich AcroForm dostaje domyślny łańcuch wyglądu i domyślne zasoby, do których odwołują się ich łańcuchy/DA AddLoadedTextField,AddLoadedCheckBox,AddLoadedComboBox,AddLoadedListBoxiAddLoadedPushButtondają nowemu polu strumień wyglądu, więc pole widać w przeglądarkach niebudujących wyglądów i w dokumentach, których formularz ustawia/NeedAppearances false- Wyglądy generowane dla załadowanych push buttonów (przy dodaniu, przerysowaniu albo spłaszczeniu) rysują podpis, gdzie wcześniej były puste
Version 2.761.3
Fixed
- Zmiana wartości pola tekstowego albo wyboru w załadowanym formularzu przerysowuje teraz pole:
SetFormFieldValue,ResetLoadedFormFieldoraz aktualizacje list wyboru z wielokrotnym zaznaczeniem regenerują strumień wyglądu — zapisany plik pokazywał wcześniej stary tekst w każdej przeglądarce i w druku, bo przeglądarki rysują wygląd, a nie przechowywaną wartość - Generowane wyglądy pól haseł pokazują po jednej gwiezdce na znak zamiast hasła w czytelnej postaci (ISO 32000-1 Table 228), zarówno dla nowych pól z
AutoFormAppearances, jak i dla załadowanych pól przerysowywanych albo spłaszczanych AnalyzeLoadedSignatureRevisionsklasyfikuje nowy słownik wyglądu, strumień wyglądu i jego zasoby, które wypełnienie formularza dodaje po podpisaniu, jako wypełnianie formularza — tak jak robiło to już dla samego pola — więc wypełnianie certyfikowanego formularza w zapisie przyrostowym nie jest już raportowane jako zmiana poza rozpoznanymi strukturami
Version 2.761.2
Fixed
- Bitmapy paletowe o głębi 1 i 4 bity dodawane z kompresją Flate zachowują swoje kolory; wcześniej były przerzucane na systemową paletę 256 kolorów, co przesuwało każdy kolor nieobecny w tej palecie. Teraz są osadzane we własnej głębi bitowej i z własną paletą, co przy okazji zmniejsza dane obrazu
- Bitmapy 1-bitowe, których paleta wymienia biel przed czernią, nie wychodzą już jako negatyw przy kompresji CCITT Group 3, CCITT Group 4 ani JBIG2, łącznie ze ścieżkami wsadową i międzystronicową JBIG2; ciemniejszy kolor palety jest zawsze kodowany jako czerń
icAutoMonoiAddMonochromeImageAutoutrzymują 1-bitową bitmapę z kolorową paletą na Flate zamiast zamieniać ją w czarno-białą przez CCITT albo JBIG2- Dwuwymiarowe obrazy CCITT Group 3 (
icCCITT32) honorują teraz swój parametr/K: pierwszy wiersz i co drugi wiersz są kodowane jednowymiarowo, a/Kwynosi 2, tam gdzie wcześniej każdy wiersz był kodowany dwuwymiarowo przy/K 1, co w ogóle nie dopuszcza wierszy dwuwymiarowych (ISO 32000-1 Table 11, ITU-T T.4)
Version 2.761.1
Fixed
- Obrazy JPEG dodawane z kompresją DCT zachowują własny model kolorów: JPEG-y w skali szarości zapisywane są jako
DeviceGray, a JPEG-y CMYK jakoDeviceCMYK, podczas gdy wcześniej każdy JPEG był deklarowany jakoDeviceRGB; przez to przeglądarki pokazywały pliki w skali szarości zniekształcone albo ucięte, a pliki CMYK w niewłaściwych kolorach - JPEG-y CMYK niosące marker Adobe (typowy wynik z Photoshopa) dostają odwróconą tablicę
/Decode, której wymagają ich wartości próbek (ISO 32000-1 8.9.5.2 i 7.4.8) - Testy przestrzeni barw w PDF/A widzą teraz obrazy JPEG w skali szarości i CMYK jako użycie DeviceGray i DeviceCMYK zamiast DeviceRGB
StampLoadedPageImagestosuje ten sam model kolorów, gdy JPEG jest stemplowany na załadowanej stronie- Pliki o nazwach takich jak
PHOTO.JPGczyscan.jpegwczytują się teraz jako JPEG przy każdym typie kompresji; przeciążenie plikoweAddImagerozpoznaje dane JPEG po sygnaturze zamiast po rozszerzeniu.jpgz uwzględnianiem wielkości liter i nie próbuje już czytać takich plików jako bitmap
Version 2.761.0
Added
- Nowy
AddLoadedSignedSignatureFielddodaje do załadowanego dokumentu pole podpisu gotowe do podpisania, dzięki czemu już podpisany PDF może przyjąć drugi podpis (kontrasygnatę albo zatwierdzenie) w zapisie przyrostowym - Pole rezerwuje przestrzeń podpisu, którą wypełniają
SignPDFWithPFX,PreparePDFForSigningiInsertSignatureHex; poBeginIncrementalUpdateiSaveIncrementalUpdatenowy podpis obejmuje cały plik, a wcześniejsze podpisy pozostają ważne - Opcjonalne informacje o powodzie, miejscu i kontakcie, SubFilter oraz rezerwowany rozmiar podpisu można ustawić per pole; AcroForm jest oznaczany jako podpisany i append-only, a flaga regenerowania wyglądu nie jest dodawana do podpisanego dokumentu
Fixed
- Dokumentowany workflow wielu podpisów dla
BeginIncrementalUpdateopisuje teraz kroki, które działają; poprzedni opis opierał się na bieżącej stronie, która nie istnieje po wczytaniu, oraz na polu podpisu bez zarezerwowanej przestrzeni podpisu, więc podpisywanie kończyło się błędem
Version 2.760.1
Fixed
DrawQRCode,DrawDataMatrix,DrawPDF417iDrawAztecprzywracają po rysowaniu kolor wypełnienia strony, zgodnie z dokumentacją; kształty wypełniane później łapały kolor kodu kreskowego- Te kody kreskowe są rysowane jako jedna ścieżka, a każde pasmo ciemnych modułów w wierszu jest scalane w pojedynczy prostokąt, więc zawartość strony jest mniejsza, a przeglądarki nie pokazują już słabych szwów między sąsiednimi modułami
Version 2.760.0
Changed
- Ustawienie
CryptKeyLengthnaaes256podnosi wyjście do PDF 1.7, gdy jest niższe — tak jak robią to już inne funkcje zależne od wersji — więc dokumenty są faktycznie chronione AES-256. Przy domyślnym wyjściu PDF 1.6 były wcześniej zapisywane AES-128 bez żadnego komunikatu; przy ustawionymStrictVersionLockniższa wersja nadal cofa się do AES-128
Fixed
- Strony pomocy właściwości ochrony pokazywały nazwy uprawnień, które nie istnieją; przykłady i opisy
prPrintorazprPrint12bitpasują teraz do rzeczywistych opcji, a notki o szyfrowaniu kluczem publicznym wyliczają obsługiwane typy kluczy
Version 2.759.0
Fixed
- Podpisane PDF-y wyłączają teraz cały łańcuch
/Contents, łącznie z jego ogranicznikami<i>, poza podpisanymi zakresami bajtów, tak jak wymaga ISO/IEC 32000-1 12.8.3.3; wcześniej ograniczniki były podpisywane, co walidatory sprawdzające zakres bajtów względem wartości podpisu zgłaszały jako nieprawidłowy zakres bajtów - Walidacja PDF MAC podpisów niosących dołączony MAC akceptuje zarówno standardowy zakres bajtów, jak i ten zapisywany przez wcześniejsze wersje
Security
- Weryfikacja podpisów odrzuca dokument, w którego niepodpisanym odstępie między dwoma zakresami bajtów znajduje się cokolwiek poza własnym łańcuchem
/Contentspodpisu — zamyka to lukę signature-wrapping, w której zawartość poza podpisanymi bajtami była raportowana jako objęta podpisem; podpisy z wcześniejszych wersji nadal się weryfikują
Version 2.758.1
Fixed
- Domyślny wygląd, który
AttachSignatureFieldAppearancenadaje niepodpisanemu polu podpisu, znów rysuje swoje jasnoszare tło: w prostokącie wypełnienia brakowało dwóch operandów, a kolor był ustawiany wewnątrz ścieżki, czego przeglądarki nie akceptują - Adnotacje FreeText tworzone na nowej stronie niosą domyślny łańcuch wyglądu wymagany przez ISO 32000-1, więc przeglądarki mogą same rozłożyć ich tekst zamiast pokazywać pustą ramkę
Version 2.758.0
Fixed
- Wbudowany dekoder JBIG2 umieszcza każdy symbol po pierwszym w pasku tekstu tam, gdzie każe ISO/IEC 14492; każdy następny symbol trafiał wcześniej o piksel dalej w prawo, więc tekst w skanach JBIG2 pochodzących od innych enkoderów się rozjeżdżał
- Obrazy JBIG2 zapisane natywnym enkoderem arytmetycznym i słownikiem symboli zawierającym pojedynczy glif dają się teraz odczytać w innych przeglądarkach PDF; identyfikatory symboli były kodowane jednym bitem zamiast żadnego, przez co te przeglądarki wykładały się na pierwszym glifie
- Słowniki symboli łączące glify przez refinement i agregację są dekodowane ze standardowym rozstawem, zgodnie z innymi dekoderami JBIG2
- Obrazy JBIG2 współdzielące globalny słownik symboli zapisują
/DecodeParmsjako tablicę odpowiadającą tablicy/Filter; inne przeglądarki ignorowały pojedynczy słownik i nie znajdowały współdzielonych glifów, więc takie obrazy nie wyświetlały się
Version 2.757.0
Fixed
DirectDrawBarcodei funkcjeSimple*rysują teraz prawdziwe kody kreskowe dla każdej symbologii; większość z nich zwracała wcześniej równomierne naprzemienne słupki bez żadnych danych. GS1-128 z zestawem kodowym C (typ 22) jest rysowany zamiast cofać się do Code 39, a krótkie słupki POSTNET są rysowane na 40 % wysokościDirectDrawBarcodeskaluje szerokości i wysokości słupków według układu współrzędnych strony, więc kody kreskowe pozostają czytelne, gdy skala dokumentu nie jest jeden punkt na jednostkę- Code 128, Code 93 i rodzina EAN / UPC trzymają dokładne szerokości elementów od jednego do czterech modułów niezależnie od ustawionego
Ratio; każdy współczynnik inny niż 2 czynił je wcześniej nieczytelnymi - EAN-8, EAN-13, UPC-A i UPC-E, którym podamy same cyfry danych, dostają dokładaną cyfrę kontrolną; wcześniej ostatnia cyfra danych była brana za cyfrę kontrolną. Przy włączonym
ChecksumUPC-A nie gubi już ostatniej cyfry danych, a cyfra kontrolna UPC-E (która wybiera też parzystość słupków) jest wyliczana z rozwiniętego numeru UPC-A - Cyfry kontrolne MSI są poprawne dla numerów o nieparzystej liczbie cyfr, kody POSTNET dostają swoją cyfrę korekcyjną, a Interleaved 2 of 5 zachowuje ostatnią cyfrę numeru o nieparzystej długości przez dodanie zera wiodącego
- Code 128 A koduje małe litery przez SHIFT zamiast zamieniać je na spacje albo znaki kontrolne, Code 39 zawija małe litery do wielkich, a Codabar zachowuje podane znaki start i stop
- Znaki, których dana symbologia nie potrafi zapisać, rzucają teraz wyjątek; Code 39 i Code 128 gubiły albo podmieniały je wcześniej, a Codabar czytał poza swoją tablicą znaków
- GS1-128 z włączonym
Checksumnie dokleja już kolejnej cyfry kontrolnej doTextza każdym pomiarem albo narysowaniem kodu
Version 2.756.0
Fixed
- Symbole QR Code rysowane przez
DrawQRCodealbo budowane przezTHPDFQRCodeskanują się teraz standardowymi czytnikami: informacja o formacie trafia tam, gdzie każe ISO/IEC 18004, a struktura bloków korekcji błędów jest poprawna dla każdej wersji od 10 do 40 (oraz dla wersji 7-Q) - Automatyczny wybór trybu zostawia tekst z małymi literami w trybie bajtowym, więc URL taki jak
https://example.comnie jest już kodowany i odczytywany wielkimi literami - Tekst, którego długość kończy się jedną lub dwiema cyframi albo jednym znakiem alfanumerycznym, dostaje symbol wystarczająco duży, by go pomieścić; wcześniej ostatnie znaki były wycinane
- Podwójne kodowanie na tej samej instancji
THPDFQRCodenie zmiesza już poprzedniego symbolu z nowym EncodezwracaFalse, gdy jawnie żądana wersja jest za mała albo żądany tryb numeryczny lub alfanumeryczny nie potrafi zapisać danych, zamiast produkować ucięty symbol- Wybór maski nakłada kary za wzorce podobne do finder i za balans ciemnych modułów z ISO/IEC 18004 7.8.3
- Wbudowany dekoder kodów kreskowych czyta standardowe kody QR Code: symbole wieloblokowe z weryfikacją Reed-Solomon, segmenty numeryczne, alfanumeryczne, bajtowe i ECI, ładunki UTF-8 oraz wersje z kilkoma wzorcami wyrównania
Added
HPDFQRFunctionMapiHPDFQRExtractDataWordswystawiają układ modułów oraz de-interleaving bloków z wykrywaniem błędów dla kodu czytającego symbole QR
Version 2.755.9
Changed
- Renderowanie miękkich masek obrazów używa ponownie dokładnych poziomych indeksów próbek i stosuje premultiplikację alfa SSE2 na obsługiwanych celach Delphi x86 i x64, zachowując zaokrąglanie pikseli i anulowanie dzięki ograniczonemu magazynowi tymczasowemu i skalarnemu fallbackowi
Version 2.755.8
Fixed
- Renderowanie pierwszego planu może zostać wznowione, gdy anulowany prefetch stron zwolni zasoby dokumentu, bez czekania aż wątek roboczy zakończy wyjście; jawne anulowanie, podmiana, ponowne wczytanie i zniszczenie nadal robią join z wątkiem, a nieprawidłowe zakresy stron nie powodują już wycieku zawieszonego workera
Version 2.755.7
Fixed
- Renderowanie stron zachowuje teraz bieżącą ścieżkę między przywróceniami stanu grafiki i izoluje ścieżki, przycinanie oraz zapisany stan glifów Form XObject i Type3, także przy nieprawidłowych nadmiarowych przywróceniach i anulowaniu
Version 2.755.6
Fixed
- Renderer prostokątów SIMD respektuje teraz złożone reguły wypełniania even-odd i nonzero, zachowując dziury, kierunek odbitych podścieżek i ułamkowe rozmieszczenie krawędzi; anulowanie podczas rasteryzacji odrzuca częściową bitmapę i jest poprawnie propagowane
Version 2.755.5
Fixed
- Importy formularzy wielokrotnego wyboru rezerwują teraz dokładne wartości opcji przed interpretacją szesnastkowych zapisów zgodności w XFDF, dzięki czemu wartości dosłowne nie wybierają innej opcji, a zapisane wartości pozostają spójne z indeksami zaznaczeń
Version 2.755.4
Fixed
- Ekstrakcja tekstu z pionowego (WMode 1) tekstu CID przesuwa teraz pióro o przemieszczenie z ISO 32000-1 9.4.4, więc odstep znaków skraca krok w dół kolumny, tak jak definiuje to specyfikacja, zamiast go wydłużać
- Korekta pozycji
TJw tekście pionowym przesuwa teraz pióro w dół albo w górę kolumny zamiast w bok, dzięki czemu ekstrahowane kolumny nie rozpadają się, a kolejność czytania pozostaje z góry na dół - Tablica
/DW2CIDFont jest czytana podczas ekstrakcji w podanej kolejności[v1y w1y], więc glify polegające na wartościach domyślnych przesuwają się o pełne em zamiast 0,88 em - Ekstrahowane pionowe originy glifów pozostają na osi symetrii kolumny, a ramki glifów są umieszczane w pionowym originie minus wektor pozycji, przy czym komponent poziomy domyślnie połowę szerokości glifu
- Wpisy listy
/W2opisujące kilka kolejnych CID nakładają podczas ekstrakcji swoje metryki na każdy CID w przebiegu, a nie tylko na pierwszy - Renderer stron i interpreter ekstrakcji tekstu współdzielą teraz jedną implementację reguł przemieszczeń glifów i
TJ, więc pozycje wyrenderowane i ekstrahowane nie mogą się rozjeżdżać
Version 2.755.3
Added
THPDFQCStatementInfodostajeHasPSD2Statement,PSD2RolesOfPSP,PSD2NCANameiPSD2NCAId; deskryptor na poziomie CMS niesie te same polaHPDFParsePSD2QcStatementparsuje trzymane już jako DER stwierdzenie PSD2 i odrzuca każde zniekształcone wejście
Deprecated
PSD2RolesPayeriPSD2RolesPayeepozostają dla kompatybilności źródeł, ale są zawsze puste, ponieważ specyfikacja nie definiuje list ról payer i payee; używajPSD2RolesOfPSP
Fixed
- Stwierdzenie kwalifikowanego certyfikatu PSD2 jest teraz czytane ze swoją strukturą ETSI TS 119 495 i raportuje każdą rolę dostawcy usług płatniczych z OID i nazwą roli, nazwę krajowej instytucji nadzorczej oraz identyfikator instytucji; prawdziwe certyfikaty PSD2 wcześniej w ogóle nie raportowały ról
- Zniekształcone stwierdzenie PSD2, łącznie z długościami przekraczającymi zakres albo nieminimalnymi, brakującymi lub nadmiarowymi komponentami, złymi typami string i nazwami niebędącymi poprawnym UTF-8, jest ignorowane w całości zamiast być raportowane częściowo
Version 2.755.2
Fixed
- Renderowanie stron pionowego tekstu (WMode 1) przesuwa teraz każdy glif o przemieszczenie w przestrzeni tekstu z ISO 32000-1 9.4.4: odstep słów nie jest już skalowany rozmiarem fontu i nie jest już dodawany do dwubajtowych kodów CID, bo dotyczy wyłącznie jednobajtowego kodu spacji
- Odstep znaków w tekście pionowym jest nakładany wzdłuż kierunku pisania dokładnie tak, jak definiuje to specyfikacja, więc kolumny złożone z niezerowym
Tcrenderują się na tej samej wysokości co w innych zgodnych przeglądarkach - Tekst niewidzialny (tryb renderowania 3 i ukryty optional content) przesuwa pionowe kolumny tymi samymi regułami co tekst farbowany, trzymając późniejsze widoczne glify na właściwych miejscach
- Tablica
/DW2CIDFont jest czytana w podanej kolejności[v1y w1y], więc fonty polegające na wartościach domyślnych przesuwają się o pełne em zamiast 0,88 em - Pionowe glify są malowane w pionowym originie minus ich wektor pozycji, przy czym komponent poziomy domyślnie połowę szerokości glifu, co centruje kolumny na pozycji pióra
- Wpisy listy
/W2opisujące kilka kolejnych CID nakładają teraz swoje metryki na każdy CID w przebiegu, a nie tylko na pierwszy
Version 2.755.1
Fixed
- ExportLoadedFormToFDF generuje teraz kompletny korpus FDF, zanim utworzy plik docelowy, więc niepowodzenie w połowie eksportu nie zastępuje już celu obciętym dokumentem
- Skaner wymiany w strumieniu FDF śledzi łańcuchy szesnastkowe, dzięki czemu słowniki pól pozostają całe, gdy wartość hex kończy się tuż przy terminatorze słownika
- Uzgadnianie indeksów zaznaczeń w polach wyboru dekoduje mieszane zapisy PDFDocEncoding, UTF-16 i szesnastkowe jednym matcherem, więc równoważne wartości eksportu odbudowują /I spójnie
- Import XFDF przyjmuje szesnastkowy zapis wartości eksportowej opcji dostarczony jako zwykły tekst literału, przywracając wymiany plików zapisane przez narzędzia innych producentów
- Eksport FDF pomija pola mające wyłącznie widget bez nazwy pola, na wzór eksportera XFDF i zachowania wszystkich importerów
- Demo Stamp w Delphi kotwiczy swój znak wodny i adnotację gumowej pieczątki do faktycznego rozmiaru strony, więc pozostają widoczne na wejściach landscape i innych niż A4
- Demo DigiPrint w C++Builderze zwalnia swoje obrazy i listy linii poszczególnych stron, inicjalizuje współczynnik odstępu linii nagłówka i zgłasza brakujący demo.xml zamiast się wywalać
- Skrypty builda Win64 ABI DLL i workerów kodeków znajdują dcc64 w bin64 w RAD Studio 12 i nowszych, a pełne buildy biblioteki C++Builder wykrywają i czyszczą pozostałości wersji próbnej ze współdzielonego katalogu wyjściowego
Version 2.755.0
Added
- Załadowane pola wyboru wielokrotnego wymieniają teraz pojedyncze zaznaczone wartości przez plikowe i strumieniowe API FDF oraz wywołania zwrotne XFDF świadome tablic, zachowując granice opcji i synchronizując indeksy zaznaczeń przy imporcie
Version 2.754.6
Fixed
SetLoadedFormFieldExportValuekorzysta teraz z normalnej ścieżki aktualizacji wartości pola, zachowując typy wartości przycisków, indeksy zaznaczeń, stany wyglądu, zakodowane łańcuchy i śledzenie zmian w obliczeniach
Version 2.754.5
Fixed
- Wartości formularzy XFDF i elementy tekstowe adnotacji zachowują teraz swoją dokładną treść bez wstawiania białych znaków formatowania, łącznie ze spacjami na początku i końcu, tabulatorami i łamaniami wierszy
Version 2.754.4
Fixed
- Załadowane helpery wartości, wartości domyślnej i maksymalnej długości honorują teraz wpisy dziedziczone i pośrednie, a reset pól zachowuje typy wartości domyślnych, synchronizuje zaznaczenia list i stany przycisków oraz zostawia pola sąsiednie nietknięte; zregenerowane wyglądy przycisków zachowują stan zaznaczenia i poprawne granice renderowania
Version 2.754.3
Fixed
- Załadowane nazwane pola potomne pozostają teraz indywidualnie adresowalne, gdy ich typ pola jest dziedziczony, z dziedziczonym typem, flagami i opcjami dostępnymi przez helpery pól, a usuwanie zachowuje pola sąsiednie i ich widgety
Version 2.754.2
Fixed
- Zregenerowane wyglądy załadowanych pól wyboru wyświetlają teraz etykiety opcji Unicode przy zachowaniu wartości eksportowych, renderują niezaznaczone opcje listy i podświetlają pojedyncze lub wielokrotne zaznaczenia spójnie z wartościami i indeksami pola
Version 2.754.1
Fixed
- Aktualizacja załadowanego pola wyboru utrzymuje teraz indeksy zaznaczonych opcji spójne z nową wartością, łącznie z wartościami eksportowymi opcji i edytowalnymi wpisami poza listą opcji, bez modyfikowania współdzielonych tablic zaznaczeń
Version 2.754.0
Added
- Opcjonalne fabryki HPDFCreateTesseractOCREngine i HPDFCreateRapidOCREngine podłączają lokalne programy rozpoznawania i modele dostarczone przez wywołującego do przeszukiwalnych warstw tekstu, z tekstem Unicode, współrzędnymi słów, limitami czasu, anulowaniem i budżetami wyjścia
Fixed
- Poprawiono przyrosty macierzy tekstu, szerokości pośrednich fontów CID, odtwarzanie przycięć q/Q i Form, orientację zredukowanego JPEG, miękkie maski obrazów i palety strumieni Indexed, przywracając układ tekstu i treść obrazów na dotkniętych stronach
- Małe osadzone czcionki TrueType z wypełnionymi glifami używają teraz lokalnego antyaliasingu pokrycia, by poprawić cienkie kreski przy niskim DPI; anulowane żądania OCR są raportowane jako anulowanie, nawet gdy silnik rozpoznawania zwróci porażkę
- RenderOutputDither działa teraz we wszystkich backendach renderowania i przy równoległym renderowaniu stron, ze spójnym unieważnianiem pamięci podręcznej i obsługą anulowania
Version 2.753.0
Added
- SetLoadedFreeTextPlainText jawnie konwertuje obsługiwane załadowane adnotacje FreeText do zwykłego tekstu ASCII Helvetica i odbudowuje ich widoczny wygląd dla pełnych przepisań i zapisów przyrostowych
Fixed
- Konwersja załadowanych stron i walidacja zapisu rozwiązują teraz pośrednie i dziedziczone ramki stron, zachowując współdzielone wymiary stron zamiast zastępować je A4
Version 2.752.5
Fixed
- Inicjalizacja bitmapy strony sprawdza teraz anulowanie podczas czyszczenia ograniczonych bloków, zwalnia niedokończone bitmapy i nie opóźnia renderowania pierwszego planu, dopóki anulowana praca prefetch kończy inicjalizację
Version 2.752.4
Fixed
- Zamknięcie lub przeładowanie dokumentu zwalnia teraz należące do niego grafy obiektów PDF i payloady strumieni, łącznie ze współdzieloną i cykliczną własnością, bez podwójnego zwalniania powiązanych referencji
Version 2.752.3
Fixed
- Zmiany wartości załadowanego pola checkbox synchronizują teraz stany wyglądu nawet wtedy, gdy słownik wyglądu normalnego zawiera tylko stan zaznaczony
Version 2.752.2
Fixed
- Włączenie odtwarzalnego wyjścia po zbudowaniu dokumentu ustala teraz znacznik czasu utworzenia, więc równoważne zapisy pozostają identyczne bajt w bajt mimo tyknięć zegara
Version 2.752.1
Fixed
- Nazwy pól załadowanego formularza dekodują teraz łańcuchy PDF spójnie, dzięki czemu pola z nazwami UTF-16 da się znajdować i aktualizować bez zmiany ich tożsamości
Version 2.752.0
Fixed
- Przeniesienie załadowanej adnotacji innej niż widget zachowuje teraz tożsamość obiektu adnotacji i aktualizuje jej opcjonalną referencję strony na stronę docelową
Version 2.751.0
Fixed
- Usuwanie załadowanych stron utrzymuje teraz nazwane cele, cele konspektów, drzewa struktury, drzewa rodziców i referencje obiektów adnotacji, eliminując osiągalne referencje null zarówno w pełnych przepisaniach, jak i w zapisach przyrostowych
Version 2.750.0
Fixed
- Pełne przepisania PDF rozszerzają teraz nieprzeczytane skompresowane obiekty przed zastąpieniem kontenerów strumieni obiektów, zachowując fonty, przestrzenie barw i ActualText, co naprawia zniekształcony tekst chiński, zmieniony wygląd stron i zmieniony tekst ekstrakcji
- Zaszyfrowane dokumenty z pustym hasłem użytkownika wczytują się teraz i od razu zaczynają przepisywanie, a zablokowane strumienie obiektów zawodzą jawnie zamiast produkować niekompletny dokument
- Niemodyfikowane obiekty liczbowe zachowują swoją precyzję źródłową, co zapobiega subtelnym dryfom koloru i przezroczystości po przepisaniu
- Kopiowane strony zachowują swoje zwalidowane nazwy zasobów i referencje, naprawiając błędy pośrednich słowników zasobów i źle powiązane obrazy
Version 2.748.6
Fixed
- Naprawiono podsekcję cross-reference, która deklarowała więcej wpisów, niż mieści tabela, i przechodziła przez cały zadeklarowany licznik bez danych do odczytania, przez co odrzucenie wadliwego pliku o czterdziestu bajtach zajmowało dziesiątki sekund
- Naprawiono sytuację, w której job runner tracił wszystkie już uzyskane wyniki, gdy operacja rzuciła wyjątek, a import HTML gubił obiekt obrazu, gdy nie dało się utworzyć strumienia wokół niego
Version 2.748.5
Fixed
- Naprawiono nieotwieranie plików PKCS#12 z hasłem spoza ASCII: hasło jest bajtowym ciągiem UTF-8, ale było poszerzane o jeden bajt na raz zamiast zostać zdekodowane, więc klucz pochodny był błędny dla każdego znaku spoza ASCII. Pliki chronione nowoczesnym schematem PBES2 nie były dotknięte, stąd różne zachowanie obu przypadków
- Naprawiono rzucanie access violation zamiast własnego błędu przez walidator wsadowy podpisów i cache dowodów revokacji przy konstrukcji z nieprawidłową opcją, ponieważ destruktor wykonywał się, zanim zostały utworzone pola, które zwalnia
- Naprawiono zawodzenie w destruktorze zadania pobierania dowodów, gdy jego argumenty zostały odrzucone, ponieważ sprawdzenia wykonywały się, zanim sam wątek został utworzony
- Naprawiono kodowanie przez dostawcę podpisów w chmurze identyfikatora algorytmu, którego drugi arc przekracza 39; wadliwy identyfikator rzuca teraz własny błąd dostawcy zamiast błędu konwersji
- Kontenery certyfikatów i podpisów odrzucają teraz zagnieżdżony element, który deklaruje długość sięgającą poza element, który go zawiera, więc to, co jest walidowane, i to, co obejmuje podpis, nie mogą się już różnić
- Wartości kluczy prywatnych są teraz wymazywane z pamięci po podpisie RSA zamiast zostawać na heapie na następną alokację
Version 2.748.4
Fixed
- Naprawiono wczytywanie czcionek Type 1 odczytujące każdą właściwość z pierwszej linii programu czcionki: lista tokenów była uzupełniana bez opróżnienia, więc ciągi wersji, rodziny i wagi, stem hints oraz długość klucza charstring pochodziły wszystkie ze starych tokenów. Czcionki Type 1 raportują teraz własne metadane
- Naprawiono przechowywanie długości klucza charstring jako wskaźnika do już zwolnionego ciągu i użycie jej bez sprawdzenia zakresu; jest teraz przechowywana jako wartość i ograniczana do zakresu dozwolonego przez format
- Naprawiono zawsze cofanie się czcionek nieosadzonych do systemowej czcionki domyślnej: żądana nazwa kroju była kopiowana bajt po bajcie do rekordu czcionki wide-character, więc żadna zainstalowana rodzina nigdy nie pasowała
- Naprawiono parsowanie osadzonych czcionek TrueType i OpenType odczytujące za koniec uciętego programu czcionki przy dekodowaniu konturów glifów, argumentów glifów kompozytowych i tabeli CFF kontenera OpenType, a wadliwa mapa znaków nie żąda już ujemnej tablicy glifów
- Naprawiono tablice cross-reference i strumienie o przepełniających się zadeklarowanych numerach obiektów: wpis podający numer blisko limitu całkowitego zawijał się do ujemnego indeksu i był zapisywany poza tablicą, a zadeklarowana liczba obiektów albo
/Sizeznacznie większa niż plik mógł pomieścić nadawała rozmiar tablicom loadera wyłącznie na podstawie tej deklaracji
Version 2.748.3
Fixed
- Naprawiono odrzucanie poprawnych danych przez Data Matrix: rozmiar symbolu był szacowany przez połowę liczby cyfr, ale tylko sąsiednie cyfry dzielą słowo kodowe, więc tekst taki jak
1a2a3awybierał symbol za mały na własne dane i nie dał się zakodować - Naprawiono dekodowanie czterobajtowych znaków UTF-8 w XFDF, takich jak emoji, do złej pary surrogate, a nierozpoznany bajt nie połyka już trzech znaków, które po nim następują
- Rekordy regionów w rozszerzonych metaplikach ograniczają teraz liczbę prostokątów rozmiarem rekordu zamiast ufać liczbie z nagłówka regionu, która mogła spowodować odczyt daleko poza rekord
- Obrazy PNG, których zadeklarowana szerokość razy wysokość przekracza adresowalny zakres, są odrzucane na poziomie nagłówka zamiast alokować bufor pikseli o ujemnej długości
- Próbkowanie obrazów w wysokiej jakości zgłasza teraz żądanie poza zakresem zamiast przepełniać rozmiar bufora pośredniego
- Obraz WebP meta prefix podający więcej grup entropii, niż ma pikseli, jest odrzucany zamiast alokować setki megabajtów tabel prefixu z kilkuset bajtów wejścia
- Naprawiono wycieki na ścieżkach błędów kodowania Aztec, dekodowania bitmap WebP i puli workerów dekodowania object stream, gdzie częściowo zbudowany obiekt był porzucany, gdy późniejszy krok rzucił wyjątek
Version 2.748.2
Fixed
- Naprawiono gubienie ostatnich bitów słowa kodowego przez symbole QR Code: przejście po rozmieszczeniu modułów pomijało skrajnie lewą kolumnę, więc ogon ostatniego bloku korekcji błędów nigdy nie był zapisywany do symbolu
- Naprawiono wypełnianie całej reszty bloku danych zerami przez terminator QR, co nie zostawiało miejsca na słowa kodowe wypełniaczy 0xEC / 0x11 wymagane przez ISO/IEC 18004; symbol wersji 1 niósł w zamian sześć zerowych słów kodowych
- Nowy test czyta wygenerowany symbol z powrotem z jego modułów, więc blok danych, słowa kodowe wypełniaczy, blok korekcji błędów, maska i rozmieszczenie są sprawdzane względem standardu, a nie względem własnego wyjścia enkodera
Version 2.748.1
Fixed
- Naprawiono zawieszanie się trzech parserów na wadliwych danych zamiast ich zgłaszania: parser obiektów na
>>wewnątrz tablicy lub]wewnątrz słownika, czytnik CMap na zabłąkanym nawiasie lub klamrze, a czytnik XFDF na konstrukcji bez nazwy tagu (na przykład deklaracji typu dokumentu) albo zabłąkanym bajcie między atrybutami. Każdy z nich przestawał przesuwać kursor, więc pojedynczy nieoczekiwany bajt zamieniał parsowanie w nieskończoną pętlę - Naprawiono czytanie sekcji CDATA w XFDF jako markupu: ich zawartość jest teraz traktowana jako tekst elementu, a znacznik końca sekcji jest mierzony poprawnie zamiast połykać pierwszy znak
- Naprawiono przepełnienie sprawdzenia rozmiaru przez długość chunka WebP bliską 2 GB, przez co kopia ładunku czytała za koniec bufora pliku; długości chunków są teraz sprawdzane zakresowo w arytmetyce 64-bitowej
- Naprawiono zwalnianie bufora chunka PNG o długości 0xFFFFFFFF, gdy chunk wciąż raportował zadeklarowaną długość, co pozostawiało późniejsze odczyty wskazujące na zwolnioną pamięć; zbyt długie chunki są odrzucane
- Naprawiono przepełnienie obliczenia rozmiaru bufora wiersza w dekodowaniu faksu CCITT dla bardzo dużych zadeklarowanych wymiarów strony, co mogło pisać poza bufor; magazyn wierszy jest teraz ograniczony, a dekodowanie zatrzymuje się czysto na limicie
- Naprawiono odczytywanie bajta za koniec linii skanu przez enkoder CCITT dla szerokości będących wielokrotnościami ósemki
- Naprawiono czytanie rekordów komentarzy rozszerzonych metaplików przez 32-bitowy obcięty wskaźnik w kompilacjach 64-bit, co odczytywało niepowiązany adres dla każdego EMF z komentarzem GDI
- Naprawiono publikowanie niezainicjalizowanej pamięci jako ogona tablicy kolorów przez obrazy 8-bit z mniej niż 256 wpisami palety; tablica deklaruje teraz rzeczywistą liczbę wpisów
- Naprawiono wyczerpywanie stosu przez głęboko zagnieżdżone struktury BER o nieokreślonej długości przy parsowaniu kontenera podpisu lub certyfikatu; zagnieżdżenie ponad 128 poziomów jest odrzucane
Version 2.748.0
Fixed
- Naprawiono korekcję błędów wszystkich kodów 2D rysowanych przez bibliotekę: QR Code, Data Matrix, PDF417 i Aztec budowały wielomian generatora od wyrazu wolnego w górę, ale dzieliły przez niego tak, jakby pierwszy był wyraz wiodący, więc każdy symbol niósł słowa kontrolne, których nie akceptuje żaden czytnik zgodny ze standardem. Słowa kontrolne pasują teraz do przykładów obliczeniowych z ISO/IEC 18004, ISO/IEC 16022 i ISO/IEC 15438
- Naprawiono gubienie ładunku przez symbole Aztec: enkoder dzieli tablicę słów kodowych w miejscu, a wywołujący emituje tę samą tablicę, więc słowa komunikatu były nadpisywane przez dzielenie, a symbol nie niósł ani danych, ani ważnego komunikatu trybu
- Naprawiono startowanie pierwiastków wielomianu generatora Data Matrix o jedną potęgę za nisko, co dawało inny wielomian niż ten, który przepisuje załącznik E ISO/IEC 16022
- Naprawiono wzorzec finder Data Matrix: pełne L to teraz lewa kolumna i dolny wiersz, a naprzemienny tor zegarowy to górny wiersz i prawa kolumna, każdy zaczynający się ciemnym modułem w narożniku wspólnym z L. Oba były zamienione, więc czytniki nie potrafiły ustalić orientacji symbolu
Version 2.747.4
Fixed
- Naprawiono zapisywanie liczb PDF według systemowego separatora dziesiętnego przy edycji wczytanych dokumentów: page stitching, rectangle redaction, stemple tekstowe i obrazowe, złożone kształty znaków wodnych oraz wyglądy elips wypisują teraz zawsze kropkę, więc dokumenty edytowane przy locale z przecinkiem dziesiętnym (na przykład niemiecki albo francuski Windows) nie zawierają już strumieni zawartości odrzucanych przez przeglądarki PDF
- Naprawiono zależność wczytywania czcionek Type 1 od locale systemu: liczby rzeczywiste w FontMatrix, BlueValues, stem hints i charstring są teraz parsowane jako liczby PostScript z kropką, więc czcionki PFB zachowują swoje metryki i obrysy w systemach z przecinkiem dziesiętnym zamiast po cichu się rozsypywać
- Naprawiono parsowanie rozmiaru i koloru czcionki w default-appearance (
/DA), atrybutów HTML width isize, wyników FormCalc oraz liczb JSON zadania według locale procesu; teraz we wszystkich kierunkach stosują format niezmienny (invariant) - Naprawiono rysowanie wbudowanego kodu kreskowego zapisujące prostokąty słupków przez format zależny od locale, co dawało nieprawidłowy strumień zawartości w systemie z przecinkiem dziesiętnym
- Kompilacje Free Pascal parsują i formatują teraz operandy strumieni zawartości, metryki ekstrakcji tekstu oraz liczby JavaScript w formacie niezmiennym (invariant), zgodnie z kompilacjami Delphi, zamiast wracać do konwersji zależnej od locale
- Zapisywarka liczb nie nadpisuje już separatora dziesiętnego w globalnych ustawieniach formatu aplikacji gospodarza przy każdym wywołaniu, co zmieniało sposób, w jaki reszta programu formatowała własne liczby, i było niebezpieczne, gdy kilka wątków produkowało dokumenty jednocześnie
Version 2.747.3
Fixed
- Naprawiono zapisywanie liczb PDF według systemowego separatora dziesiętnego przy edycji wczytanych dokumentów: page stitching, rectangle redaction, stemple tekstowe i obrazowe, złożone kształty znaków wodnych oraz wyglądy elips wypisują teraz zawsze kropkę, więc dokumenty edytowane przy locale z przecinkiem dziesiętnym (na przykład niemiecki albo francuski Windows) nie zawierają już strumieni zawartości odrzucanych przez przeglądarki PDF
- Naprawiono sklejanie się dołączanej treści z ostatnim operatorem już obecnym na stronie, gdy strona nie kończyła się białym znakiem — powstawał wtedy nieczytelny token typu
Q0.5, przez który przeglądarka mogła odrzucić całą stronę; tam, gdzie trzeba, wstawiany jest teraz koniec wiersza
Version 2.747.2
Added
- Dodano obsługę Free Pascal Win32: pakiet Lazarus buduje się teraz zarówno dla
i386-win32, jak ix86_64-win64przez dedykowane punkty wejścia builda, zestawy smoke testów przyjmują argument architektury, a problemy z kompilatorem 32-bit i linkowaniem symboli C zostały naprawione; tworzenie i wczytywanie PDF, kompresja Flate, szyfrowanie AES oraz obsługa dokumentów CBZ są pokryte na obu targetach
Version 2.747.1
Fixed
- Naprawiono ponowną próbę z obróconą maską we wbudowanym dekoderze kodów kreskowych, która zostawiała nieaktualne bajty w nietkniętych komórkach obróconej maski -- wymyślało to fantomowy tusz i czyniło kody Code 39 obrócone o ćwierć obrotu nieczytelnymi; bufor obrócony jest teraz jawnie zerowany, więc obrócone fotografie i skany kodów Code 39 dekodują się przez ponowną próbę z rotacją
Version 2.747.0
Added
- Dodano import obrazów WebP:
AddImageFromFileprzyjmuje teraz pliki.webpprzez wbudowany bezstratny dekoder (VP8L) implementujący RFC 9649 -- kanoniczne kody prefiksowe, przestrzenne meta kody prefiksowe, wsteczne odwołania LZ77 z mapą odległości sąsiedztwa, cache kolorów oraz wszystkie cztery transformacje odwrotne (predyktor, kolor, subtract-green, indeksowanie kolorów z pakowaniem pikseli); stratne klatki VP8 są odrzucane z czytelnym komunikatem
Version 2.746.0
Added
- Wbudowany dekoder kodów kreskowych czyta teraz symbole QR w każdej z ośmiu orientacji, w jakich może przyjść sfotografowana albo zeskanowana strona: wzorce finder wskazują brakujący narożnik, a próbkowana macierz modułów jest obracana lub odbijana do oczekiwanego układu przed dekodowaniem, więc ujęcia obrócone o ćwierć obrotu i odbite lustrzanie czytają się bez wstępnego przetwarzania
Version 2.745.0
Added
- Dodano ocenę kwalifikowanych certyfikatów eIDAS dla załadowanych podpisów: GetLoadedSignatureQCStatements raportuje QCStatements certyfikatu sygnatariusza wg ETSI EN 319 412-5 -- wartości QcCompliance, QcSSCD i QcType, walutę/kwotę/wykładnik QcLimitValue oraz lokalizacje PDS -- a do tego role płatnika i odbiorcy PSD2 z TS 119 495 i uruchamia heurystykę kwalifikowanego podpisu, gdy QcCompliance i QcSSCD są zgłoszone jednocześnie (decyzja o zaufaniu do QTSP zostaje po stronie wywołującego)
Version 2.744.0
Added
- Dodano impozycję N-up dla dokumentów załadowanych: ComposeLoadedPagesNUp układa każdą stronę na arkuszach komponowanych w siatkę o rozmiarze papieru źródłowego (2-up, 4-up, 6-up, do 16x16) z wydrukiem gotowym do druku, wchłaniając
/Rotatekażdej strony do macierzy pozycjonowania, współdzieląc zasoby strony ze złożonym formularzem i opcjonalnie rysując ramki komórek o grubości włosa z regulowanym odstępem
Version 2.743.0
Added
- FlattenLoadedAnnotations wypala teraz adnotacje bez strumienia wyglądu zamiast po cichu je pomijać: widgety najpierw dostają wygląd pola generowany z wartości pola (przypadek
/NeedAppearancestypowy dla formularzy drukowanych z przeglądarki), więc wprowadzona wartość przechodzi do zawartości strony - Adnotacje oznaczeń bez
/APdostają syntezowany wygląd rysowany z ich własnych właściwości -- tekst FreeText i Stamp ze stylizacją/DAi wyrównaniem/Q, kształty Square i Circle z kolorem/C//ICi szerokością/BS, kreski Line i Ink oraz oznaczenia Highlight / Underline / StrikeOut / Squiggly honorujące/QuadPointsi krycie/CA - Adnotacje ukryte (flaga ukrycia
/F) pozostają adnotacjami, gdy nie mają wyglądu, bo wypalenie niewidocznej notatki uczyniłoby ją widoczną
Version 2.742.0
Fixed
- Naprawiono kompilacje pakietu Free Pascal zawodzące od 2.738.0: deklaracje elementów dowodów LTV i seed value trafiły do bloku warunkowego tylko-Delphi, podczas gdy ich implementacje były bezwarunkowe, więc pakiet Free Pascal przestał się kompilować; implementacje noszą teraz ten sam warunek i pakiet znów się buduje
Added
- Import HTML rozwiązuje teraz tabele na pełnej siatce zajętości, więc komórki z
rowspanicolspanpoprawnie zagarniają swoje kolumny, a kolejne wiersze omijają zajęte sloty zamiast przesuwać się w lewo - Wysokości wierszy tabeli pochodzą z łamania tekstu komórki jej własną czcionką zamiast z szacowania po liczbie znaków, więc mieszana wąska i szeroka zawartość nie produkuje już przepełnionych ani przerosłych komórek
- Szerokości kolumn uwzględniają podpowiedzi szerokości
<col>i atrybuty szerokości poszczególnych komórek, a wiersze nagłówkowe oznaczone<thead>(lub wiodące wiersze z samych<th>) powtarzają się na górze każdej kontynuowanej strony, gdy tabela przechodzi przez podział strony - Grupa rowspan zostaje w całości przez podziały stron: wiersze połączone rozpiętą komórką przechodzą na następną stronę razem, więc rozpięta komórka nigdy nie zostaje przecięta
Version 2.741.0
Fixed
- Naprawiono kończenie działania kompilacji Free Pascal zamiast zgłaszania błędu, gdy dokument potrzebował kodeka, którego te kompilacje nie linkują: otwarcie TIFF-a, dekodowanie obrazu JPEG 2000 lub JBIG2, odczyt progresywnego albo pomniejszonego JPEG-a, transformacja kolorów ICC czy żądanie rekompresji Zopfli kończyły proces z miejsca
- Każda z tych operacji zawodzi teraz w sposób, jakiego jej wywołujący już się spodziewa, więc dokument używający którejś z nich ładuje się z pominiętą tą funkcją, zamiast zbijać całą aplikację
Added
- Dodano ekstrakcję tekstu w kolejności struktury: ExtractLoadedPageStructureText przechodzi przez drzewo struktury dokumentu w kolejności autorstwa (ISO 32000-1 14.8.4) i skleja przebiegi marked-content strony według MCID, więc otagowane dokumenty, jak formularze urzędowe czy publikacje dostępne, wyodrębniają swoją autorytatywną kolejność czytania zamiast geometrycznego zgadywania; glify, których drzewo nigdy nie zgłasza, spadają do geometrycznego ogona i są liczone w raporcie nieotagowanych
Version 2.740.0
Fixed
- Naprawiono gubienie przezroczystości przez kolorowe glify w kompilacjach Free Pascal: osadzone kolorowe bitmapy były czytane ścieżką wyrzucającą kanał alfa, więc każdy glif emoji albo kolorowej czcionki rysowany był jako nieprzezroczysty prostokąt. Bitmapy zachowują teraz swoją alfę per piksel
Fixed
- Włączono uzgodnienie kluczy ECDH P-384: końcowe odejmowanie warunkowe w mnożeniu Montgomery'ego CIOS porównywało z P limb plus borrow, co na złożonych z samych jedynek starszych limb liczb pierwszych P-384 / P-521 zawijało się do zera i po cichu źle pożyczało; porównanie wykrywa teraz pożyczkę bez przepełniającego dodawania, a wspólny sekret P-384 zgadza się z wektorami referencyjnymi OpenSSL bajt w bajt
Version 2.739.0
Added
- Kompilacje Free Pascal szyfrują i deszyfrują teraz dokumenty: punkty wejścia AES są obsługiwane przez własną implementację FIPS-197 biblioteki zamiast błędu unsupported-operation, więc pliki chronione AES-128 i AES-256 można tam tworzyć i otwierać
- Szyfrowanie i deszyfrowanie AES-GCM, łącznie z kontekstem strumieniowym używanym dla dużych ładunków, jest dostępne w kompilacjach Free Pascal
- Smoke test Free Pascal sprawdza teraz szyfr względem znanej odpowiedzi FIPS-197, ćwiczy round tripy PKCS#7 i GCM oraz tworzy i ponownie ładuje dokument chroniony AES-256 z odrzucaniem hasła
Added
- Dodano typografię akapitów CSS2.1 do silnika importu HTML5: text-align (z atrybutem legacy align i mapowaniem tagu center), letter-spacing i word-spacing przez operatory PDF Tc / word-space, text-indent dla wcięć pierwszego wiersza oraz reguły text-decoration underline / line-through, więc istniejące importy HTML ze stron i maili zachowują wyśrodkowane nagłówki, wcięcia i podkreślenia
- Rozszerzono wbudowany dekoder QR poza wersję 1: wersja symbolu wyliczana jest teraz z geometrii finderów przez podzielność siatki (dekodują się wersje 2-40 z czystą siatką modułów), limit długości w trybie bajtowym podąża za pojemnością z tabeli 7 ISO/IEC 18004 na wersję, a mapa modułów funkcyjnych obejmuje wzorce wyrównania i bloki informacji o wersji dla wyższych symboli
Version 2.738.0
Added
- Kompilacje Free Pascal kompresują i dekompresują teraz dokumenty natywnie: kodek deflate dostarcza wbudowany backend nad implementacją zlib w Pascalu dostarczaną z Free Pascal, więc zawartość FlateDecode nie zgłasza już błędu unsupported-operation
- Skompresowane dokumenty można tworzyć i ponownie ładować pod Free Pascal z domyślnym ustawieniem kompresji, a strumienie odwołań krzyżowych, strumienie obiektów, osadzone pliki i skompresowana zawartość stron -- wszystko to dekoduje się tam
- Backend pokrywa wrappery zlib i surowego deflate, wrapper gzip i automatyczną detekcję nagłówka, więc importy SVG i fallback dekompresji z wieloma rozmiarami okna zachowują się jak pod Delphi
- Smoke test Free Pascal weryfikuje teraz kodek przez self test wrappera i sumy kontrolnej plus round trip skompresowanego dokumentu
Added
- Dodano uzupełnianie łańcucha przez AIA caIssuers: HPDFFetchAIAIntermediates obchodzi endpointy access-method 1.3.6.1.5.5.7.48.2 zestawu certyfikatów CMS przez transport wywołującego (dekodują się zarówno gołe ciała DER, jak i PEM), a opcja walidacji FetchMissingIntermediates podaje pobrane certyfikaty pośrednie do budowy ścieżki, więc podpisy cloud-signera z samotnym certyfikatem end-entity walidują się zamiast wysypywać na budowie ścieżki
- Dodano włączanie LTV jednym wywołaniem: PopulatePAdESLTVEvidence przechodzi przez każdy załadowany podpis, pobiera online jego certyfikaty pośrednie plus dowody OCSP/CRL i zapisuje materiał do DSS dokumentu, podnosząc świeży dokument podpisu B-B do B-LT bez ręcznie składanych tablic dowodów
- Dodano egzekwowanie seed value przy podpisywaniu: CheckLoadedSignatureSeedValue czyta słownik /SV pola podpisu i sprawdza kandydata SubFilter, DigestMethod, Reason i profil DocMDP względem jego ograniczeń z semantyką bitu force z ISO 32000-1 12.7.5.5, więc ograniczenia autora formularza są honorowane zanim padnie podpis
Version 2.737.0
Added
- Dodano ścisłą weryfikację zapisu przez właściwość VerifySavedOutput: po zapisaniu świeża instancja czytnika z wyłączonym odzyskiwaniem odwołań krzyżowych przeładowuje plik, więc uszkodzona serializacja zgłasza się w miejscu wywołania zamiast wychodzić na jaw u kolejnego odbiorcy
- Rozszerzono ReproducibleOutput na dokumenty szyfrowane: strumienie AES-CBC używają statycznej konwencji IV 14*(1+i), materiał klucza i sole wywodzą się deterministycznie, a kanoniczny ID dokumentu normalizuje ulotne timestampy Info, dając szyfrowane zapisy identyczne bajt w bajt dla pipeline'ów regresyjnych
Version 2.736.0
Added
- Dodano wysokiej jakości resampling i dithering monochromatyczny przez nową jednostkę HPDFResample: separowalne jądra Catmull-Rom bicubic i Lanczos3 zastępują semantykę rozciągania GDI przy pomniejszaniu obrazów przez właściwość ImageDownsampleKernel, a RenderOutputDither stosuje dyfuzję błędu Floyd-Steinberga po złożeniu strony, więc wydruk podglądu zachowuje fotograficzne detale w czystej czerni i bieli
Version 2.735.2
Fixed
- Naprawiono przekazywanie przez strumienie dekompresji Flate adresu zmiennej bufora zamiast samego bufora przy uzupełnianiu ze strumienia źródłowego, co psuło pamięć przy każdym odczycie i mogło ubić proces; dotknięte jest ładowanie skompresowanych dokumentów, klasy strumieni inflate oraz helpery strumieni kompresji i dekompresji
Version 2.735.1
Fixed
- Naprawiono zapadanie się rosnących pól XFA bez źródła danych do jednego wiersza przy spłaszczaniu: ich wysokość jest teraz mierzona z tekstu, który sam szablon deklaruje, bo właśnie to takie pole wyświetla. Pole związane z pustymi danymi nadal mierzy się jako puste
Version 2.735.0
Added
- Kompilacje Free Pascal obejmują teraz całą bibliotekę: każda jednostka kompiluje się z FPC 3.2.2 i Lazarusem, podczas gdy wcześniej tylko podstawowa ścieżka tworzenia i ładowania
- Kontenery XPS, EPUB i CBZ można importować pod Free Pascal, przez wbudowany czytnik ZIP tylko-do-odczytu, który obsługuje rozmiary ZIP64, wpisy stored i deflated, weryfikację CRC oraz wpisy szyfrowane w tradycyjny sposób z tym samym callbackiem hasła co ścieżka Delphi
- Spłaszczanie formularzy XFA, silnik obliczeń FormCalc, runtime widgetów, komponenty przeglądarki dokumentów, handlery czcionek Type 1, import HTML, weryfikacja podpisów i job runner -- to wszystko kompiluje się w kompilacjach Free Pascal; spłaszczenie pakietów XFA załadowanego dokumentu wymaga dodatkowo kodeka deflate, którego te kompilacje nie linkują
Fixed
- Naprawiono 64-bitowe zamiany bajtów w jednostce pomocniczej PNG, które zwracały błędne wartości na Win64 i sprawiły, że jednostka w ogóle wypadła z builda
Added
- Dodano wykrywanie brakujących glifów w czasie rysowania: właściwość TrackUnresolvedGlyphs rejestruje każdy punkt kodowy, który renderowałby się jako pudełko tofu .notdef przez aktywny krój Unicode, odpala zdarzenie OnUnresolvedGlyph przy każdym trafieniu i zostawia niezarejestrowane dokumenty czysto-GDI nietknięte
- Dodano obsługę legacy tabeli kern: RegisterUnicodeTTF przechwytuje tabelę kern z ery Apple/GDI, a emisja kerningu spada do jej binarnego wyszukiwania par formatu 0, gdy czcionka nie ma lookupów kern GPOS, przywracając klasyczne odstępy par w czcionkach typu stockowego Arial
- Dodano fallback czcionki per run wewnątrz układu akapitu: WideTextOutBox rozcina teraz każdy zawinięty wiersz na punktach kodowych, których aktualna czcionka nie umie zmapować, i rysuje każdy run w rozwiązanej czcionce fallback, więc mieszane akapity łacińsko-emoji-CJK renderują się bez tofu, gdy łańcuchy fallback są zarejestrowane
Version 2.734.0
Added
- Dodano plumbing żądań timestampów RFC 3161: HPDFRFC3161BuildRequest emituje DER TimeStampReq ze świeżym nonce'm positive-INTEGER, opcjonalnym OID polityki i certReq, a HPDFRFC3161ParseResponse dekoduje nagłówek PKIStatusInfo i wyciąga token, więc callbacki transportu TSA to trzy linijki zamiast studium DER
- Dodano deklarację rozszerzenia deweloperskiego ISO/TS 32002 (THotPDF.EnsureISO32002Extensions) obejmującą algorytmy podpisów EdDSA i dodatkowe krzywe ECDSA w dokumentach PDF 2.0, idempotentną i bramkowaną wersją jak deklaracja SHA-3 z 32001
Version 2.733.0
Added
- Dodano przenośne uzgodnienie kluczy X25519 i X448 drabiną Montgomery plus ECDH na krzywych NIST P-256 / P-521 z mnożeniem Montgomery CIOS, co pozwala tworzyć i odpakowywać odbiorców klucza publicznego key-agreement (KARI) całkowicie w procesie; RFC 7748 i wektory referencyjne generowane z OpenSSL przypinają zachowanie drabiny do suite'u regresyjnego
- Dodano HPDFUnwrapKeyAgreementRecipientEnvelope razem z punktami wejścia AddPubSecAgreementKeyMaterial i AddPubKeyAgreementRecipientWithSecret, więc dokumenty zaszyfrowane odbiorcami ECDH / X25519 / X448 można otwierać prywatnym skalarem odbiorcy i szyfrować bez zewnętrznych narzędzi ECDH
Version 2.732.0
Changed
- Zapisy kierują teraz wyjście serializatora przez buforowany strumień zapisu 1 MiB, sklejając wywołania Write per token z nagłówków obiektów, kluczy słowników i wierszy xref w pakowane pushy na celach opartych o plik
- Ładunki strumieni odwołań krzyżowych stosują predykcję PNG Up (/DecodeParms /Predictor 12) przed FlateDecode i zwijają dziury wolnej listy przez podsekcje /Index, zmniejszając kontenery xref w każdym dokumencie PDF 1.5+ i na rzadkich zakresach obiektów
- Właściwość CompressionLevel wybiera teraz też wysiłek Flate dla kontenerów strumienia odwołań krzyżowych i strumieni obiektów, więc clMaximum produkuje mniejsze strumienie strukturalne podczas zapisu
Fixed
- Szerokości pól /W strumienia odwołań krzyżowych dopasowują się teraz do rzeczywistego zakresu offsetów zamiast stałego układu [1 4 2], którego rzutowanie na Cardinal po cichu ucinało offsety ponad 4 GiB w uszkodzone wyjście
Version 2.731.0
Changed
- Przebudowano wbudowany OCR dopasowania szablonów: ekstrakcja glifów jako spójnych składowych, ocenianie pokrycia w skali szarości względem cache'owanych szablonów wieloczcionkowych, binaryzacja Otsu z fallbackiem okna lokalnego, dzielenie słów po przerwach bimodalnych, linie bazowe per słowo, odrzucanie szumu plamkowego oraz rozszerzony alfabet 62 znaków rozpoznający tekst ASCII z mieszaną wielkością liter przez klastrowanie wysokości na poziomie wiersza i preferencję kontekstu wielkości liter
Version 2.730.0
Added
- Dodano wsparcie Win64 dla Free Pascal 3.2.2 i Lazarusa 4.6, w tym pakiet runtime, skrypt builda odtwarzalnego bitowo, warstwę kompatybilności i nie-GUI smoke test utwórz-i-przeładuj; natywne statyczne integracje kodeków pozostają tylko-Delphi i zgłaszają w kompilacjach Free Pascal jawny błąd unsupported-operation
Version 2.729.0
Added
- Dodano neutralny wobec hosta dynamiczny runtime widgetów XFA z edycją Unicode, testowaniem fokusa i trafień, wiązaniem świadomym instancji, atomową walidacją i obliczaniem, ograniczonym reflow oraz fabryką załadowanych dokumentów tylko-do-odczytu, która zachowuje źródłowe XFA
Version 2.728.0
Fixed
- Poprawiono wewnętrzny pomiar XFA i kontynuację tekstu tak, by zachowywał jawne puste i wyliczone wartości, używał kontekstu wiązania każdego pola lub powtarzanego wiersza, zachowywał akcje breakAfter, unikał kolizji nazw syntetycznych i egzekwował limit cache'owanego pomiaru globalnego
Version 2.727.0
Changed
- Układ XFA stosuje teraz wewnętrzne wymiary minimalne i maksymalne, mierzy pola rosnące z ich związanego tekstu i atomowo dzieli kwalifikującą się zawartość textEdit między obszary zawartości i strony, z polami kontynuacji tylko-do-odczytu oraz ograniczonymi limitami tekstu, fragmentów i pomiaru
Version 2.726.0
Added
- Dodano kompletne atrybuty NChannel process i spot, wskazówki mieszania, ograniczone spektralne strumienie tuszu CxF/X-4 PDF 2.0 oraz sprawdzanie spójności na poziomie dokumentu dla definicji tonacji spot i zewnętrznych tabel kolorantów output-intent
Version 2.725.0
Added
- Dodano wątkowo-bezpieczny deterministyczny render backend SIMD skanliniowy, który robi preflight obsługiwanych list wyświetlania prostokątów, zapisuje końcową powierzchnię bitmapy w blokach wektorowych bez pośredniej kopii bitmapy i zwraca dokładne przyczyny odmowy per żądanie przez istniejący software'owy fallback i pipeline telemetryczny
Version 2.724.0
Changed
- Rozszerzono ograniczony natywny ewaluator FormCalc o ogólne agregaty zbiorów węzłów SOM, argumenty mieszające skalary i zbiory węzłów, zagnieżdżone wywołania numeryczne i tekstowe oraz deterministyczne funkcje wyboru, łańcuchowe, trygonometryczne, logarytmiczne i konwersji -- w ramach istniejących limitów operacji, tablic, głębokości, czasu i wyjścia
Version 2.723.0
Changed
SubsetLoadedFontsbezpiecznie dzieli teraz na podzbiory osadzone programy Type 1 PFB oraz PFA rozbite na binarne i hex, zachowuje rekurencyjne zależności kompozytów TrueType i zamyka zależności konturów COLR v0/v1, zachowując tabele kolorów, bitmap, wariacji i kształtowania
Version 2.722.0
Added
- Dodano ograniczone callbacki haseł dla klasycznie szyfrowanych ZIP-em wpisów XPS, EPUB i CBZ, w tym limity ponowień per wpis, sprawdzanie anulowania, obsługę poświadczeń tylko w pamięci oraz odrzucanie fail-closed szyfrowania niedostępnego, nieprawidłowego lub nieobsługiwanego
Version 2.721.0
Changed
DownsampleLoadedImagesprzeskalowuje teraz obsługiwane 8-bitowe próbki obrazów Separation i DeviceN bezpośrednio w przestrzeni komponentów i zachowuje oryginalny graf przestrzeni kolorów, transformację tint, koloranty, zakresy/Decodei semantykę overprintu przez zapis i przeładowanie
Version 2.720.0
Added
- Dodano ograniczone wbudowane przeciążenia rozpoznawania dla OCR z wielkich liter ASCII o wysokim kontraście, poziomych kodów Code 39 i czystych symboli QR wersji 1 w trybie bajtowym wyrównanych do osi, pozwalające na przeszukiwalne warstwy tekstu i dekodowanie kodów kreskowych załadowanych stron bez silnika od wywołującego, podczas gdy niejednoznaczne lub nieobsługiwane wejście kończy się błędem
Version 2.719.0
Added
- Dodano ograniczone dopracowywanie JPEG 2000 według rozdzielczości i warstwy jakości przez
THPDFJpeg2000Decoder.LoadProgressiveFromByteArrayplus kodowanie wielowarstwowe przezTJpeg2000Bitmap.QualityLayers, z identycznymi końcowymi pikselami dla kolejności progresji LRCP, RLCP, RPCL, PCRL i CPRL
Version 2.718.0
Changed
- Osadzono kompletne CMapy UniJIS, UniGB, UniCNS i UniKS UCS2 i UTF16 poziome i pionowe, łącznie ze skalarami uzupełniającymi i standardowymi domyślnymi pionowymi, więc ekstrakcja i geometria tekstu CJK nie zależą już od zewnętrznych plików mapowań Unicode ani zgadywania pół-em
Version 2.717.0
Added
- Dodano jawne zakresy zależności współdzielonych obiektów w dokumentach zlinearyzowanych oraz planistę przerysowań po nadejściu zakresów, więc strony mogą malować się, zanim przyjdą wszystkie opcjonalne zależności, i przerysowują się dokładnie wtedy, gdy świeżo dostępne dane zmieniają wynik
Version 2.716.0
Added
- Dodano ograniczoną naprawę grafu obiektów dla nadających się do działania ustaleń preflight xref, trailer, katalogu, drzewa stron i drzewa nazw, z walidowanym commit transakcji i pełnym rollbackiem przy wejściu niebezpiecznym lub niejednoznacznym
Version 2.715.0
Added
- Dodano wrappery zaszyfrowanych ładunków PDF 2.0, których widoczna zawartość dokumentu pozostaje czytelna przed uwierzytelnieniem, podczas gdy nazwy, opisy i bajty osadzonych plików pozostają chronione do jawnego odblokowania hasłem
Version 2.714.0
Changed
- Eksport SVG załadowanych stron emituje teraz gradienty osiowe i radialne, ograniczone reprezentacje PNG cieniowań siatkowych Type 4 do Type 7 oraz zdekodowane obrazy inline, bez inkrementowania odpowiednich liczników pominięć
Version 2.713.0
Changed
- Kolorowe glify OpenType SVG używają teraz ograniczonego pipeline'u Form XObject dla łuków, gradientów wektorowych, krycia, masek geometrycznych i lokalnego reuse'u
#id, wciąż odrzucając skrypty, zasoby zewnętrzne, obrazy i nieobsługiwaną zawartość aktywną
Version 2.712.0
Changed
ReplaceLoadedPageTextzastępuje teraz dopasowania rozciągające się na łańcuchy i tabliceTJprzez span-y źródeł glifów, zachowując liczby kerningu, niedopasowane prefiksy i sufiksy, niepowiązane operandy i oryginalną strukturę strumienia zawartości
Version 2.711.0
Added
- Dodano rozwiązywanie CFF FontSet
SyntheticBasez odziedziczonymi wartościami Top i Private DICT, CharStrings, charset, Encoding i Local Subrs, plus deterministyczną semantykę nadpisań i ograniczone odrzucanie dziedziczenia nieprawidłowego, cyklicznego lub nadto głębokiego
Version 2.710.0
Added
- Dodano deterministyczny, ograniczony wybór predyktora Flate przez
HPDFSelectFlatePredictor, używający rozproszonych próbek wierszy, szacowanego kosztu w bajtach, konfigurowalnego ważenia CPU oraz jawnych limitów bajtów, wierszy i pracy
Version 2.709.0
Added
- Dodano włączalne natywne wyjście słowników symboli i regionów tekstu JBIG2 w Huffmanie przez
THPDFJBIG2Options.UseHuffmanEncoding, w tym standardowe tabele DH, DW, BMSIZE, FS, DS i DT, surowe bitmapy zbiorcze, tabele identyfikatorów symboli, deterministyczny routing natywny i piksel-dokładne round tripy dekodera, przy zachowaniu domyślnych arytmetyki i MMR
Version 2.708.0
Changed
- Zacache'owano arabskie i złożone odwrotne mapowania cmap form prezentacyjnych według generacji zarejestrowanej czcionki, zastępując powtarzane skany U+FB00..U+FDFF i U+FE70..U+FEFF w
ApplyArabicGSUBRefinement,ApplyArabicGSUBContextualRefinementi generycznej ścieżce kontekstowego GSUB, zachowując pierwszeństwo punktów kodowych i kształtowane wyjście
Version 2.707.0
Added
- Dodano enkoder kodów kreskowych 2D Aztec (ISO/IEC 24778) przez
THPDFPage.DrawAzteci samodzielną jednostkęTHPDFAztec: kodowanie wysokiego poziomu programowaniem dynamicznym z zatrzaskami trybów, przesunięciami i przebiegami binary-shift, bit stuffing, korekcją błędów Reed-Solomon nad GF(16) do GF(4096), automatycznym wyborem symbolu kompaktowego 15x15..27x27 albo pełnego 19x19..143x143 oraz kontrolą wymuszonej warstwy dla stałych rozmiarów symbolu - Dodano składanie pionowego tekstu strony:
THotPDF.ExtractLoadedPageTexti API agregacji range/stream klastrowują teraz glify WMode 1 w kolumny po originie X glifa, porządkują kolumny od prawej do lewej i obchodzą każdą kolumnę od góry do dołu, zamiast szarpać pionowy tekst CJK na linie per glif
Fixed
- Naprawiono równoległy eksport pasm zawodzący z niezgodnością szerokości pasa PNG na stronach o ułamkowych wymiarach pikselowych (A4 przy 96 DPI): rozmiar rastra jest teraz zaokrąglany przez
Ceiljednolicie z pisarzami pasm, więc dostarczane kafle zawsze zgadzają się z szerokością enkodera
Version 2.706.0
Added
- Dodano strumieniowy eksport PNG załadowanych stron i pasmowy eksport TIFF wielu stron przez
THotPDF.SaveLoadedPageToPng,SaveLoadedPageToPngStream,SaveLoadedPagesToTiffBandediSaveLoadedPagesToTiffStreamBanded, zapisujące skompresowane dane obrazu wiersz po wierszu przez enkodery pasm, więc bardzo duże strony nie wymagają kompletnego framebuffera;THPDFBandImageExportInforaportuje telemetrię stron, pasm, wierszy, workerów, pamięci, wyjścia, timingu i anulowania
Version 2.705.0
Added
- Dodano finalizację PDF/A do ścieżek zapisu załadowanych dokumentów:
THotPDF.SaveLoadedDocumentiSaveLoadedDocumentToStreamwalidują teraz OutputIntentGTS_PDFA1(odziedziczony z katalogu źródłowego albo świeżo zarejestrowany) i emitują identyfikację XMPpdfaid:part/pdfaid:conformance, gdy ustawione jestPDFACompliance, zachowując przy tym istniejący pakiet pdfaid bajt w bajt przy ponownym zapisie - Dodano konsumowanie pisma pionowego (WMode 1) po stronie ładowania: metryki komórek CIDFont
/W2i/DW2napędzają teraz ekstrakcję tekstu i renderowanie stron, obchodząc kolumny w dół osi y przestrzeni tekstu wektorem pozycjonowania v1x/v1y zamiast poziomych posunięć/W
Version 2.704.0
Added
- Dodano równoległe renderowanie kafli i pasm załadowanych stron przez
THotPDF.RenderLoadedPageTilesParalleliTHotPDF.RenderLoadedPageBandsParallel, z callbackami wątku wywołującego w porządku wierszowym, pożyczonymi bitmapami, kooperacyjnym anulowaniem, pamięcią w locie kontrolowaną przez wywołującego, przyjęciem wg pamięci szczytowej oraz ograniczonym niezmiennym cache'em glifów Type 3 i siatek rastrowych współdzielonym między izolowanymi kontekstami renderowania
Version 2.703.0
Added
- Dodano ograniczone batche skrótów multisign CSC przez
THPDFCSCSignatureProvider.SignHashBatch, używające jednego SAD przypiętego do hashu i jednego żądaniasignatures/signHashdla uporządkowanego batcha tym samym algorytmem, przy egzekwowaniu lokalnych i poświadczeniowych limitówmultisign, ścisłej kardynalności odpowiedzi, porządkowaniu wyników synchronicznym lub asynchronicznym, kluczach idempotencji SHA-256 adresowanych zawartością oraz replayu ukończonych batchy
Version 2.702.0
Added
- Rozszerzono
THotPDF.RenewPAdESLTATimestampo dostarczane przez wywołującego dowody certyfikatów, OCSP i CRL, scalane do istniejącego DSS przed nowym timestampem dokumentu RFC 3161, zachowujące każdą wcześniejszą rewizję bajt w bajt i dokładnie deduplikujące strumienie walidacji między kolejnymi odnowieniami
Version 2.701.0
Added
- Dodano preflight profili PAdES baseline i extended adresowalny klauzulami przez
THotPDF.PreflightLoadedPAdES, raportujący każde mające zastosowanie wymaganie ze stabilnym ID reguły, profilem, poziomem normatywnym, klauzulą standardu, ścieżką PDF, numerem obiektu, rewizją podpisaną lub bieżącą i statusem zaliczenia, przy walidacji kardynalności CMS, referencji ESS certyfikatu sygnatariusza, ograniczeń słownika podpisu, pokrycia zakresów bajtów, czasu zaufanego, dowodów DSS i pokrycia timestampem dokumentu
Version 2.700.0
Added
- Dodano pełne, end-to-end ładowanie kluczy prywatnych PFX / PKCS#12 dla ECDSA, Ed25519 i Ed448 oraz podpisywanie dokumentów CMS, w tym ECDSA CNG na nazwanych krzywych, opcjonalne PureEdDSA OpenSSL 3, dekodowanie kluczy RFC 8410, reguły skrótów i parametrów RFC 8419, SHAKE256 z wyjściem 512-bitowym dla Ed448, automatyczny wybór algorytmu klucza i ścisłe parowanie certyfikat-do-klucza
Version 2.699.0
Added
- Dodano deterministyczny wybór poświadczeń PFX / PKCS#12 z wieloma tożsamościami przez
HPDFEnumeratePFXIdentities,HPDFParsePFXByLocalKeyIDiTHPDFCMSSignOptions.PFXLocalKeyID, w tym ścisłe jednowartościowe atrybuty workówlocalKeyIdifriendlyName, parowanie kluczem publicznym, rekurencyjne worki safe-content, ograniczoną diagnostykę niejednoznaczności i cykli oraz automatyczne osadzanie pasujących certyfikatów pośrednich i root łańcucha z dokładną deduplikacją DER
Version 2.698.0
Added
- Rozszerzono deszyfrowanie PBES2 PFX / PKCS#12 w procesie o AES-128-CBC i AES-192-CBC plus PRF-y PBKDF2 HMAC-SHA-384 i HMAC-SHA-512, w tym walidację opcjonalnego
keyLengthwłaściwą dla szyfru oraz ograniczone sprawdzenia soli, iteracji, IV i paddingu, przy zachowaniu kompatybilności z AES-256-CBC i HMAC-SHA-1 / SHA-256
Version 2.697.0
Added
- Dodano zgodne ze specyfikacją dziedziczenie
FixedPage.NavigateUriw Canvas XPS i OpenXPS, więc potomne elementy wizualnePath,Glyphsi zagnieżdżone Canvas dostają zakresowy URI, chyba że go nadpiszą, z zachowaniem akcji zewnętrznych, mailowych, stron pakietu i percent-dekodowanychLinkTargetprzez transformacje, zagnieżdżone przycięcia, izolowane grupy krycia, tłumienie elementów wizualnych wielokrotnego użytku, przywracanie po zagnieżdżonych nadpisaniach oraz istniejące limity łączy, URI, anulowania i niebezpiecznych schematów
Version 2.696.0
Added
- Dodano ograniczone natywne grupy przezroczystości Canvas XPS i OpenXPS, więc wartości
Opacityoraz stałych, gradientowych lub obrazowychCanvas.OpacityMaskskładają nakładające się potomne elementy wizualne jednokrotnie przez izolowane Form XObjecty DeviceRGB, ze złożoną jednolitą alfą, współdzielonymi maskami soft o zmiennej alfa, zagnieżdżonymi grupami, transformowanymi przycięciami, transferem zasobów, zachowanymi linkami i fail-closed przy zawartości zniekształconej, nieobsługiwanej, zdegenerowanej lub przerośniętej
Version 2.695.0
Added
- Dodano ograniczoną natywną konwersję
Canvas.ClipXPS i OpenXPS dla geometrii skróconej, wartościPathGeometrylokalnych lub zdalnychStaticResource, bezpośrednich elementów właściwości, ustrukturyzowanych figur linii, Béziera, kwadratowych i łukowych, transformacji geometrii, pustych przycięć i zagnieżdżonego przycinaniaEvenOddlubNonZeroprzez PDFW*alboW, z przyciętymi granicami nawigacji, limitami parsowania 100,000 wartości i fail-closed przy transformacjach zniekształconych lub zdegenerowanych
Version 2.694.0
Added
- Dodano ograniczoną natywną nawigację XPS i OpenXPS dla transformowanych elementów wizualnych
PathiGlyphs, zachowującą linki HTTP, HTTPS i mailowe jako adnotacje URI PDF i rozwiązującą strony względem pakietu plus percent-dekodowane fragmentyLinkTargetjako akcje PDF GoTo w przód lub w tył po powstaniu wszystkich stron, z klikalnymi granicami świadomymi metryk, limitami 65,536 linków i 8,192 znaków, tłumieniem przechwytywania VisualBrush, anulowaniem i fail-closed diagnostyką niebezpiecznych schematów
Version 2.693.0
Added
- Dodano ograniczoną natywną konwersję
VisualBrushXPS i OpenXPS dla elementów wizualnychCanvas,PathiGlyphsinline lub wspartych zasobami, hierarchiczne i zdalne wyszukiwanie wResourceDictionary, absolutneViewbox, absolutne lub relatywneViewport, tryby kafelkoweNone,Tilei odbite, transformacje, krycie, Form XObjecty wielokrotnego użytku, współdzielone wzorce kafelkowe, transfer zasobów świadomy tokenów oraz fail-closed limity cykli, zniekształconego wejścia, rekurencji, zawartości, cache i pozycjonowania
Version 2.692.0
Added
- Dodano natywne osadzanie czcionek pakietu XPS i OpenXPS dla programów TrueType i OpenType, fragmentów członów TTC, zasobów zaciemnionych GUID, identyfikatorów glifów bezpośrednich lub wyprowadzonych z cmap, klastrów Unicode jeden-do-wielu, jawnych posunięć i offsetów, poprawnych szerokościowo originów RTL, współdzielonych zasobów czcionek, uprawnień osadzania i no-subsetting, opcjonalnego podzbioru glifów, ograniczonych map
ToUnicodeoraz amortyzowanie-liniowego wyjścia runów pozycjonowanych bez podstawiania kroi przez GDI
Version 2.691.0
Added
- Dodano ograniczony układ
IndicesOpenXPSGlyphsdla ścisłych liczb jednostek kodowych i glifów klastrów, jawnych posunięć w setnych em, poziomych i pionowych offsetów, odwrotnej progresji przy nieparzystymBidiLevel, wypełnień solid atrybutem lub elementem właściwości, krycia, natywnego pakowaniaTJPDF, fallbacku pozycjonowanych klastrów Unicode, zachowanej ekstrakcji tekstu, fail-closed diagnostyki zniekształconego wejścia oraz buforów amortyzowanie-liniowych z limitem 65,536 mapowań
Version 2.690.0
Added
- Dodano obsługę
Path.OpacityMaskOpenXPS dla masek stałych, wielostopniowych liniowych i eliptycznych radialnych gradientów o zmiennej alfa oraz zwykłych, kafelkowych lub odbitych masek PNGImageBrushprzez złożoną jednolitą alfę, ograniczone natywne grupy przezroczystości DeviceGray, współdzielone wzorce cieniowania i strumienie soft-masek obrazów, fail-closed obsługę zawartości nieobsługiwanej oraz wielokrotnego użytku builderRegisterLuminositySoftMaskStatez wiązaniem zasobów obrazu alfa
Version 2.689.0
Added
- Dodano tryby
Tile,FlipX,FlipYiFlipXYOpenXPSImageBrushprzez natywne wzorce kafelkowe PDF z jednym, dwoma lub czterema niezależnie przycinanymi umieszczeniami, współdzielonymi zasobami obrazów i PNG soft-masek, złożonymi macierzami stałej strony, ścieżki i pędzla oraz ograniczonym APIRegisterImageTilingPatterndla wielokrotnego użytku wzorców opartych o obraz
Version 2.688.0
Added
- Dodano obsługę
ImageBrush.TransformOpenXPS dla skończonych macierzy atrybutów o sześciu parametrach i elementów właściwościMatrixTransform, sklejanych po natywnym przycięciuPatha przed przycięciem viewportu i umieszczeniem obrazu, więc pędzel może rotować, skalować, ścinać lub przesuwać bez zmiany zawierającej go geometrii wektorowej; niestandardowyRelativeTransformi nierozwiązane zasoby macierzy pozostają jawną diagnostyką
Version 2.687.0
Added
- Dodano kontrolowane macierzą umieszczanie XObjectów obrazów przez
THPDFPage.ShowImageMatrixi rozszerzono import stałych stron XPS o wypełnieniaImageBrushJPEG, PNG, TIFF i JPEG XR z pakietu, mapowanieViewboxiViewportabsolutne lub względem granic, natywne przycinanie ścieżką i pojedynczym viewportem, krycie obrazu i ścieżki, alfę PNG soft-maski, wymiarowanie świadome DPI przy 96 DPI, współdzielone cache'owanie zdekodowanych zasobów oraz fail-safe diagnostykę nieobsługiwanego kafelkowania, transformacji, konwersji kolorów i kreskowania obrazów
Version 2.686.0
Changed
- Dodano wielokrotnego użytku, ograniczoną rejestrację wielostopniowych gradientów radialnych i rozszerzono natywno-wektorowy import ścieżek XPS o eliptyczne wartości
RadialGradientBrushelementów właściwości, rozprzestrzenianie Pad, jednolitą alfę stopów, krycie pędzla, mapowanie środka, początku i promienia relatywne lub absolutne, natywne cieniowanie Type 3 PDF oraz przywracanie współrzędnych, które zostawia geometrię ścieżki bez zmian
Version 2.685.0
Changed
- Rozszerzono uporządkowany natywno-wektorowy import ścieżek XPS o parsowanie elementów właściwości świadome cudzysłowów i ograniczone, pędzle gradientów liniowych stałych i wielostopniowych, natywne wzorce cieniowania PDF, alfę pędzla i stopów, domyślne współrzędne gradientu względem granic albo jawne absolutne, interpolację stopów poza zakresem oraz fail-safe diagnostykę nieobsługiwanych transformacji, trybów rozprzestrzeniania, interpolacji kolorów, zmiennej alfy i zdegenerowanych osi
Version 2.684.0
Changed
- Dodano uporządkowany natywno-wektorowy import ścieżek XPS z ograniczoną geometrią skróconą, regułami wypełnień, stałymi wypełnieniami i kreskami RGB i ARGB, kryciem ścieżki, szerokością kreski, transformacjami o sześciu parametrach oraz fail-safe diagnostyką nieobsługiwanych funkcji rysowania
Version 2.683.0
Changed
- Wzmocniono walidację PDF/X-6 faktycznie malowanej zawartości o stan grafiki wzorca cieniowania z czasu definicji, semantykę ExtGState wzorca nonstroking, fail-closed sprawdzenia podtypu soft-maski i podłoża, dokładne metryki glifów Type 3 i reguły odziedziczonego koloru, ścisłą klasyfikację alfy łączonego malowania, ograniczoną inferencję kolorów JPX oraz składanie adnotacji świadome wyglądu
Version 2.682.0
Added
- Dodano obsługę producenta i weryfikatora dla podpisów ECDSA
brainpoolP256r1,brainpoolP384r1ibrainpoolP512r1, w tym macierz skrótów SHA-2 i SHA3 właściwą dla krzywej, walidację podpisywania zawodzącą przed providerem, ścisłe parametry certyfikatów nazwanych krzywych, identyfikatory algorytmów ECDSA bez parametrów, kanoniczne wartości podpisów DER, import nazwanych krzywych Windows CNG oraz deterministyczną diagnostykę parametrów jawnych, końcowych, nieznanych lub niedopasowanych
Version 2.681.0
Changed
- Ujednolicono wykonanie zawartości bitmap nieprogresywnych, direct-DC, Form i list wyświetlania przez
HPDFInterpretContentTokensDevicei opcjonalne kompletne rozszerzenieIHPDFContentOperatorDevice, z jednym punktem kontrolnym anulowania na operator, cache indeksów operatorów w czasie kompilacji dla replayu list wyświetlania bez skanowania operandów, publicznymi metrykamiOperatorCount, zachowaną kompatybilnością urządzeń semantycznych, poprawioną semantyką operatorów",viyoraz legalną obsługą terminatoraEIbez fałszywych diagnostyk fallbacku
Version 2.680.0
Added
- Dodano ograniczone transakcyjne przeciążenia
RepairPDFA4z typowanymi opcjami, szczegółowymi raportami napraw, współdzielonym pochodzeniem ustaleń, bezpieczną normalizacją nagłówka PDF 2.0, ID trailer, metadanych, Catalog i prezentacji, naprawą identyfikacji PDF/A świadomą przestrzeni nazw, konfigurowalną polityką commitu częściowej lub pełnej zgodności, detekcją regresji błędów, bajtowo-dokładnym rollbackiem grafu i XMP oraz ścisłą granicą, która zachowuje zawartość stron, czcionki, kolory, przezroczystość, obrazy, operatory graficzne i wyekstrahowany tekst
Version 2.679.0
Added
- Dodano walidację PDF/X-6 faktycznie malowanej zawartości z wybieralnymi regułami ISO 15930-9:2020 lub resolved-errata 2025, faktycznymi sprawdzeniami nagłówka i kanałów ICC, świadomym zasobów obchodem tablic zawartości, Form XObjectów, wzorców kafelkowych i cieniowania, obrazów, glifów Type 3, soft-masek i wyglądów adnotacji, diagnostyką trybu overprint i przezroczystości łączonego malowania, stabilnym pochodzeniem reguł oraz ograniczoną pracą zdekodowanych bajtów, tokenów, obiektów, problemów, rekurencji i stanu grafiki
Version 2.678.0
Added
- Pogłębiono ograniczoną walidację PDF/A-4 o cache'owane sprawdzenia nagłówka i komponentów ICC, spójność output-intent dokumentu i strony, analizę faktycznie malowanych kolorów urządzenia i przezroczystości przez tablice zawartości, zagnieżdżone Form XObjecty, obrazy, maski obrazów, cieniowania i wyglądy adnotacji, odziedziczony stan grafiki, osadzanie czcionek renderujących, relacje CIDFont i CMap, ścisłe flagi adnotacji i stany wyglądu, walidację pakietu XMP UTF-8 i przestrzeni nazw, logiczne lokalizacje drzewa stron, stabilną diagnostykę świadomą klauzul oraz konfigurowalne sufity zdekodowanych bajtów i tokenów zawartości
Version 2.677.0
Added
- Ukończono ograniczoną walidację PDF/UA-2 dokumentów, łańcuchów czytelnych dla człowieka, zawartości opcjonalnej, adnotacji, AcroForm, destynacji struktury, konspektów, plików osadzonych i zagnieżdżonych etykiet stron, w tym fizyczną własność ParentTree, skalarne dzieci struktury, ograniczenia strumieni wyglądu, właściwości XMP oparte na URI przestrzeni nazw, detekcję prywatnych obszarów Unicode i diagnostykę świadomą klauzul; ustrukturyzowany eksport HTML, XHTML, XML i JSON współdzieli teraz model czytania dostępny, najpierw-otagowany, z językiem, tytułem, nawigacją, etykietami stron, bezpiecznymi linkami, adnotacjami, nieczułymi kontrolkami formularzy, zastąpieniami marked-content, artefaktami, alternatywami obrazów, fallbackiem geometrycznym, niezależnymi limitami, anulowaniem i atomową publikacją
Version 2.676.0
Added
- Dodano ograniczone, minimalne planowanie zakresów bajtów dla każdej strony zlinearyzowanego PDF przez
PlanProgressiveLinearizedPageRanges, z dekodowaniem wskazówek surowych i Flate, głównych i przelewowych, interoperacyjnymi układami wskazówek byte-aligned złożonymi i ciągłego podziału z Aneksu F, dokładnymi zależnościami bootstrap, strony, grupy współdzielonej oraz odwołań krzyżowych tradycyjnych lub strumieniowych z prefiksem LF albo CRLF, legalną akumulacją krótkich odczytów, domyślnym sufitem pamięci planisty 256 MiB z fail-closed rozstrzyganiem kodowań, scalaniem świadomym nakładania, ścisłymi strukturalnymi weryfikacjami krzyżowymi, typowanymi limitami i diagnostyką dostępności oraz zunifikowaną ścieżką pierwszej strony[0, /E)
Version 2.675.0
Added
- Dodano niezależne, zgodne ze standardami polityki crypt-filter dla łańcuchów, zwykłych strumieni i plików osadzonych przez
ConfigureCryptFilterDefaultsiSetStreamCryptFilter, w tym zarezerwowane filtry haseł i kluczy publicznych,/Identity, poprawną po stronie pisarza/EFFbezpieczeństwa haseł i wiodące pipeline'y/Crypt, fail-closed granice odbiorców właściwe dla strumieni klucza publicznego, case-sensitive ładowanie i inspekcję zewnętrznych nazwanych filtrów,/CFM /None, raportowanie długości klucza V2, fallback Direct File dla polityk mieszanych, rozdzielone polityki kontenera strumieni obiektów i łańcuchów członków oraz polityki zachowujące zaszyfrowane aktualizacje przyrostowe
Version 2.674.0
Added
- Dodano zachowujące poświadczenia zaszyfrowane aktualizacje przyrostowe Standard i klucza publicznego przez przeciążenie
BeginIncrementalUpdateświadome haseł i przypisany materiał kluczy odbiorców, z bezpiecznie przetrzymanymi kluczami plików lub FEK, osobnymi politykami crypt-filter łańcuchów, strumieni, metadanych i Identity, wywodzeniem legacy kluczy obiektów świadomym generacji, dokładnymi odziedziczonymi referencjami/Encrypt, bajt-identycznymi rewizjami źródła, oryginalnym dostępem użytkownika, właściciela lub odbiorcy oraz fail-closed odrzucaniem zmian szyfrowania i nieobsługiwanych heterogenicznych filtrów
Version 2.673.0
Security
- Dodano ograniczoną walidację grafu segmentów JBIG2 przed dekodowaniem całej strony, regionu, natywnym lub zewnętrznym oraz przed współdzieleniem słownika globalnego, z indeksowanymi sprawdzeniami duplikatów i brakujących referencji, iteracyjną detekcją cykli i głębokości zależności, egzekwowaniem powiązania ze stroną dla strumieni osadzonych, odrzucaniem segmentów zabronionych, limitami długich referencji i krawędzi agregatów, strażnikami alokacji słowników symboli oraz precyzyjną telemetrią awarii
Version 2.672.0
Added
- Dodano generowanie i ścisłą walidację
signature-policy-identifierPAdES E-EPES z jawnymi OID polityk, znanymi lub nieznanymi ETSI hashami, kwalifikatorami SPuri, SPUserNotice i SPDocSpecification, ograniczonym parsowaniem Unicode i kolekcji, hashowaniem dokumentu polityki, przypinaniem OID i hashu głównego sygnatariusza przed pracą kryptograficzną, dedykowanymi statusami niedopasowań i kompletnym raportowaniem JSON
Version 2.671.0
Added
- Dodano deterministyczne kontenery RFC 5652 z do 256 niezależnymi głównymi rekordami
SignerInfoprzezHPDFCMSBuildMultiSignedDataiHPDFCMSMergeSignedData, w tym prewalidację całego batcha przed efektami ubocznymi sygnatariuszy, atrybuty, algorytmy, certyfikaty i providerów per sygnatariusz, ścisłą walidację kontenerów o długości określonej, zbiory sortowane DER i deduplikowane, niezależne wyniki weryfikacji, kompatybilność bajtową pojedynczego sygnatariusza oraz wymiarowanie placeholderów agregatów bez efektów ubocznych
Version 2.670.0
Added
- Dodano opcjonalne tożsamości sygnatariuszy RFC 5652
SubjectKeyIdentifierprzezTHPDFCMSSignOptions.SignerIdentifier, w tym kompaktowe kodowanie SID IMPLICIT, automatyczny wybór wersjiSignerInfoiSignedData, ścisłą ekstrakcję rozszerzeń X.509, wsparcie providerów i wymiarowania placeholderów oraz fail-closed dopasowywanie SID, certyfikatów i wersji podczas weryfikacji
Version 2.669.0
Security
- Dodano fail-fast diagnostykę spójności algorytmów skrótu CMS w obrębie
SignedData.digestAlgorithms,SignerInfo, parametrów mechanizmu podpisu i RFC 6211CMSAlgorithmProtection, z dedykowanym statusem weryfikacji, kodem niepowodzenia walidacji, propagacją timestampów, szczegółowymi przyczynami problemów i wyjściem JSON
Version 2.668.0
Added
- Dodano generowanie i weryfikację SHA3-256, SHA3-384 i SHA3-512 w detached CMS, kontraktach providerów RSA PKCS#1 v1.5, RSA-PSS i ECDSA, timestampach zawartości i podpisu RFC 3161, odnowieniach PAdES-LTA, słownikach Seed Value i deklaracjach rozszerzeń deweloperskich PDF 2.0 ISO 32001, z ograniczonym jednobiegowym hashowaniem zakresów bajtów współdzielonym z pasującymi politykami PDF MAC
Version 2.667.0
Added
- Dodano
THotPDF.ValidatePDFMACChainz walidacją rewizji przyrostowych od najstarszej do najnowszej, kumulatywnym indeksowaniem klasycznym lub strumieniem xref, dokładnymi lokalizacjami awarii rewizji i xref, detekcją historycznych podmian MAC, stabilnym egzekwowaniemKDFSalt, odrzucaniem downgrade'ów siły skrótów, uwierzytelnionymi sprawdzeniami/Pi/Perms, raportowaniem preflight i ograniczonym parsowaniem rewizji bez tymczasowych kopii PDF
Version 2.666.0
Added
- Dodano
THotPDF.SignPDFWithPFXAndAttachedPDFMACi walidację przypiętą do podpisu z bezpośrednimAuthCodeaktywnego trailer, pośrednimSigObjRef, kompletnym pokryciem podpisanych rewizji, wiązaniem skrótu surowej wartości podpisu, politykami PDF MAC SHA-2 lub SHA-3, jednobiegowym podpisywaniem i hashowaniem zakresów MAC, raportowaniem preflight i atomową wymianą wyjścia
Version 2.665.0
Fixed
- Poprawiono
THotPDF.RegisterNChannelColorSpace, by emitował pięcioelementową formęDeviceNz ISO 32000-2 z/Subtype /NChanneli metadanymi komponentów process, podniesiono jego minimalną wersję PDF do 1.6 i sprawiono, że luminosityczne soft maski rozwiązują farbę NChannel przez jej alternatywną przestrzeń, zachowując zgodność odczytu z legacy tokenami rodziny/NChannel
Version 2.664.0
Added
- Ukończono renderowanie trybów mieszania PDF całkowitymi implementacjami hot-path dla Hue, Saturation, Color i Luminosity oraz poprawiono szybką ścieżkę pełnego krycia, więc każdy aktywny separowalny lub nieseparowalny tryb mieszania składa się ze swoim podłożem
Version 2.663.0
Security
- Uwierzytelnianie kontenerów PKCS#12 przed odsłonięciem zaszyfrowanej zawartości safe przez weryfikację opcjonalnego zewnętrznego
MacDataz ograniczonymi iteracjami KDF PKCS#12, HMAC SHA-1 lub SHA-256, porównaniem skrótów w stałym czasie oraz fail-closed obsługą złego hasła i naruszenia integralności
Version 2.662.0
Added
- Dodano trzy komendy HotPDFCLI:
renderrasteryzuje każdą wybraną stronę do<prefix>-page<N>.pngprzez pipeline bitmap załadowanych stron (zakres--pages,--dpi10..2400, domyślnie 150),tablesekstrahuje tabele typowane do CSV lub JSON przezExportLoadedTypedTables(--json,-oplik lub konsola), acomparedrukuje JSON-owy raport porównania dwóch dokumentów przezHPDFDocCompareDocuments(--mode0..5 obejmujące page-count, page-text, object-count, rendered-image, full i structural)
Fixed
- Naprawiono pipeline transformacji ICC Win64 produkujący wyjście samych zer z 8-bitowych transformacji batch (
TransformBytes): zoptymalizowana szybka ścieżka 1D-LUT wewnątrz obiektów lcms2 Win64 zwraca zera, podczas gdy generyczny pipeline resamplingu jest poprawny, więc transformacja 8-bitowa buduje się teraz zcmsFLAGS_NOOPTIMIZEtylko na Win64; 16-bitowa ścieżka pojedynczego koloru i wszystkie transformacje Win32 zachowują zoptymalizowaną szybką ścieżkę (primaries sRGB batch round-tripują teraz na obu platformach)
Version 2.661.0
Added
- Dodano prawdziwą, z limitami, wysokostopniową kompresję Flate Zopfli za istniejącym czterostrategijnym baseline'em zlib, ze ścisłym wyborem bez wzrostu, limitami wejścia, iteracji, bloków, wyjścia i czasu, szczegółową telemetrią strumieni i obrazów równoległych oraz deterministycznymi bramkami oszczędności na stałym korpusie
Version 2.660.0
Added
- Dodano deterministyczne, czytelne dla maszyn raporty preflight XML i wersjonowane ABI zaufane pluginy do ekstrakcji cech i własnych reguł walidacji, ze stabilnym porządkiem, integracją policy-bundle, propagacją anulowania, fail-closed sprawdzeniami zdolności oraz skończonymi limitami pluginów, ustaleń, cech, łańcuchów, wyjścia i czasu
Version 2.659.0
Added
- Rozszerzono ograniczony XFA FormCalc o logikę warunkową, powtarzane agregaty numeryczne i walidowane callbacki dynamicznych instancji oraz dodano domyślnie wyłączone skrypty formularzy QuickJS w sandboxie z pełnym przepływem sterowania, natywnymi tablicami typowanymi, izolowanym dostępem do danych, skończonymi limitami instrukcji, czasu, pamięci, stosu, wartości i operacji na instancjach oraz telemetrią wykonania
Version 2.658.0
Added
- Dodano ograniczone, edytowalne DOM-y pakietów XFA dla kompletnych strumieni XDP i uporządkowanych tablic pakietów z zapytaniami ścieżkowymi po local-name, mutacją pakietów i węzłów, dokładnym zachowaniem nietkniętych bajtów, selektywnym przepisywaniem per pakiet, deterministycznym wyjściem przestrzeni nazw i atrybutów, bezpiecznym cięciem CDATA, escapowaniem encji oraz skończonymi limitami wejścia, wyjścia, pakietów, węzłów, głębokości, atrybutów, tekstu i zapytań
Version 2.657.0
Added
- Dodano zdalne podpisywanie CSC API v2 przez istniejący pipeline providerów CMS z transportem należącym do aplikacji, odświeżaniem tokenów OAuth, ograniczonym odkrywaniem łańcuchów poświadczeń, jawną obsługą autoryzacji i SAD, synchronicznym lub asynchronicznym podpisywaniem skrótów, parametrami RSA-PSS, pollingiem, timestampami RFC 3161, anulowaniem, stabilnymi kluczami idempotencji i skończonym cache'm ukończonych operacji
Version 2.656.0
Added
- Dodano opcjonalne handlery dokumentów XPS, EPUB i CBZ punktujące zawartość, z wymienialną rejestracją bezpieczną wątkowo, jednym walidowanym skanem archiwum, porządkiem stron stałych, spisu i naturalnym obrazów, niezmiennym cache'owaniem konwersji PDF, współdzielonymi limitami archiwum, zasobów, reflow, stron, pikseli, DPI, wyjścia i anulowania oraz publikacją PDF bezpieczną dla rollbacku
Version 2.655.0
Added
- Dodano ograniczoną ekstrakcję tabel typowanych i atomowy eksport CSV lub JSON z kanonicznymi kolumnami, scalaniem fragmentów tej samej strony i kolejnych stron, rozpiętościami scalonych komórek, powtarzanymi nagłówkami, geometrią strony, pewnością, pochodzeniem oraz sterowaną locale inferencją liczb całkowitych, liczb, booleanów, dat, dat z czasem, walut i procentów
Version 2.654.0
Added
- Dodano atomowy ustrukturyzowany eksport załadowanych stron do HTML, XHTML, XML i JSON przez jeden model kolejności czytania z blokami, stylowanymi span-ami, wykrytymi tabelami, współrzędnymi, kolejnością źródłową, opcjonalnymi ograniczonymi obrazami PNG, escapowaniem bezpiecznym dla Unicode, anulowaniem i skończonymi limitami zasobów
Version 2.653.0
Added
- Dodano atomowe przepisanie kolorów załadowanych stron do DeviceGray, DeviceRGB lub DeviceCMYK z zachowaniem przeszukiwalnych wektorów, bezstratną konwersją rastrową zarządzaną kolorystycznie dla obrazów i złożonych zasobów, wyjściem bezpiecznym dla rotacji, jawnymi limitami wierności renderowania i zasobów oraz politykami zachowaj, przetwórz lub odrzuć dla farb spot
Version 2.652.0
Added
- Dodano wykrywanie zaczernienia załadowanych stron w wariancie review-first, ze wzorcami PII uwzględniającymi sumy kontrolne, podłączalnymi detektorami encji i twarzy, wynikami w przestrzeni strony z oceną pewności, ograniczoną telemetrią pracy, obowiązkową tożsamością recenzenta, atomowym odkładaniem zatwierdzonych adnotacji na bok i oddzielną, jawną granicą wypalania
Version 2.651.0
Added
- Dodano ograniczone dekodowanie kodów kreskowych dla załadowanych stron i regionów z podłączalnymi silnikami, progresywnym renderowaniem w niskiej rozdzielczości, awaryjnymi skanami z kolejnymi ćwierćobrotami, walidowanym tekstem i surowymi payloadami, granicami i orientacją w przestrzeni PDF, filtrowaniem po pewności, deduplikacją nakładających się wyników, anulowaniem i telemetrią zasobów
Version 2.650.0
Added
- Dodano ograniczone, odwoływalne, przeszukiwalne warstwy tekstu OCR z podłączalnymi silnikami rozpoznawania, walidacją pewności i geometrii, niewidzialnym tekstem Unicode wyrównanym do rotacji, grupowaniem optional-content, telemetrią zasobów i atomową publikacją wielu stron
Version 2.649.0
Added
- Dodano pełne round tripy grafu obiektów przez wersjonowany JSON, ze strumieniowaniem eksportów snapshot i przyrostowych, surowymi lub dekodowanymi payloadami osadzonymi i atomic sidecar, ograniczonym importem zgodnym ze schematem, walidacją strukturalną i długości strumieni oraz transakcyjną publikacją
Version 2.648.0
Added
- Dodano ograniczoną naprawę ręcznie edytowanych diagnostycznych dokumentów QDF, zachowującą bajty obiektów i strumieni, poprawiającą bezpośrednie, pośrednie, brakujące lub nieaktualne długości strumieni, odbudowującą klasyczne offsety xref i trailer, odrzucającą niebezpieczną strukturę i weryfikującą wynik przez zwykły loader
Version 2.647.0
Added
- Dodano wątkowo bezpieczny rejestr własnych filtrów strumieni z ograniczonymi kontraktami push i pull, współdzielonymi budżetami dekodowania, kooperacyjnym anulowaniem, jawnymi wymaganiami seek, odizolowanymi awariami własnych filtrów i telemetrią wykonania
Version 2.646.0
Added
- Dodano ograniczone API visitora i zdarzeń operatorów zawartości z read-only widokami operandów, deterministycznymi callbackami stanu, akcjami inspect, measure, replace, delete, stop i reject, kooperacyjnym anulowaniem, walidowanym wyjściem oraz atomowymi aktualizacjami załadowanych stron
Version 2.645.0
Added
- Dodano podłączalny kontrakt backendów renderowania załadowanych stron z dostępem do skompilowanych display list, natywną implementacją GDI, wątkowo bezpieczną równoległą dyspozycją, deterministyczną polityką fallback, unieważnianiem cache i telemetrią wykonania
Version 2.644.0
Added
- Dodano ograniczoną detekcję nakładania się elementów layoutu, ścieżki elementów, opt-in mapowanie do źródła, natywne wektorowe nakładki przepełnień i kolizji, live callbacki diagnostyczne i statystyki pracy
Version 2.643.0
Added
- Dodano natywne, ograniczone wykresy wektorowe z seriami liniowymi, słupkowymi, warstwowymi, kołowymi i punktowymi, osiami automatycznymi lub ręcznymi, motywami, legendami, etykietami, alternatywami Figure PDF/UA i statystykami renderowania
Version 2.642.0
Added
- Dodano ograniczone paginowanie RichEdit i RTF w wątku GUI z wektorowym wyjściem EMF, obrazami, opt-in obsługą wspieranych prezentacji OLE, anulowaniem, zachowaniem pozycji w strumieniu oraz jawnymi budżetami wejścia, znaków, stron i wyjścia
Version 2.641.0
Added
- Dodano ograniczony import SVG 2 jako reużywalnych Form XObjects PDF z natywną geometrią i łukami, kaskadą CSS, gradientami wektorowymi, obsługą clip i mask, tekstem Base 14, zasobami przezroczystości, adnotacjami linków świadomymi placementu i statystykami importu
Version 2.640.0
Added
- Dodano wersjonowany profil importu HTML5 paged-media z tolerancyjnym parsowaniem DOM, kaskadą CSS dla druku, stronicowanym layoutem bloków i tabel, opcjonalnymi kontrolkami AcroForm, ograniczonymi zasobami napędzanymi callbackami i statystykami per operacja
Version 2.639.0
Changed
- Mapowania dużych plików lokalnych dopasowują teraz skonfigurowany limit mapowanych bajtów między większymi oknami sekwencyjnymi a do 16 mniejszymi oknami dostępu losowego w trybie MRU, zachowują jawną opcję stałej geometrii i raportują aktywną geometrię, przejścia, liczniki wzorców dostępu oraz szczytową liczbę mapowanych bajtów
Version 2.638.0
Added
- Dodano ograniczony trening symboli JBIG2 między stronami z backendami zewnętrznymi i natywnymi, jednym współdzielonym słownikiem globalnym, dokładnym ponownym użyciem zduplikowanych stron, bezpośrednim wstawianiem batchy obrazów PDF, telemetrią backendów i rozmiarów oraz zmierzonymi oszczędnościami kompresji 78,8% na regresyjnym korpusie 100 stron
Version 2.637.0
Changed
- Równoległe renderowanie załadowanych stron redukuje teraz żądaną liczbę workerów o procesowy budżet pamięci, rezerwuje każdą zajętą stronę, utrzymuje rezerwacje uporządkowanego wyjścia aż po dostarczenie callbacków, budzi czekających na budżet przy anulowaniu lub awarii oraz raportuje telemetrię współbieżności, rezerwacji, przyjęć, opóźnień i oczekiwania
Version 2.636.0
Changed
- Prefetch załadowanych stron kompiluje i renderuje teraz poza blokadą cache, anuluje kooperacyjnie na etapach tokenizacji i odtwarzania, ustępuje renderowaniu stron na pierwszym planie i udostępnia telemetrię postępu, awarii, preemptowania i opóźnienia anulowania
Version 2.635.0
Added
- Dodano uporządkowane, strumieniowane, równoległe renderowanie stron z callbackami w wątku wywołującym, ograniczoną kolejką ukończonych bitmap, backpressure producenta, kooperacyjnym anulowaniem, pożyczonymi cyklami życia bitmap oraz telemetrią kolejki, bajtów, oczekiwania, ukończeń i dostarczeń
Version 2.634.0
Added
- Dodano dwuetapowy równoległy pipeline załadowanych stron, który kompiluje display listy poza blokadą render cache, startuje odtwarzanie, zanim skompilowany jest pełny zestaw stron, dynamicznie balansuje ograniczonych workerów, zachowuje kolejność wejścia, redukuje alokacje tokenów zawartości i udostępnia telemetrię etapów, cache, ukończeń i opóźnień
Version 2.633.0
Added
- Dodano niemutowalne, zliczane referencjami uchwyty zdekodowanych bitmap z trafieniami cache bez kopiowania, bezpośrednim wątkowo-bezpiecznym rysowaniem przez renderer, odizolowanymi mutowalnymi kopiami na żądanie, cyklami życia niezależnymi od eviction oraz kumulatywną telemetrią uchwytów i kopii
Version 2.632.0
Changed
- Wykonywanie QuickJS działa teraz zarówno przez obiekty statyczne, jak i ABI-neutralny mostek DLL na Win32 i Win64, z wartościami bezpiecznymi dla Unicode, deterministycznym raportowaniem statusów, konfigurowalnymi limitami pamięci, stosu, skryptu, czasu i przerwań, bezpiecznym wykrywaniem DLL, odzyskiwaniem po odrzuconych skryptach oraz odtwarzalnymi międzyplatformowymi buildami runtime
Version 2.631.0
Changed
- Walidacja reguł biznesowych Factur-X i ZUGFeRD wykonuje teraz pełną, przejrzaną powierzchnię XPath 2 Schematron z zewnętrznymi bazami kodów, wiązaniami sekwencyjnymi, kwantyfikatorami, sumami FLWOR, stabilnymi identyfikatorami reguł fallback, bezpiecznym ograniczonym parsowaniem XML, jawnymi wynikami błędów ewaluacji, zerem cichych pominięć i fail-closed walidacją łączoną
Version 2.630.0
Added
- Dodano wbudowane instancjonowanie czcionek zmiennych TrueType z mapowanymi osiami, współdzielonymi i prywatnymi krotkami
gvar, interpolacją IUP, aktualizacjami konturów prostych i złożonych, metrykami phantom-point, wypiekaniemHVAR,VVARiMVAR, kompaktową odbudową statycznych glifów, wyjściem z poprawnymi sumami kontrolnymi oraz rejestracją czcionek Unicode bez callbacków
Version 2.629.0
Added
- Dodano wolne od efektów ubocznych szacowanie placeholderów CMS na podstawie jawnych, providerowych lub RSA rozmiarów podpisów certyfikatów, dokładne kształtowanie statycznych kontenerów, konserwatywne rezerwy na dynamiczne payloady, przebudowy przed podpisem, próby providerów bramkowane zdolnościami, ścisłe gwarancje pojedynczego wywołania zewnętrznego podpisującego, ograniczone wymiarowanie i szczegółową diagnostykę prób
Version 2.628.0
Added
- Dodano subsetting osadzonych w załadowanych PDF-ach czcionek oparty na osiągalności, obejmujący zawartość stron, zagnieżdżone Form XObjects, stany wyglądu adnotacji, współdzielone programy czcionek, formaty TrueType i CFF, wybór rozmiaru zakodowanego, stabilne mapowania CID i ToUnicode, szczegółowe wyniki oraz domyślną odmowę, gdy obecne są podpisy
Version 2.627.0
Added
- Dodano automatyczne generowanie struktury PDF/UA dla deklaratywnych drzew layoutu, obejmujące nagłówki, listy, tabele, figury, metadane języka i tekstu alternatywnego, artefakty paginacji, referencje marked-content bezpieczne dla kontynuacji, zachowanie kolejności czytania, walidację semantyczną i statystyki struktury
Version 2.626.0
Added
- Dodano deklaratywny DOM dokumentu z dziedziczonymi stylami, reużywalnymi fabrykami komponentów, tekstem, spacerami, stackami, kontenerami, sekcjami, powtarzanymi nagłówkami i stopkami, ważonymi tabelami z powtarzanymi wierszami nagłówka, ograniczoną głębokością kontynuacji, statystykami paginacji, niekopiującymi fragmentami tekstu i tabel, liniowym traversalem najwyższego poziomu, natychmiastowym zrzucaniem stron oraz zgodnymi powierzchniami API dla Delphi i C++Builder
Version 2.625.0
Added
- Dodano powtarzalną statystyczną bramkę wydajnościową Win32 i Win64, która izoluje load, save, render i ekstrakcję tekstu, zapisuje rozgrzewki i 30 surowych próbek z p50, p95, wariancją próbkową, RSS, I/O procesu, środowiskiem i deterministyczną tożsamością fixtury, a następnie ewaluuje stabilne progi JSON i zwraca kod wyjścia sygnalizujący niepowodzenie przy regresji
Version 2.624.0
Changed
- Przebudowano parsowanie prostych słowników i tablic wokół niemutowalnych spanów źródła, bezpośredniej konwersji liczb, jednobiegowych zagnieżdżonych kontenerów i indeksowanego wstawiania do słowników, z publiczną telemetrią materializacji; fixture Win32 z 30 000 par zredukował o 64,7% bajty alokowane w pięciu przebiegach i skrócił czas z 3 656 ms do 46 ms
Version 2.623.0
Added
- Dodano konfigurowalne limity parsera dla bajtów pojedynczych tokenów, tokenów łącznie, wpisów tablic lub słowników oraz zniekształconych tokenów, a także ścisły preset dla niezaufanego wejścia, typowane wyjątki limitów i telemetrię per load; bramki regresyjne odrzucają token 2 MiB i kontener miliona tokenów w mniej niż 250 ms i poniżej szczytu 37 MiB procesu
Version 2.622.0
Added
- Dodano jawne API zwalniania grafu obiektów załadowanych stron i telemetrię, które porzucają czyste korzenie należące do stron i cache renderowania, zachowując pośrednie zasoby współdzielone i metadane reloadu; sekwencyjne przetwarzanie 100 000 stron utrzymuje stabilny szczyt 69,3 MiB, a zwolnione zwykłe lub skompresowane strony materializują się ponownie z oryginalną tożsamością obiektów
Version 2.621.0
Changed
- Zdekodowane kontenery object-stream używają teraz konfigurowalnego cache LRU z limitem bajtowym, natychmiastowym eviction per kontener, reloadem ze źródła po eviction, trybem zerowej retencji oraz telemetrią szczytowych bajtów, eviction i reloadów
Version 2.620.0
Changed
- Duże zwykłe drzewa stron otwierają się teraz jako kompaktowe placeholdery, rozwiązują losowe strony przez traversal prowadzony
/Counti indeks hashowy obiektów pośrednich, cache'ują rozwiązane strony, udostępniają telemetrię i sterowanie materializacją oraz rozszerzają się automatycznie przed mutacjami struktury lub zapisem
Version 2.619.0
Changed
- Załadowane pola AcroForm, nazwy kwalifikowane, widgety, adnotacje i strony współdzielą teraz leniwy dwukierunkowy cache relacji z odwrotnym wyszukiwaniem adnotacji, wyszukiwaniem strony per widget, telemetrią aktywności, jawnym unieważnianiem dla surowych edycji grafu obiektów i bezpieczną dla mutacji automatyczną konserwacją
Version 2.618.0
Changed
- Wyszukiwanie obiektów stron używa teraz leniwie przebudowywanego, świadomego mutacji indeksu odwrotnego dla numerów obiektów i rozwiązanych wskaźników stron, zastępując powtarzane skany tablicy stron przy kopiowaniu stron, outline'ach, nazwanych destinationach, akcjach, formularzach, dostępności i uzgadnianiu drzewa stron, z telemetrią ważności i aktywności
Version 2.617.0
Changed
- Porównywanie renderowanych dokumentów wspiera teraz DPI wybrane przez wywołującego, tolerancję kolorów RGB lub luminancji, bramki podobieństwa oparte na stosunku zmienionych pikseli i metryce SSIM-podobnej, deterministyczne spójne regiony zmian, opcjonalne nakładki różnic PNG oraz fail-closed budżety pikseli per strona i łącznie, z jawną diagnostyką renderowania
Version 2.616.0
Changed
- Porównywanie dokumentów traversuje teraz grafy obiektów pośrednich przez deterministyczne ścieżki oparte na katalogu, hashuje wartości i strumienie w jawnych limitach zasobów, wyrównuje strony przed klasyfikacją wstawień, usunięć, przeniesień i zmian, odróżnia przeniesione obiekty od dodanych i usuniętych oraz raportuje porównania niekompletne, zamiast traktować wyniki ograniczone budżetem jako identyczne
Version 2.615.0
Changed
- Dekodowanie załadowanych obrazów używa teraz 16 shardów metadanych cache i dokładnej koordynacji singleflight per klucz, wykonuje niezależne kosztowne dekodowania współbieżnie, zachowując jeden decode właściciela dla zduplikowanych żądań, egzekwuje skonfigurowane budżety bajtów i wpisów na wszystkich shardach oraz udostępnia punkty wejścia dekodowania z cache i telemetrię współbieżności; cztery niezależne żądania JPEG 12 000 pikseli skalują się 3,72 raza na czterech workerach Win64, podczas gdy osiem żądań o tym samym kluczu dekoduje się raz
Version 2.614.0
Changed
- Renderowanie JPEG w skali szarości i RGB w niskiej rozdzielczości wybiera teraz ograniczoną skalę odwrotnej DCT 1/2, 1/4 lub 1/8, strumieniuje przeskalowane linie skanu przez stałoprzecinkowy resampler wprost do dokładnej docelowej bitmapy, zachowuje budżety dekodowania, anulowanie i izolację workerów kodeka oraz udostępnia telemetrię źródła, skali, celu, linii skanu i pamięci przez
GetLastJPEGReducedDecodeInfo; fixture regresyjny z 12 000 × 12 000 do 300 × 300 działa 24,05 raza szybciej niż pełne dekodowanie, bez alokowania jego 432 MB rastra źródłowego
Version 2.613.0
Changed
- Tablice
/Contentszaładowanych stron udostępniają teraz leniwy, seekowalny, konkatenowany strumień, utrzymują niesfiltrowane segmenty w magazynie wspieranym źródłem, dekodują najwyżej jeden filtrowany segment naraz, używają zamortyzowanie liniowej akumulacji tokenów i bajtów, zachowują oryginalne strumienie przy edycji przez doklejenie nowego segmentu i utrzymują sekwencję 10 000 segmentów o rozmiarze 1 GiB poniżej 64 MiB dodatkowej pamięci roboczej
Version 2.612.0
Changed
- Aktualizacje przyrostowe utrzymują teraz plik źródłowy zablokowany do zapisu i wspierany plikiem, zamiast przetrzymywać kompletne bajty źródła, odwiedzają i emitują tylko zmienione, nowe i usunięte obiekty w rzadkich podsekcjach xref, strumieniują oryginalny prefiks do nowego celu i dopisują bezpośrednio z rollbackiem dla zapisów do tego samego celu; rewizja 4 GiB z jednym obiektem mieści się w 128 MiB dodatkowej pamięci roboczej
Version 2.611.0
Added
- Dodano ograniczony cache dekoderów załadowanych czcionek w zakresie dokumentu z limitem LRU 32 MiB i 128 wpisów, reusem parsowania singleflight między stronami, ekstrakcją załadowanego tekstu, eksportem SVG i zamianą tekstu, niezależnymi wynikami deep copy z
GetLoadedFontDecoder, konfigurowalnym budżetem pamięci i API telemetrii oraz automatycznym unieważnianiem konfiguracji grafu, stron, reloadów, JSON Patch i CMap; powtarzane użycie jednej współdzielonej czcionki pośredniej parsuje teraz jej encoding, widths,ToUnicode,CIDToGIDMapi mapowania potomków tylko raz, dopóki jest przetrzymywana