PDF em Rust: guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

PDF em Rust: Guia completo para criar documentos com a biblioteca printpdf

1. O que é e por que usar

printpdf é uma biblioteca poderosa e flexível para a linguagem de programação Rust, projetada para criar documentos PDF "do zero". Diferente de muitas ferramentas que apenas convertem HTML ou Markdown para PDF, o printpdf oferece uma API de baixo nível que dá controle total sobre cada aspecto do documento: desde o posicionamento de texto e gráficos vetoriais até a incorporação de fontes e imagens. Esta biblioteca é escrita em Rust puro, sem dependências externas (além da biblioteca padrão), tornando-a ideal para sistemas onde segurança de memória, desempenho e portabilidade são essenciais.

Por que usar printpdf? No mundo atual, o PDF é o formato universal para troca de documentos. A geração de PDF no lado do servidor é necessária em diversos cenários: criação de faturas e notas fiscais em sistemas ERP, geração de relatórios e dashboards analíticos, emissão de certificados e diplomas, criação de formulários e documentos para impressão. Rust, com seu foco em desempenho e confiabilidade, é perfeito para essas tarefas. O printpdf permite fazer isso de forma eficiente, sem a sobrecarga de executar processos externos (como no caso do wkhtmltopdf) ou usar motores de navegador pesados.

As principais características da biblioteca incluem: suporte a todos os objetos PDF padrão (páginas, fontes, imagens, gráficos), trabalho com Unicode e incorporação de fontes TrueType/OpenType, criação de documentos com várias páginas, uso de espaços de cor RGB, CMYK e Grayscale, além de posicionamento preciso de elementos usando o sistema de coordenadas PDF. Não é uma ferramenta de conversão "on the fly", mas sim um "construtor" para criação profissional de documentos.

2. Instalação

Para instalar a biblioteca printpdf no seu projeto Rust, use o gerenciador de pacotes padrão Cargo. Você precisa adicionar a dependência no arquivo Cargo.toml do seu projeto.

Abra o terminal na pasta raiz do seu projeto e execute o comando:

cargo add printpdf

Ou adicione manualmente a seguinte linha na seção [dependencies] do seu Cargo.toml:

[dependencies]
printpdf = "0.7"

Após isso, o Cargo baixará automaticamente a biblioteca e todas as suas dependências internas na próxima compilação do projeto. Certifique-se de ter o Rust (rustc) e o Cargo instalados. Caso contrário, visite rustup.rs para instalar.

3. Início rápido — exemplo mínimo funcional

Vamos criar um documento PDF simples com uma página e texto. Este exemplo mostra o ciclo básico de trabalho com a biblioteca: criar o documento, adicionar uma página, escolher uma fonte, desenhar texto e salvar o arquivo.

use printpdf::*;
use std::fs::File;
use std::io::BufWriter;

fn main() {
    // Cria um novo documento PDF
    let (doc, page1, layer1) = PdfDocument::new(
        "Meu primeiro PDF em Rust",
        Mm(210.0), // Largura da página (A4)
        Mm(297.0), // Altura da página (A4)
        "Layer 1", // Nome da camada
    );

    // Obtém a fonte padrão (Helvetica embutida)
    let font = doc.add_builtin_font(BuiltinFont::Helvetica).unwrap();

    // Inicia o trabalho com a camada
    let current_layer = doc.get_page(page1).get_layer(layer1);

    // Usa a fonte tamanho 48pt, cor preta
    current_layer.use_text("Olá, PDF em Rust!", 48.0, Mm(50.0), Mm(200.0), &font);

    // Salva o documento em um arquivo
    let file =                    

Recommendations