Visningstillstånd för optionellt innehåll
Nativ rasterisering kan explicit tillämpa visningsrekommendationer för optionellt innehåll enligt ISO 32000-1:2008 avsnitt 8.11.4.4 och 8.11.4.5
Standardalternativen lämnar ViewerState=nil och behåller fristående final-form D-beteende i båda annoteringsanvändningarna, utan att tillämpa AS automatiskt
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 initierar D, tillämpar matchande View-applikationer och därefter manuella överskrivningar; Print- eller Export-applikationer ersätter aktuella rekommendationer tillfälligt för den operationen och ändrar varken tillståndsobjektet eller PDF-dictionaryna
Varje aktiv rekommendation bland matchande applikationer och kategorier måste vara ON för att en grupp ska få ON; frånvarande användningsinformation ger ingen rekommendation och bevarar gruppens aktuella tillstånd
Kategorier som stöds är View, Print, Export, Zoom, Language och User; CreatorInfo och PageElement förblir informativa
Zoom använder ett inkluderande min och ett exkluderande max, där minst en gräns krävs och standardvärdena är noll och oändlighet; Language föredrar exakta skiftlägesokänsliga taggar bland applikationens OCG:er, i annat fall matchande gruppspråk som markerats Preferred ON
User jämför den explicit levererade Individual, Title eller Organization mot en sträng eller en array av namn med exakt Unicode-text; PDFDocEncoding-, UTF-16- och PDF 2.0 UTF-8-textsträngar behåller sin avkodade betydelse
En applikation med utelämnade OCG:er får som standard en tom gruppuppsättning; om PrintState saknas i ett befintligt Print-användningsdictionary ges ingen rekommendation
AS begränsar inte kategorier till händelsen med samma namn, så en Print-applikation kan tillämpa Zoom- eller Language-rekommendationer via samma explicita kontext
OCMD-policys, rekursiva VE-uttryck, nästlat markerat innehåll, Form XObjects, bilder och annoteringsappearance konsumerar de resulterande grupptillstånden genom den befintliga begränsade synlighetsvägen
Manuella ändringar kvarstår över kontextbyten tills de rensas eller återställs; dokumentomläsning, mutation, stängning eller destruktion löper ut tillståndet permanent, vilket kräver ny access och ett nytt objekt
Håll det lånade tillståndet vid liv och oförändrat under varje rendering; skrivskyddad återanvändning tillåts så länge den underliggande adapterns callback-kontrakt för concurrency gäller
Renderingsarbete, gruppsökning, språkkandidatsökningar, uppslag av manuella val, avkodning av begränsad hexadecimal- och UTF-8-text samt temporär tillståndslagring ingår i operation-, token-, avkodade byte-, arbetsbyte- och avbrottsgränser
SetGroupState är en anroparstyrd tillståndscontaineroperation med kapacitet på 100000 val; renderingsgränserna binder konsumtionen oberoende, och applikationer bör sätta lämpliga begränsningar för externa valförfrågningar
Visningshändelsen är oberoende av annoteringens Usage; inget av alternativen ger utskriftsbehörighet, kör SetOCGState-åtgärder, aktiverar rich media eller skapar något användargränssnitt
Godkännandetesterna använder oberoende deklarerade tillstånd och exakta RGB-rektangelmasker, livstids- och mutationstester, återinträdande och serialiserad samtidig callback-rendering, samt separata observationer från MuPDF och Poppler
Observationer av läsarens standardkontext ersätter inte explicita nativa ekvationer för Zoom, Language, User eller manuellt tillstånd; rena geometrikamrater validerar rasterkoordinater oberoende
Versionerade Linux JSON-operationer
{
"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}
]
}
}
Utelämnas optionalContent behålls statiskt D-beteende; ett objekt aktiverar automatiskt tillstånd med en standardhändelse View, zoom 1 samt tomma kontextsträngar för språk och användare
Händelsen tar view, print eller export och är oberoende av annoteringens usage; inget operativsystems språk, någon användaridentitet eller någon visningszoom härleds
Kontextsträngar tillåter högst 4096 UTF-16-kodenheter vardera; zoom måste vara ändlig, positiv och högst 1000000000
Val kräver ett positivt objektnummer, ett generationsnummer från noll till och med 65535 och ett explicit booleskt enabled-värde; operationen tillåter högst 1024 val inom sin arbetsminnesgräns, och upprepade referenser använder det senast angivna tillståndet
Varje operation skapar och frigör sitt eget lånade nativa tillstånd, så skicka önskade manuella val på nytt med en senare förfrågan; PDF-dictionaryna och efterföljande renderingar utan detta objekt behåller sin tidigare konfiguration
Felaktigt formade JSON-alternativ returnerar status invalid-argument, misslyckanden med antagen budget returnerar status budget-exceeded, och felaktiga dokumentmetadata eller inaktuella gruppreferenser behåller befintlig renderingsstatus för parsningsfel före PNG-publicering
Kapabiliteter rapporterar optionalContent.automaticState, de tre händelserna, explicita kontextmedlemmar, stöd för manuella val och livstid begränsad till operationen
Generera verkliga rena samt AES R5/R6 Language/User-källor med Tests/Linux/Build-LinuxABIOptionalAutomaticFixtures.py OUTPUT och kör sedan Tests/Linux/Run-LinuxABIOptionalAutomaticAcceptance.sh LIBRARY FIXTURES NEW_OUTPUT mot varje nativt ABI-bygge
Callback-godkännandet kontrollerar oberoende pixelformler, strikta JSON-typer, kryptering, budgetar, avbrott, klistriga utmatnings-/resultatfel, återhämtning med samma handtag samt frånvaro av kvarhållet visningstillstånd; det kräver pypdf, cryptography, NumPy och Pillow och undertrycker start av skrivbordsvisare
Se THPDFHeadlessOptionalContentState, THPDFOptionalContentContext och IHPDFHeadlessRenderLifetime