Creare PDF in Rust con printpdf

Mattepuffo's logo
Creare PDF in Rust con printpdf

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!


Condividi

Commentami!