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