Native rich-text media queries
De native XHTML-decoder evalueert het media-attribute van een style-element en nested @media-groepen voordat ondersteunde declaraties naar echte rich-text-runs worden gecascaded
Media-evaluatie gebruikt een expliciet native host-profiel en inspecteert geen desktop, browser of display-apparaat
Options := THPDFHeadlessRichTextDecodeOptions.Default;
Options.MediaType := hrmtScreen;
SetLength(Options.MediaFeatures, 2);
Options.MediaFeatures[0].Name := 'width';
Options.MediaFeatures[0].Value := '800px';
Options.MediaFeatures[1].Name := 'resolution';
Options.MediaFeatures[1].Value := '2dppx';
Runs := HPDFDecodeHeadlessRichText(XHTML, Options);
<style media="screen and (width >= 600px)">
@media (resolution >= 2dppx) {
span.notice { font-size: 14pt }
}
</style>
Condities en cascading
Queries ondersteunen all, print en screen media types, only- en not-modifiers, kommagescheiden alternatieven en tussen haakjes geplaatste not, and en or-condities
Numerieke features accepteren colon-gelijkheid, min-/max-vormen en forward, omgekeerde of geketende range-vergelijkingen met =, <, <=, > en >=
Nested groepen behouden bronvolgorde, declaratie-importance, selector-specificity en geërfde namespace-declaraties; een style media-attribute en alle omvattende media-groepen moeten matchen
CSS identifier-escapes, comments, exponentnotatie en gebalanceerde functie-tokens worden binnen dezelfde begrensde parser gescand
Onbekende features, niet-ondersteunde waarden en general-enclosed-condities behouden een onbekende waarheidswaarde door negatie en Booleaanse evaluatie heen; alleen een finale true-query zet diens declaraties aan
Een host-entry aanleveren voor een toekomstige feature maakt die feature geen deel van de ondersteunde query-vocabulaire
Host-profiel
Ondersteunde numerieke features zijn width, height, device-width, device-height, resolution, aspect-ratio, device-aspect-ratio, color, color-index, monochrome en grid
Discrete features zijn orientation, scan, update, overflow-block, overflow-inline, color-gamut, pointer, any-pointer, hover en any-hover
Lengte-units zijn pt, px, in, pc, cm, mm, q, em en rem; resolutie-units zijn dpi, dpcm, dppx en x, en ratio's gebruiken slash-notatie
Media em en rem gebruiken MediaInitialFontSize in plaats van een gecascadeerde element-fontgrootte; diens default is 12 punten, en nul behoudt dezelfde 12-punts-initiale waarde voor nul-geïnitialiseerde legacy-records
Een weggelaten orientation of aspect-ratio kan worden afgeleid uit meegeleverde width en height; hoogte nul laat de ratio onbekend, terwijl gelijke breedte en hoogte portrait-oriëntatie gebruiken
any-pointer kan zowel coarse als fine bevatten; none kan niet worden gecombineerd met een andere pointer-waarde, en color-gamut omvat de lager ondersteunde gamut-rangen
Het default medium is print, met 8 kleurbits, geen indexed of monochrome kleur, grid 0 en sRGB-gamut; diens update-, overflow-inline-, pointer-, hover- en scan-capabilities ontbreken, en overflow-block is paged
Dimensies en resolutie hebben geen verzonnen apparaat-defaults; screen-capabilities anders dan de gedeelde kleurdefaults vragen een expliciete host-waarde wanneer relevant
MediaFeatures staat hoogstens 32 distincte ASCII-insensitive namen toe, elk met 1 tot 64 ASCII-letters, cijfers of koppeltekens en een waarde van 1 tot 256 UTF-16-code-units; herkende entries moeten een geldige niet-negatieve numerieke of ondersteunde discrete waarde gebruiken
MediaInitialFontSize moet eindig zijn en ofwel nul of tussen 0.000001 en 1000000 punten liggen; ongeldige host-profielen raisen EHPDFHeadlessRichTextCodecError vóór het teruggeven van runs
Opgeslagen documenten en grenzen
Native aanroepers kunnen een custom host-profiel configureren via THPDFHeadlessRichTextDecodeOptions en dat direct doorgeven aan HPDFDecodeHeadlessRichText
Berekende runs behouden de gekozen stijlen in opgeslagen RV en embedded appearances; gewone FDF/XFDF-imports gebruiken het default print-profiel
Media-tokens, nested groepen, host-waarde-parsing en matching delen MaxNodes, MaxTotalCodeUnits, MaxDepth en annulerings-accounting met de bestaande stylesheet-parser
Gefaalde decodering publiceert geen partiele runs, en gefaalde imports behouden de eerdere documentstatus van de omvattende transactie
Externe style sheets, calc- en viewport-units, verdere media-features en algemene CSS-layout blijven apart werk