Creare PDF in Rust con printpdf
printpdf viene descritta come una libreria per creare PDF in Rust.
Ad essere sincero non l'ho trovata molto facile da usare, e non c'è nulla che riguarda la lettura dei PDF.
Comunque diamogli un'occhiata.
Aggiungete questa dipendenza al vostro Cargo.toml:
[dependencies]
printpdf = "0.3.2"
Qui sotto un esempio di codice in cui aggiungiamo un testo ed una immagine:
extern crate printpdf;
use printpdf::*;
use std::fs::File;
use image::jpeg::JpegDecoder;
use std::io::BufWriter;
fn main() {
let (doc, page1, layer1) = PdfDocument::new("Test_PDF_Rust", Mm(247.0), Mm(210.0), "Pagina 1");
let current_layer = doc.get_page(page1).get_layer(layer1);
let font = doc.add_builtin_font(BuiltinFont::Courier).unwrap();
let text = "TITOLO";
current_layer.use_text(text, 48 as f64, Mm(10.0), Mm(150.0), &font);
let mut image_file = File::open("img.jpeg").unwrap();
let image = Image::try_from(JpegDecoder::new(&mut image_file).unwrap()).unwrap();
image.add_to_layer(current_layer.clone(), None, None, None, None, None, None);
doc.save(&mut BufWriter::new(File::create("test.pdf").unwrap())).unwrap();
}
Rispetto all'esempio nella documentazione, noi abbiamo usato JpegDecoder per l'immagine e BuiltinFont perchè usiamo un font già presente nel sistema.
Enjoy!
rust pdf printpdf cargo jpegdecoder builtinfont
Commentami!