cairo

Struct PdfSurface

source
pub struct PdfSurface(/* private fields */);
Available on crate feature pdf only.

Implementations§

source§

impl PdfSurface

source§

impl PdfSurface

source

pub fn new<P: AsRef<Path>>( width: f64, height: f64, path: P, ) -> Result<Self, Error>

source

pub fn for_stream<W: Write + 'static>( width: f64, height: f64, stream: W, ) -> Result<Self, Error>

Takes full ownership of the output stream, which is not allowed to borrow any lifetime shorter than 'static.

Because the underlying cairo_surface_t is reference-counted, a lifetime parameter in a Rust wrapper type would not be enough to track how long it can keep writing to the stream.

source

pub unsafe fn for_raw_stream<W: Write + 'static>( width: f64, height: f64, stream: *mut W, ) -> Result<Self, Error>

Allows writing to a borrowed stream. The lifetime of the borrow is not tracked.

§Safety

The value that stream points to must live at least until the underlying cairo_surface_t (which maybe be longer then the Rust PdfSurface wrapper, because of reference-counting), or until the output stream is removed from the surface with Surface::finish_output_stream.

Since the former is hard to track for sure, the latter is strongly recommended. The concrete type behind the Box<dyn Any> value returned by finish_output_stream is private, so you won’t be able to downcast it. But removing it anyway ensures that later writes do not go through a dangling pointer.

source

pub fn versions() -> impl Iterator<Item = PdfVersion>

source

pub fn restrict(&self, version: PdfVersion) -> Result<(), Error>

source

pub fn set_size(&self, width: f64, height: f64) -> Result<(), Error>

source

pub fn set_metadata( &self, metadata: PdfMetadata, value: &str, ) -> Result<(), Error>

Available on crate feature v1_16 only.
source

pub fn set_custom_metadata(&self, name: &str, value: &str) -> Result<(), Error>

Available on crate feature v1_18 only.
source

pub fn set_page_label(&self, label: &str) -> Result<(), Error>

Available on crate feature v1_16 only.
source

pub fn set_thumbnail_size(&self, width: i32, height: i32) -> Result<(), Error>

Available on crate feature v1_16 only.
source

pub fn add_outline( &self, parent_id: i32, name: &str, link_attribs: &str, flags: PdfOutline, ) -> Result<i32, Error>

Available on crate feature v1_16 only.

Methods from Deref<Target = Surface>§

source

pub fn to_raw_none(&self) -> *mut cairo_surface_t

source

pub fn create_similar( &self, content: Content, width: i32, height: i32, ) -> Result<Surface, Error>

source

pub fn create_for_rectangle(&self, bounds: Rectangle) -> Result<Surface, Error>

source

pub fn mime_data(&self, mime_type: &str) -> Option<Vec<u8>>

source

pub unsafe fn mime_data_raw(&self, mime_type: &str) -> Option<&[u8]>

source

pub fn set_mime_data<T: AsRef<[u8]> + 'static>( &self, mime_type: &str, slice: T, ) -> Result<(), Error>

source

pub fn supports_mime_type(&self, mime_type: &str) -> bool

source

pub fn device(&self) -> Option<Device>

source

pub fn content(&self) -> Content

source

pub fn set_device_offset(&self, x_offset: f64, y_offset: f64)

source

pub fn device_offset(&self) -> (f64, f64)

source

pub fn set_device_scale(&self, x_scale: f64, y_scale: f64)

source

pub fn device_scale(&self) -> (f64, f64)

source

pub fn set_fallback_resolution( &self, x_pixels_per_inch: f64, y_pixels_per_inch: f64, )

source

pub fn fallback_resolution(&self) -> (f64, f64)

source

pub fn create_similar_image( &self, format: Format, width: i32, height: i32, ) -> Result<ImageSurface, Error>

source

pub fn map_to_image( &self, extents: Option<RectangleInt>, ) -> Result<MappedImageSurface, Error>

source

pub fn mark_dirty(&self)

source

pub fn mark_dirty_rectangle(&self, x: i32, y: i32, width: i32, height: i32)

source

pub fn status(&self) -> Result<(), Error>

source

pub fn set_user_data<T: 'static>( &self, key: &'static UserDataKey<T>, value: Rc<T>, ) -> Result<(), Error>

Attach user data to self for the given key.

source

pub fn user_data<T: 'static>( &self, key: &'static UserDataKey<T>, ) -> Option<Rc<T>>

Return the user data previously attached to self with the given key, if any.

source

pub fn user_data_ptr<T: 'static>( &self, key: &'static UserDataKey<T>, ) -> Option<NonNull<T>>

Return the user data previously attached to self with the given key, if any, without incrementing the reference count.

