Struct pdfium_render::page_objects::PdfPageObjects
source · [−]pub struct PdfPageObjects<'a> { /* private fields */ }Expand description
The page objects contained within a single PdfPage.
Content on a page is structured as a stream of PdfPageObject objects of different types: text objects, image objects, path objects, and so on.
Note that Pdfium does not support or recognize all PDF page object types. For instance,
Pdfium does not currently support or recognize the External Object (“XObject”) page object type
supported by Adobe Acrobat and Foxit’s commercial PDF SDK. In these cases, Pdfium will return
PdfPageObjectType::Unsupported.
Implementations
sourceimpl<'a> PdfPageObjects<'a>
impl<'a> PdfPageObjects<'a>
sourcepub fn len(&self) -> PdfPageObjectIndex
pub fn len(&self) -> PdfPageObjectIndex
Returns the total number of page objects within the containing PdfPage.
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if this PdfPageObjects collection is empty.
sourcepub fn as_range(&self) -> Range<PdfPageObjectIndex>
pub fn as_range(&self) -> Range<PdfPageObjectIndex>
Returns a Range from 0..(number of objects) for this PdfPageObjects collection.
sourcepub fn as_range_inclusive(&self) -> RangeInclusive<PdfPageObjectIndex>
pub fn as_range_inclusive(&self) -> RangeInclusive<PdfPageObjectIndex>
Returns an inclusive Range from 0..=(number of objects - 1) for this PdfPageObjects collection.
sourcepub fn get(
&self,
index: PdfPageObjectIndex
) -> Result<PdfPageObject<'_>, PdfiumError>
pub fn get(
&self,
index: PdfPageObjectIndex
) -> Result<PdfPageObject<'_>, PdfiumError>
Returns a single PdfPageObject from this PdfPageObjects collection.
sourcepub fn iter(&self) -> PdfPageObjectsIterator<'_>ⓘNotable traits for PdfPageObjectsIterator<'a>impl<'a> Iterator for PdfPageObjectsIterator<'a> type Item = PdfPageObject<'a>;
pub fn iter(&self) -> PdfPageObjectsIterator<'_>ⓘNotable traits for PdfPageObjectsIterator<'a>impl<'a> Iterator for PdfPageObjectsIterator<'a> type Item = PdfPageObject<'a>;
Returns an iterator over all the page objects in this PdfPageObjects collection.
sourcepub fn add_object(
&mut self,
object: PdfPageObject<'a>
) -> Result<PdfPageObject<'a>, PdfiumError>
pub fn add_object(
&mut self,
object: PdfPageObject<'a>
) -> Result<PdfPageObject<'a>, PdfiumError>
Adds the given PdfPageObject to this PdfPageObjects collection. The object’s memory ownership will be transferred to the PdfPage containing this PdfPageObjects collection, and the updated page object will be returned.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
sourcepub fn add_text_object(
&mut self,
object: PdfPageTextObject<'a>
) -> Result<PdfPageObject<'a>, PdfiumError>
pub fn add_text_object(
&mut self,
object: PdfPageTextObject<'a>
) -> Result<PdfPageObject<'a>, PdfiumError>
Adds the given PdfPageTextObject to this PdfPageObjects collection, returning the text object wrapped inside a generic PdfPageObject wrapper.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
sourcepub fn create_text_object(
&mut self,
x: PdfPoints,
y: PdfPoints,
text: impl ToString,
font: &PdfFont<'_>,
font_size: PdfPoints
) -> Result<PdfPageObject<'a>, PdfiumError>
pub fn create_text_object(
&mut self,
x: PdfPoints,
y: PdfPoints,
text: impl ToString,
font: &PdfFont<'_>,
font_size: PdfPoints
) -> Result<PdfPageObject<'a>, PdfiumError>
Creates a new PdfPageTextObject at the given x and y page co-ordinates from the given arguments and adds it to this PdfPageObjects collection, returning the text object wrapped inside a generic PdfPageObject wrapper.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then the content regeneration
will be triggered on the page.
sourcepub fn delete_object(
&mut self,
object: PdfPageObject<'a>
) -> Result<PdfPageObject<'a>, PdfiumError>
pub fn delete_object(
&mut self,
object: PdfPageObject<'a>
) -> Result<PdfPageObject<'a>, PdfiumError>
Deletes the given PdfPageObject from this PdfPageObjects collection. The object’s memory ownership will be removed from the PdfPage containing this PdfPageObjects collection, and the updated page object will be returned. It can be added back to a page objects collection or dropped, at which point the memory owned by the object will be freed.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
sourcepub fn delete_object_at_index(
&mut self,
index: PdfPageObjectIndex
) -> Result<PdfPageObject<'a>, PdfiumError>
pub fn delete_object_at_index(
&mut self,
index: PdfPageObjectIndex
) -> Result<PdfPageObject<'a>, PdfiumError>
Deletes the PdfPageObject at the given index from this PdfPageObjects collection. The object’s memory ownership will be removed from the PdfPage containing this PdfPageObjects collection, and the updated page object will be returned. It can be added back into a page objects collection or discarded, at which point the memory owned by the object will be dropped.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
sourcepub fn copy_object_from_page(
&mut self,
source: &'a PdfPage<'a>,
source_page_object_index: PdfPageObjectIndex
) -> Result<(), PdfiumError>
pub fn copy_object_from_page(
&mut self,
source: &'a PdfPage<'a>,
source_page_object_index: PdfPageObjectIndex
) -> Result<(), PdfiumError>
Copies a single page object with the given source page object index from the given source PdfPage, adding the object to the end of this PdfPageObjects collection.
Note that Pdfium does not support or recognize all PDF page object types. For instance, Pdfium does not currently support or recognize the External Object (“XObject”) page object type supported by Adobe Acrobat and Foxit’s commercial PDF SDK. If the page object is of a type not supported by Pdfium, it will be silently ignored and not copied.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
sourcepub fn copy_object_range_from_page(
&mut self,
source: &'a PdfPage<'a>,
source_page_object_range: RangeInclusive<PdfPageObjectIndex>
) -> Result<(), PdfiumError>
pub fn copy_object_range_from_page(
&mut self,
source: &'a PdfPage<'a>,
source_page_object_range: RangeInclusive<PdfPageObjectIndex>
) -> Result<(), PdfiumError>
Copies one or more page objects with the given range of indices from the given source PdfPage, adding the objects sequentially to the end of this PdfPageObjects collection.
Note that Pdfium does not support or recognize all PDF page object types. For instance, Pdfium does not currently support or recognize the External Object (“XObject”) page object type supported by Adobe Acrobat and Foxit’s commercial PDF SDK. Page objects not supported by Pdfium will be silently ignored by this function and will not copied.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
sourcepub fn copy_all(&mut self, page: &'a PdfPage<'a>) -> Result<(), PdfiumError>
pub fn copy_all(&mut self, page: &'a PdfPage<'a>) -> Result<(), PdfiumError>
Copies all page objects in the given PdfPage into this PdfPageObjects collection, appending them to the end of this PdfPageObjects collection.
For finer control over which page objects are imported, use one of the PdfPageObjects::copy_object_from_page() or PdfPageObjects::copy_object_range_from_page() functions. To drain page objects from the given PdfPage rather than copying them, use the PdfPageObjects::take_all() function.
Note that Pdfium does not support or recognize all PDF page object types. For instance, Pdfium does not currently support or recognize the External Object (“XObject”) page object type supported by Adobe Acrobat and Foxit’s commercial PDF SDK. Page objects not supported by Pdfium will be silently ignored by this function and will not copied.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
Calling this function is equivalent to
self.import_object_range_from_page(
page, // Source
page.objects().as_range_inclusive(), // Select all page objects
);sourcepub fn take_object_from_page(
&mut self,
source: &'a mut PdfPage<'a>,
source_page_object_index: PdfPageObjectIndex
) -> Result<(), PdfiumError>
pub fn take_object_from_page(
&mut self,
source: &'a mut PdfPage<'a>,
source_page_object_index: PdfPageObjectIndex
) -> Result<(), PdfiumError>
Removes a single page object with the given source page object index from the given source PdfPage, adding the object to the end of this PdfPageObjects collection.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
Likewise, if the given source PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the source page.
sourcepub fn take_object_range_from_page(
&mut self,
source: &mut PdfPage<'a>,
source_page_object_range: RangeInclusive<PdfPageObjectIndex>
) -> Result<(), PdfiumError>
pub fn take_object_range_from_page(
&mut self,
source: &mut PdfPage<'a>,
source_page_object_range: RangeInclusive<PdfPageObjectIndex>
) -> Result<(), PdfiumError>
Removes one or more page objects with the given range of indices from the given source PdfPage, adding the objects sequentially to the end of this PdfPageObjects collection.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
Likewise, if the given source PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the source page.
sourcepub fn take_all(&mut self, page: &'a mut PdfPage<'a>) -> Result<(), PdfiumError>
pub fn take_all(&mut self, page: &'a mut PdfPage<'a>) -> Result<(), PdfiumError>
Removes all page objects in the given PdfPage into this PdfPageObjects collection, appending them to the end of this PdfPageObjects collection. The given PdfPage will be drained of all page objects once this operation is completed.
For finer control over which page objects are imported, use one of the PdfPageObjects::take_object_from_page() or PdfPageObjects::take_object_range_from_page() functions. To copy page objects from the given PdfPage rather than removing them, use the PdfPageObjects::copy_all() function.
If the containing PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the page.
Likewise, if the given source PdfPage has a content regeneration strategy of
PdfPageContentRegenerationStrategy::AutomaticOnEveryChange then content regeneration
will be triggered on the source page.
Calling this function is equivalent to
self.take_object_range_from_page(
page, // Source
page.objects().as_range_inclusive(), // Select all page objects
);Auto Trait Implementations
impl<'a> !RefUnwindSafe for PdfPageObjects<'a>
impl<'a> !Send for PdfPageObjects<'a>
impl<'a> !Sync for PdfPageObjects<'a>
impl<'a> Unpin for PdfPageObjects<'a>
impl<'a> !UnwindSafe for PdfPageObjects<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more