Optional-content viewer state
Natywna rastracja może jawnie stosować zalecenia optional-content w stylu czytnika z ISO 32000-1:2008 sekcji 8.11.4.4 i 8.11.4.5
Opcje domyślne zostawiają ViewerState=nil i zachowują samodzielne zachowanie D final-form w obu użyciach adnotacji, bez automatycznego stosowania AS
Access := Document.GetRenderAccess(0);
Context := THPDFOptionalContentContext.Default;
Context.Zoom := 2;
Context.Language := 'en-US';
Viewer := THPDFHeadlessOptionalContentState.Create(Access, Context);
try
Viewer.SetGroupState(10, 0, True);
Options := THPDFHeadlessRenderOptions.Default;
Options.ViewerState := Viewer;
Viewer.Event := hocePrint;
Options.Usage := hruPrint;
HPDFRenderHeadlessPagePNGFile(Access, OutputFile, Options);
finally
Viewer.Free;
end;
View inicjalizuje D, stosuje pasujące aplikacje View, a potem ręczne nadpisania; aplikacje Print albo Export tymczasowo zastępują bieżące zalecenia dla tej operacji i nie modyfikują obiektu stanu ani słowników PDF
Każde aktywne zalecenie w pasujących aplikacjach i kategoriach musi być ON, żeby grupa dostała ON; brakująca informacja użycia nie dostarcza zalecenia i zachowuje bieżący stan tej grupy
Obsługiwane kategorie to View, Print, Export, Zoom, Language i User; CreatorInfo i PageElement pozostają informacyjne
Zoom używa min włącznie i max wyłącznie, z wymaganą co najmniej jedną granicą i defaultami zero i nieskończoność; Language preferuje dokładne tagi bez rozróżniania wielkości liter wewnątrz OCG aplikacji, w przeciwnym razie pasuje grupy języka głównego oznaczone Preferred ON
User porównuje jawnie dostarczone Individual, Title albo Organization z ciągiem albo tablicą nazw przy użyciu dokładnego tekstu Unicode; napisy PDFDocEncoding, UTF-16 i UTF-8 PDF 2.0 zachowują zdekodowane znaczenie
Aplikacja z pominiętymi OCG domyślnie ma pusty zbiór grup; PrintState pominięty w istniejącym słowniku użycia Print nie dostarcza zalecenia
AS nie ogranicza kategorii do zdarzenia o identycznej nazwie, więc aplikacja Print może stosować zalecenia Zoom albo Language używając tego samego jawnego kontekstu
Polityki OCMD, rekurencyjne wyrażenia VE, zagnieżdżona zawartość oznaczona, Form XObjecty, obrazy i wyglądy adnotacji konsumują wynikowe stany grup przez istniejącą ograniczoną ścieżkę widoczności
Ręczne zmiany przetrwają zmiany kontekstu aż do wyczyszczenia albo wycofania; przeładowanie, mutacja, zamknięcie albo zniszczenie dokumentu nieodwołalnie unieważnia stan, wymagając świeżego dostępu i nowego obiektu
Utrzymuj pożyczony stan żywy i niezmieniony podczas każdego renderowania; ponowne użycie tylko do odczytu jest dozwolone, dopóki obowiązuje kontrakt współbieżności callbacków adaptera podkładowego
Praca renderowania, odpytanie grup, skany kandydatów języka, odpytanie wyboru ręcznego, ograniczone dekodowanie tekstu szesnastkowego i UTF-8 oraz tymczasowy storage stanu uczestniczą w limitach operacji, tokenów, bajtów zdekodowanych, bajtów roboczych i anulowania
SetGroupState to operacja kontenera stanów sterowana wywołującym z pojemnością 100000 wyborów; limity renderowania niezależnie ograniczają konsumpcję, a aplikacje powinny narzucać odpowiednie limity zewnętrznym żądaniom wyboru
Zdarzenie czytnika jest niezależne od Usage adnotacji; żadna z opcji nie nadaje uprawnienia drukowania, nie wykonuje akcji SetOCGState, nie aktywuje rich media ani nie tworzy interfejsu użytkownika
Akceptacja używa niezależnych zadeklarowanych stanów i dokładnych masek prostokątów RGB, testów cyklu życia i mutacji, współbieżnego renderowania reentrant i serializowanego oraz odrębnych obserwacji MuPDF i Poppler
Obserwacje domyślnego kontekstu czytników nie zastępują jawnego natywnego równań Zoom, Language, User ani stanów ręcznych; towarzysze zwykłej geometrii niezależnie walidują współrzędne rastra
Linux versioned JSON operations
{
"schemaVersion": 1,
"type": "render",
"dpi": 72,
"usage": "view",
"optionalContent": {
"event": "print",
"zoom": 2,
"language": "en-US",
"individual": "Alice",
"title": "Engineer",
"organization": "Example",
"selections": [
{"objectNumber": 10, "generationNumber": 0, "enabled": true}
]
}
}
Pominięcie optionalContent zachowuje zachowanie statyczne D; obiekt aktywuje stan automatyczny ze zdarzeniem View domyślnym, zoom 1 i pustymi ciągami kontekstu języka i użytkownika
Zdarzenie akceptuje view, print albo export i pozostaje niezależne od usage adnotacji; nie jest wnioskowany język systemu, tożsamość użytkownika ani zoom wyświetlania
Ciągi kontekstu dopuszczają co najwyżej 4096 jednostek kodowych UTF-16 każde; zoom musi być skończony, dodatni i co najwyżej 1000000000
Selekcje wymagają dodatniego numeru obiektu, numeru generacji od zera do 65535 i jawnego Boolean enabled; operacja dopuszcza co najwyżej 1024 selekcje w granicy pamięci roboczej, a powtórzone referencje używają ostatniego dostarczonego stanu
Każda operacja tworzy i zwalnia własny pożyczony natywny stan, więc przekaż żądane selekcje ręczne ponownie z późniejszym żądaniem; słowniki PDF i kolejne renderowania bez tego obiektu zachowują wcześniejszą konfigurację
Wadliwe opcje JSON zwracają status invalid-argument, awarie dopuszczonego budżetu status budget-exceeded, a wadliwe metadane dokumentu albo przestarzałe referencje grup zachowują istniejący status błędu parsowania renderowania przed publikacją PNG
Zdolności raportują optionalContent.automaticState, trzy zdarzenia, jawni członków kontekstu, wsparcie selekcji ręcznych i cykl życia zakresu operacji
Generuj rzeczywiste źródła Language/User plain i AES R5/R6 przez Tests/Linux/Build-LinuxABIOptionalAutomaticFixtures.py OUTPUT, a potem uruchom Tests/Linux/Run-LinuxABIOptionalAutomaticAcceptance.sh LIBRARY FIXTURES NEW_OUTPUT względem każdego builda ABI
Akceptacja callbackowa sprawdza niezależne wzory pikseli, ścisłe typy JSON, szyfrowanie, budżety, anulowanie, lepkie awarie wyjścia/wyniku, odzyskiwanie tym samym handle i brak zachowanego stanu czytnika; wymaga pypdf, cryptography, NumPy i Pillow i wycisza uruchamianie czytnika pulpitu
Zobacz THPDFHeadlessOptionalContentState, THPDFOptionalContentContext i IHPDFHeadlessRenderLifetime