Optional content viewer-tilstand
Native rasterisering kan eksplicit anvende viewer-agtige optional content-anbefalinger fra ISO 32000-1:2008 afsnit 8.11.4.4 og 8.11.4.5
Standard-options efterlader ViewerState=nil og beholder selvstændig endelig form D-adfærd i begge annotationsanvendelser uden at anvende AS automatisk
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 initialiserer D, anvender matchende View-applications og derefter manuelle overrides; Print- eller Export-applications erstatter midlertidigt aktuelle anbefalinger for den operation og ændrer ikke tilstandsobjektet eller PDF-dictionaries
Enhver aktiv anbefaling på tværs af matchende applications og kategorier skal være ON, for at en gruppe modtager ON; fraværende brugsinformation giver ingen anbefaling og bevarer gruppens aktuelle tilstand
Understøttede kategorier er View, Print, Export, Zoom, Language og User; CreatorInfo og PageElement forbliver informative
Zoom bruger inklusiv min og eksklusiv max med mindst én grænse krævet og standarder på nul og uendelig; Language foretrækker eksakte case-insensitive tags inden for applikationens OCG'er og matcher ellers primærsprog-grupper markeret Preferred ON
User sammenligner den eksplicit leverede Individual, Title eller Organization mod en streng eller et array af navne med eksakt Unicode-tekst; PDFDocEncoding-, UTF-16- og PDF 2.0 UTF-8-tekststrenge beholder deres dekodede betydning
En applikation med udeladt OCGs har som standard et tomt gruppesæt; PrintState udeladt fra en eksisterende Print usage-dictionary giver ingen anbefaling
AS begrænser ikke kategorier til det enslydende event, så en Print-application kan anvende Zoom- eller Language-anbefalinger med samme eksplicitte kontekst
OCMD-politikker, rekursive VE-udtryk, nestet markeret indhold, Form XObjects, billeder og annotation-appearances forbruger de resulterende gruppestilstande gennem den eksisterende afgrænsede synlighedssti
Manuelle ændringer persisterer på tværs af kontekstændringer, indtil de ryddes eller tilbageføres; dokumentgenindlæsning, -mutation, -lukning eller -destruktion udløber tilstanden permanent og kræver frisk adgang og et nyt objekt
Hold den lånte tilstand i live og uændret under hver rendering; skrivebeskyttet genbrug er tilladt, mens den underliggende adapters callback-samtidighedskontrakt forbliver i kraft
Render-arbejde, gruppeopslag, sprogkandidat-scannings, manuel markerings-opslag, afgrænset hexadecimal og UTF-8 tekstdekodning samt midlertidig tilstandslager deltager i operations-, token-, dekodet-byte-, arbejdsbyte- og cancellation-grænser
SetGroupState er en kalder-drevet tilstandscontainer-operation med en kapacitet på 100000-markeringer; render-grænser begrænser uafhængigt forbruget, og applikationer bør påbyde egnede grænser for eksterne markeringsanmodninger
Viewer-event er uafhængig af annotations-Usage; ingen af options giver printtilladelse, afvikler SetOCGState-handlinger, aktiverer rich media eller opretter en brugergrænseflade
Accept bruger uafhængige deklarerede tilstande og eksakte RGB rektangelmasker, levetids- og mutationstests, reentrant og serialiseret callback samtidig rendering samt separate MuPDF- og Poppler-observationer
Reader default-kontekst-observationer erstatter ikke eksplicitte native Zoom-, Language-, User- eller manuel tilstand-ligninger; rene geometri-companions validerer uafhængigt raster-koordinater
Linux versionerede 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}
]
}
}
At udelade optionalContent beholder statisk D-adfærd; et objekt aktiverer automatisk tilstand med default View-event, zoom 1 og tomme sprog- og bruger-kontekststrenge
Eventet accepterer view, print eller export og forbliver uafhængigt af annotations-usage; intet operativsystemsprog, brugeridentitet eller display-zoom udledes
Kontekststrenge tillader højst 4096 UTF-16 code units hver; zoom skal være endelig, positiv og højst 1000000000
Markeringer kræver et positivt objektnummer, et generationsnummer fra nul til 65535 og en eksplicit boolesk enabled-værdi; operationen admitterer højst 1024 markeringer inden for sin arbejdshukommelsesgrænse, og gentagne referencer bruger sidst leverede tilstand
Enhver operation opretter og frigør sin egen lånte native tilstand, så send de ønskede manuelle markeringer igen med en senere anmodning; PDF-dictionariesne og efterfølgende renders uden dette objekt beholder deres tidligere konfiguration
Misdannede JSON-options returnerer invalid-argument-status, admitt-budget-fejl returnerer budget-exceeded-status, og misdannet dokumentmetadata eller forældede gruppe-referencer beholder den eksisterende render parse-fejlstatus inden PNG-publicering
Capabilities rapporterer optionalContent.automaticState, de tre events, eksplicitte kontekst-members, manuel markerings-understøttelse og operations-scopet levetid
Generér rigtige plain- og AES R5/R6 Language/User-kilder med Tests/Linux/Build-LinuxABIOptionalAutomaticFixtures.py OUTPUT og kør derefter Tests/Linux/Run-LinuxABIOptionalAutomaticAcceptance.sh LIBRARY FIXTURES NEW_OUTPUT mod hvert native ABI-build
Callback-accepten tjekker uafhængige pixelformler, strenge JSON-typer, kryptering, budgetter, cancellation, sticky output/resultat-fejl, same-handle-genopretning og fravær af tilbageholdt viewer-tilstand; den kræver pypdf, cryptography, NumPy og Pillow og undertrykker desktop viewer-start
Se THPDFHeadlessOptionalContentState, THPDFOptionalContentContext og IHPDFHeadlessRenderLifetime