Skip to main content

FormObject

Struct FormObject 

Source
pub struct FormObject {
    pub objects: Vec<PageObject>,
    pub matrix: Affine,
    pub bbox: Option<Rect>,
    pub transparency: Transparency,
    pub oc: Option<Arc<Dict>>,
    pub source: Option<ObjRef>,
    pub live_edit: bool,
}
Expand description

A form XObject’s contents, already interpreted.

Fields§

§objects: Vec<PageObject>

The objects the form produced.

§matrix: Affine

The matrix taking the form’s space to the page’s.

§bbox: Option<Rect>

The form’s own bounding box, when it declared one. A missing /BBox means no clip at all — the form is unbounded.

§transparency: Transparency

The form’s transparency group, when it declared one.

§oc: Option<Arc<Dict>>

The /OC entry from the form XObject’s own dictionary.

Like an image’s, this is where a form declares optional-content membership, alongside and independently of any marked-content sequence enclosing the Do that drew it.

§source: Option<ObjRef>

The XObject this form was drawn from, when it was a named resource.

As an image’s: the objects here are already interpreted, so a regenerated stream names the stream rather than re-emitting them.

§live_edit: bool

Whether this form is a live edit’s appearance — a field the user is currently typing in, rather than anything the file itself carries.

It is a fact about where the object came from, not an instruction to a renderer, which is why a page crate can hold it: the file’s own appearance streams and a form session’s regenerated ones are both false, and only the appearance a session produces for the field it is editing is true.

A renderer needs it because the oracle draws that one form differently from every other object on the page: the widget’s editor builds its own local render options with subpixel antialiasing forced on, which no page-level flag ever clears, so the text of a live edit — and no other text — is drawn that way. The distinction has to travel with the object because by the time anything rasterizes, this form is one entry in the page’s object list among all the others, and the whole page is rendered under a single set of options.

Defaults to false, so every existing producer keeps its meaning.

Trait Implementations§

Source§

impl Clone for FormObject

Source§

fn clone(&self) -> FormObject

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FormObject

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for FormObject

Source§

fn eq(&self, other: &FormObject) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for FormObject

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.