rckive-genpdf-rs

This is a fork of genpdf-rs by RCKIVE.

A user-friendly PDF generator written in pure Rust.

Documentation

genpdf is a high-level PDF generator built on top of [printpdf][] and [rusttype][]. It takes care of the page layout and text alignment and renders a document tree into a PDF document. All of its dependencies are written in Rust, so you don’t need any pre-installed libraries or tools.

rust // Load a font from the file system let font_family = genpdf::fonts::from_files("./fonts", "LiberationSans", None) .expect("Failed to load font family"); // Create a document and set the default font family let mut doc = genpdf::Document::new(font_family); // Change the default settings doc.set_title("Demo document"); // Customize the pages let mut decorator = genpdf::SimplePageDecorator::new(); decorator.set_margins(10); doc.set_page_decorator(decorator); // Add one or more elements doc.push(genpdf::elements::Paragraph::new("This is a demo document.")); // Render the document and write it to a file doc.render_to_file("output.pdf").expect("Failed to write PDF file");

For a complete example with all supported elements, see the [examples/demo.rs][] file.

Features

Cargo Features

This crate has the following Cargo features (deactivated per default):

Alternatives

Minimum Supported Rust Version

This crate supports at least Rust 1.45.0 or later.

Contributing

Contributions to this project are welcome! Please submit pull requests on Github.

If you are looking for a good starting point, have a look at the issues with the label “good first issue” in genpdf-rs’s issue tracker.

Contact

For bug reports or feature requests, please look at the Github Issues board if your issue exists, and create a new one if it doesn't. For questions, check out Github Discussions

License

This repository is licensed under EUPL-1.2 or later, except for code that is unchanged from the upstream repository as described below.

This code was forked, find the original repository here: https://git.sr.ht/~ireas/genpdf-rs. All code that has not been changed is licensed under Apache-2.0 and MIT, and documentation under CC-0, as described in the original repository README.

As of the time of this writing, no merges have been made from the original repository since its forking. This means that the prime way to find pre-fork code is using Git: git checkout 38dd11e8.