The pointer is valid when it is returned from this method, until the cairo object that self represents is destroyed or remove_user_data or set_user_data is called with the same key.

source

pub fn remove_user_data<T: 'static>( &self, key: &'static UserDataKey<T>, ) -> Result<(), Error>

Unattached from self the user data associated with key, if any. If there is no other Rc strong reference, the data is destroyed.

source

pub fn flush(&self)

source

pub fn finish(&self)

source

pub fn type_(&self) -> SurfaceType

source

pub fn write_to_png<W: Write>(&self, stream: &mut W) -> Result<(), IoError>

This function writes the surface as a PNG image to the given stream.

If the underlying surface does not support being written as a PNG, this will return Error::SurfaceTypeMismatch

source

pub fn finish_output_stream(&self) -> Result<Box<dyn Any>, StreamWithError>

Finish the surface, then remove and return the output stream if any.

This calls Surface::finish, to make sure pending writes are done.

This is relevant for surfaces created for example with crate::PdfSurface::for_stream.

Use Box::downcast to recover the concrete stream type.

§Panics

This method panics if:

  • This method was already called for this surface, or
  • This surface was not created with an output stream in the first place, or
  • A previous write to this surface panicked, or
  • A previous write happened while another write was ongoing, or
  • A write is ongoing now.

The latter two cases can only occur with a pathological output stream type that accesses the same surface again from Write::write_all.

Trait Implementations§

source§

impl AsRef<Surface> for PdfSurface

source§

fn as_ref(&self) -> &Surface

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for PdfSurface

source§

fn clone(&self) -> PdfSurface

Returns a copy of the value. Read more
1.6.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for PdfSurface

source§

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

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

impl Deref for PdfSurface

source§

type Target = Surface

The resulting type after dereferencing.
source§

fn deref(&self) -> &Surface

Dereferences the value.
source§

impl From<PdfSurface> for Value

source§

fn from(v: PdfSurface) -> Self

Converts to this type from the input type.
source§

impl FromGlibPtrBorrow<*mut cairo_surface_t> for PdfSurface

source§

impl FromGlibPtrFull<*mut cairo_surface_t> for PdfSurface

source§

impl FromGlibPtrNone<*mut cairo_surface_t> for PdfSurface

source§

impl<'a> FromValue<'a> for &'a PdfSurface

source§

type Checker = GenericValueTypeOrNoneChecker<&'a PdfSurface>

Value type checker.
source§

unsafe fn from_value(value: &'a Value) -> Self

Get the contained value from a Value. Read more
source§

impl<'a> FromValue<'a> for PdfSurface

source§

type Checker = GenericValueTypeOrNoneChecker<PdfSurface>

Value type checker.
source§

unsafe fn from_value(value: &'a Value) -> Self

Get the contained value from a Value. Read more
source§

impl IntoGlibPtr<*mut cairo_surface_t> for PdfSurface

source§

unsafe fn into_glib_ptr(self) -> *mut cairo_surface_t

Transfer: full.
source§

impl StaticType for PdfSurface

source§

fn static_type() -> Type

Returns the type identifier of Self.
source§

impl<'a> ToGlibPtr<'a, *mut cairo_surface_t> for PdfSurface

source§

type Storage = PhantomData<&'a Surface>

source§

fn to_glib_none(&'a self) -> Stash<'a, *mut cairo_surface_t, Self>

Transfer: none. Read more
source§

fn to_glib_full(&self) -> *mut cairo_surface_t

Transfer: full. Read more
source§

fn to_glib_container(&'a self) -> Stash<'a, P, Self>

Transfer: container. Read more
source§

impl ToValue for PdfSurface

source§

fn to_value(&self) -> Value

Convert a value to a Value.
source§

fn value_type(&self) -> Type

Returns the type identifier of self. Read more
source§

impl ToValueOptional for PdfSurface

source§

fn to_value_optional(s: Option<&Self>) -> Value

Convert an Option to a Value.
source§

impl TryFrom<Surface> for PdfSurface

source§

type Error = Surface

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

fn try_from(surface: Surface) -> Result<PdfSurface, Surface>

Performs the conversion.
source§

impl ValueType for PdfSurface

source§

type Type = PdfSurface

Type to get the Type from. Read more
source§

impl ValueTypeOptional for PdfSurface

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, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> IntoClosureReturnValue for T
where T: Into<Value>,

source§

impl<T> StaticTypeExt for T
where T: StaticType,

source§

fn ensure_type()

Ensures that the type has been registered with the type system.
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T> TryFromClosureReturnValue for T
where T: for<'a> FromValue<'a> + StaticType + 'static,

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.
source§

impl<'a, T, C, E> FromValueOptional<'a> for T
where T: FromValue<'a, Checker = C>, C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError<E>>, E: Error + Send + 'static,