blob: 0bca467023da8c4bff5393d031a74e2636fc74ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
use genpdf::Element as _;
use genpdf::{elements, style, fonts};
pub fn genpdf() -> Vec<u8> {
let regular_bytes = include_bytes!("/usr/share/fonts/liberation/LiberationSans-Regular.ttf");
let regular_font_data = fonts::FontData::new(regular_bytes.to_vec(), Some(printpdf::BuiltinFont::Helvetica)).expect("font data should be correct");
let bold_bytes = include_bytes!("/usr/share/fonts/liberation/LiberationSans-Bold.ttf");
let bold_font_data = fonts::FontData::new(bold_bytes.to_vec(), Some(printpdf::BuiltinFont::HelveticaBold)).expect("font data should be correct");
let italic_bytes = include_bytes!("/usr/share/fonts/liberation/LiberationSans-Italic.ttf");
let italic_font_data = fonts::FontData::new(italic_bytes.to_vec(), Some(printpdf::BuiltinFont::HelveticaOblique)).expect("font data should be correct");
let bold_italic_bytes = include_bytes!("/usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf");
let bold_italic_font_data = fonts::FontData::new(bold_italic_bytes.to_vec(), Some(printpdf::BuiltinFont::HelveticaBoldOblique)).expect("font data should be correct");
let font_family = fonts::FontFamily{
regular: regular_font_data,
bold: bold_font_data,
italic: italic_font_data,
bold_italic: bold_italic_font_data
};
let mut doc = genpdf::Document::new(font_family);
doc.set_title("BCard test");
doc.set_minimal_conformance();
doc.set_margins(10);
doc.set_line_spacing(1.25);
#[cfg(feature = "hyphenation")]
{
use hyphenation::Load;
doc.set_hyphenator(
hyphenation::Standard::from_embedded(hyphenation::Language::EnglishUS)
.expect("Failed to load hyphenation data"),
);
}
doc.push(
elements::Paragraph::new("genpdf Demo Document")
.aligned(elements::Alignment::Center)
.styled(style::Style::new().bold().with_font_size(20)),
);
// TODO fill doc with real data
let mut buf: Vec<u8> = Vec::new();
doc.render(&mut buf).expect("should render pdf");
buf
}
|