[−][src]Struct cairo::PdfSurface
Methods
impl PdfSurface
[src]
pub unsafe fn from_raw_full(
ptr: *mut cairo_surface_t
) -> Result<PdfSurface, Status>
[src]
ptr: *mut cairo_surface_t
) -> Result<PdfSurface, Status>
impl PdfSurface
[src]
pub fn new<P: AsRef<Path>>(
width: f64,
height: f64,
path: P
) -> Result<Self, Status>
[src]
width: f64,
height: f64,
path: P
) -> Result<Self, Status>
pub fn for_stream<W: Write + 'static>(
width: f64,
height: f64,
stream: W
) -> Result<Self, Status>
[src]
width: f64,
height: f64,
stream: W
) -> Result<Self, Status>
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.
pub unsafe fn for_raw_stream<W: Write + 'static>(
width: f64,
height: f64,
stream: *mut W
) -> Result<Self, Status>
[src]
width: f64,
height: f64,
stream: *mut W
) -> Result<Self, Status>
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::take_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 take_output_stream
is private, so you won’t be able to downcast it.
But removing it anyway ensures that later writes do no go through a dangling pointer.
pub fn get_versions() -> impl Iterator<Item = PdfVersion>
[src]
pub fn restrict(&self, version: PdfVersion) -> Result<(), Status>
[src]
pub fn set_size(&self, width: f64, height: f64) -> Result<(), Status>
[src]
pub fn set_metadata(
&self,
metadata: PdfMetadata,
value: &str
) -> Result<(), Status>
[src]
&self,
metadata: PdfMetadata,
value: &str
) -> Result<(), Status>
pub fn set_page_label(&self, label: &str) -> Result<(), Status>
[src]
pub fn set_thumbnail_size(&self, width: i32, height: i32) -> Result<(), Status>
[src]
pub fn add_outline(
&self,
parent_id: i32,
name: &str,
link_attribs: &str,
flags: PdfOutline
) -> Result<i32, Status>
[src]
&self,
parent_id: i32,
name: &str,
link_attribs: &str,
flags: PdfOutline
) -> Result<i32, Status>
Methods from Deref<Target = Surface>
pub fn to_raw_none(&self) -> *mut cairo_surface_t
[src]
pub fn create_similar(
&self,
content: Content,
width: i32,
height: i32
) -> Result<Surface, Status>
[src]
&self,
content: Content,
width: i32,
height: i32
) -> Result<Surface, Status>
pub fn get_mime_data(&self, mime_type: &str) -> Option<Vec<u8>>
[src]
pub unsafe fn get_mime_data_raw(&self, mime_type: &str) -> Option<&[u8]>
[src]
pub fn set_mime_data<T: AsRef<[u8]> + 'static>(
&self,
mime_type: &str,
slice: T
) -> Result<(), Status>
[src]
&self,
mime_type: &str,
slice: T
) -> Result<(), Status>
pub fn supports_mime_type(&self, mime_type: &str) -> bool
[src]
pub fn set_device_offset(&self, x_offset: f64, y_offset: f64)
[src]
pub fn get_device_offset(&self) -> (f64, f64)
[src]
pub fn set_device_scale(&self, x_scale: f64, y_scale: f64)
[src]
pub fn get_device_scale(&self) -> (f64, f64)
[src]
pub fn set_fallback_resolution(
&self,
x_pixels_per_inch: f64,
y_pixels_per_inch: f64
)
[src]
&self,
x_pixels_per_inch: f64,
y_pixels_per_inch: f64
)
pub fn get_fallback_resolution(&self) -> (f64, f64)
[src]
pub fn create_similar_image(
&self,
format: Format,
width: i32,
height: i32
) -> Result<Surface, Status>
[src]
&self,
format: Format,
width: i32,
height: i32
) -> Result<Surface, Status>
pub fn map_to_image(
&self,
extents: Option<RectangleInt>
) -> Result<MappedImageSurface, Status>
[src]
&self,
extents: Option<RectangleInt>
) -> Result<MappedImageSurface, Status>
pub fn set_user_data<T: 'static>(
&self,
key: &'static UserDataKey<T>,
value: Rc<T>
)
[src]
&self,
key: &'static UserDataKey<T>,
value: Rc<T>
)
Attach user data to self
for the given key
.
pub fn get_user_data<T: 'static>(
&self,
key: &'static UserDataKey<T>
) -> Option<Rc<T>>
[src]
&self,
key: &'static UserDataKey<T>
) -> Option<Rc<T>>
Return the user data previously attached to self
with the given key
, if any.
pub fn get_user_data_ptr<T: 'static>(
&self,
key: &'static UserDataKey<T>
) -> Option<NonNull<T>>
[src]
&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.
pub fn remove_user_data<T: 'static>(&self, key: &'static UserDataKey<T>)
[src]
Unattach from self
the user data associated with key
, if any.
If there is no other Rc
strong reference, the data is destroyed.
pub fn flush(&self)
[src]
pub fn finish(&self)
[src]
pub fn get_type(&self) -> SurfaceType
[src]
pub fn status(&self) -> Status
[src]
pub fn finish_output_stream(&self) -> Result<Box<dyn Any>, StreamWithError>
[src]
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 [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
impl Clone for PdfSurface
[src]
fn clone(&self) -> PdfSurface
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for PdfSurface
[src]
impl Deref for PdfSurface
[src]
impl Display for PdfSurface
[src]
impl FromGlibPtrBorrow<*mut cairo_surface_t> for PdfSurface
[src]
unsafe fn from_glib_borrow(ptr: *mut cairo_surface_t) -> PdfSurface
[src]
impl FromGlibPtrFull<*mut cairo_surface_t> for PdfSurface
[src]
unsafe fn from_glib_full(ptr: *mut cairo_surface_t) -> PdfSurface
[src]
impl FromGlibPtrNone<*mut cairo_surface_t> for PdfSurface
[src]
unsafe fn from_glib_none(ptr: *mut cairo_surface_t) -> PdfSurface
[src]
impl<'a> FromValueOptional<'a> for PdfSurface
[src]
unsafe fn from_value_optional(v: &'a Value) -> Option<Self>
[src]
impl SetValue for PdfSurface
[src]
impl SetValueOptional for PdfSurface
[src]
unsafe fn set_value_optional(v: &mut Value, s: Option<&Self>)
[src]
impl StaticType for PdfSurface
[src]
fn static_type() -> Type
[src]
impl<'a> ToGlibPtr<'a, *mut cairo_surface_t> for PdfSurface
[src]
type Storage = &'a Surface
fn to_glib_none(&'a self) -> Stash<'a, *mut cairo_surface_t, Self>
[src]
fn to_glib_full(&self) -> *mut cairo_surface_t
[src]
fn to_glib_container(&'a self) -> Stash<'a, P, Self>
[src]
impl TryFrom<Surface> for PdfSurface
[src]
Auto Trait Implementations
impl RefUnwindSafe for PdfSurface
impl !Send for PdfSurface
impl !Sync for PdfSurface
impl Unpin for PdfSurface
impl UnwindSafe for PdfSurface
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToSendValue for T where
T: ToValue + SetValue + Send + ?Sized,
[src]
T: ToValue + SetValue + Send + ?Sized,
fn to_send_value(&self) -> SendValue
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T> ToValue for T where
T: SetValue + ?Sized,
[src]
T: SetValue + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,