Paragraph

Struct Paragraph 

Source
pub struct Paragraph {
    text: Vec<StyledString>,
    words: VecDeque<StyledString>,
    style_applied: bool,
    alignment: Alignment,
}
Expand description

A multi-line wrapped paragraph of formatted text.

If the text of this paragraph is longer than the page width, the paragraph is wrapped at word borders (and additionally at string borders if it contains multiple strings). If a word in the paragraph is longer than the page width, the text is truncated.

Use the push, string, push_styled and string_styled methods to add strings to this paragraph. Besides the styling of the text (see Style), you can also set an Alignment for the paragraph.

The line height and spacing are calculated based on the style of each string.

§Examples

With setters:

use genpdfi_extended::{elements, style};
let mut p = elements::Paragraph::default();
p.push("This is an ");
p.push_styled("important", style::Color::Rgb(255, 0, 0));
p.push(" message!");
p.set_alignment(genpdfi_extended::Alignment::Center);

Chained:

use genpdfi_extended::{elements, style};
let p = elements::Paragraph::default()
    .string("This is an ")
    .styled_string("important", style::Color::Rgb(255, 0, 0))
    .string(" message!")
    .aligned(genpdfi_extended::Alignment::Center);

Fields§

§text: Vec<StyledString>§words: VecDeque<StyledString>§style_applied: bool§alignment: Alignment

Implementations§

Source§

impl Paragraph

Source

pub fn new(text: impl Into<StyledString>) -> Paragraph

Creates a new paragraph with the given content.

§Example
use genpdfi_extended::elements::Paragraph;
let mut p = Paragraph::new("start");
p.push("middle");
let _ = p.aligned(genpdfi_extended::Alignment::Center).string("end");
Source

pub fn set_alignment(&mut self, alignment: Alignment)

Sets the alignment of this paragraph.

Source

pub fn aligned(self, alignment: Alignment) -> Self

Sets the alignment of this paragraph and returns the paragraph.

Source

pub fn push(&mut self, s: impl Into<StyledString>)

Adds a string to the end of this paragraph.

Source

pub fn string(self, s: impl Into<StyledString>) -> Self

Adds a string to the end of this paragraph and returns the paragraph.

Source

pub fn push_styled(&mut self, s: impl Into<String>, style: impl Into<Style>)

Adds a string with the given style to the end of this paragraph.

Adds a string with the given style to the end of this paragraph and returns the paragraph.

§Examples
use genpdfi_extended::elements::Paragraph;
use genpdfi_extended::style::Style;
let mut p = Paragraph::new("start");
p.push_link("click", "https://example.com", Style::new());
p.push("more");
Source

pub fn styled_string( self, s: impl Into<String>, style: impl Into<Style>, ) -> Self

Adds a string with the given style to the end of this paragraph and returns the paragraph.

Source

fn get_offset(&self, width: Mm, max_width: Mm) -> Mm

Source

fn apply_style(&mut self, style: Style)

Trait Implementations§

Source§

impl Clone for Paragraph

Source§

fn clone(&self) -> Paragraph

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Paragraph

Source§

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

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

impl Default for Paragraph

Source§

fn default() -> Paragraph

Returns the “default value” for a type. Read more
Source§

impl Element for Paragraph

Source§

fn render( &mut self, context: &Context, area: Area<'_>, style: Style, ) -> Result<RenderResult, Error>

Renders this element to the given area using the given style and font cache. Read more
Source§

fn framed(self, line_style: impl Into<LineStyle>) -> FramedElement<Self>
where Self: Sized,

Draws a frame around this element using the given line style.
Source§

fn padded(self, padding: impl Into<Margins>) -> PaddedElement<Self>
where Self: Sized,

Adds a padding to this element.
Source§

fn styled(self, style: impl Into<Style>) -> StyledElement<Self>
where Self: Sized,

Sets the default style for this element and its children.
Source§

impl<T: Into<StyledString>> Extend<T> for Paragraph

Source§

fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl From<Vec<StyledString>> for Paragraph

Source§

fn from(text: Vec<StyledString>) -> Paragraph

Converts to this type from the input type.
Source§

impl<T: Into<StyledString>> FromIterator<T> for Paragraph

Source§

fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self

Creates a value from an iterator. Read more

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
§

impl<T> Finish for T

§

fn finish(self)

Does nothing but move self, equivalent to drop.
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<E> IntoBoxedElement for E
where E: Element + 'static,

Source§

fn into_boxed_element(self) -> Box<dyn Element>

Creates a boxed element from this element.
Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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
§

impl<U, T> ToOwnedObj<U> for T
where U: FromObjRef<T>,

§

fn to_owned_obj(&self, data: FontData<'_>) -> U

Convert this type into T, using the provided data to resolve any offsets.
§

impl<U, T> ToOwnedTable<U> for T
where U: FromTableRef<T>,

§

fn to_owned_table(&self) -> U

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V