CreateDisplayList(DisplayLayers, DisplayIntent, ContentOptions) Method

Definition

Namespace Broadside
Assembly Broadside.dll

Builds the display list of some of the page's layers for an intent, with limits and cancellation.

public DisplayList CreateDisplayList(DisplayLayers layers, DisplayIntent intent, ContentOptions options)

Parameters

layers
DisplayLayers

The layers the list holds, painted in content, annotations, form fields order.

intent
DisplayIntent

Whether the list is for the screen or for printing, which decides the annotations drawn.

options
ContentOptions

Limits, optional-content state and cancellation for the content and appearance runs.

Returns

DisplayList
The list.

Remarks

ISO 32000-2 §12.5.5 (Algorithm "Appearance streams"), §12.5.3 (flags) and §12.7 (form fields through their widgets). The content layer is what CreateDisplayList(ContentOptions) builds. The annotation layer holds every annotation but widgets, the form-field layer every widget, each in Annots order, each between BeginAnnotation(in DisplayAnnotation) and EndAnnotation(): its normal appearance for its appearance state (AS), placed on its rectangle, which a backend composites as a transparency group with the annotation's ca (or CA) and BM (§12.5.5, §11.6.6). Building each layer as a list of its own lets a viewer redraw the overlays without re-rasterizing the page; replaying the three lists in order draws what one list of all three draws.

Not drawn (Table 167): Hidden annotations; unknown types with Invisible; for View those with NoView, for Print those without Print; annotations whose optional content (OC, §8.11.3.3) is hidden in the options' optional-content state (the document's default without one); popups, which a viewer shows as windows of their own (§12.5.6.14); and annotations without a normal appearance for their state, recorded as AppearanceNotRendered (Information) unless they are links or projections or their rectangle has no size, which need none (Table 166). Appearances are drawn as they are; none is generated. For View, NoZoom and NoRotate (always for text annotations, §12.5.6.4) travel to the backend in DisplayAnnotation.

Lists are kept like CreateDisplayList()'s, per page, layers, intent and limits, within DisplayListCacheBudget (spec #33 viewer capability 13).

For Print the optional-content state (the options', else the default configuration's) has its configuration's auto-state entries for the Print event applied (§8.11.4.4), for the content and the annotations alike, and an image XObject without OC is painted as its alternate marked DefaultForPrinting (§8.9.5.4).