- Ferramenta de CLI open source para manipulação de arquivos PDF, baseada em Python e criada pela equipe do py-pdf
- Oferece diversos recursos de edição de PDF, como exibição de metadados, extração e mesclagem de páginas, remoção de páginas, conversão de imagens em PDF, compressão de documentos, criação de booklets e mais
- Também oferece recursos avançados como extração de imagens e texto anotado de PDFs e recuperação de xref de PDFs corrompidos por edição manual
- Na versão 0.5.0, lançada recentemente, foram adicionados novos recursos como assinatura e verificação de documentos PDF, extração apenas de páginas com anotações e rotação de páginas específicas
Ferramenta open source de CLI para PDF: pdfly
- pdfly é o projeto mais recente da organização py-pdf, uma ferramenta de linha de comando para manipulação de arquivos PDF que funciona em ambientes Python
- Foi desenvolvida com base nas bibliotecas fpdf2 e pypdf, e é fácil de instalar e usar, podendo ser aproveitada em várias plataformas
- O maior ponto forte do pdfly é o amplo suporte de recursos em comparação com projetos open source concorrentes, além de uma interface intuitiva que até desenvolvedores iniciantes conseguem usar com facilidade
- Em comparação com outros projetos, permite lidar facilmente com a maior parte das tarefas com PDF usando uma única ferramenta, oferecendo excelente eficiência
Principais recursos
-
Exibição de metadados
- Os comandos
pdfly meta e pdfly pagemeta permitem exibir metadados de PDF
- Fornece dados do sistema operacional como nome do arquivo, permissões, tamanho e horários de criação/modificação/acesso
- Exibe dados internos do PDF como versão do PDF, número de páginas, uso de criptografia, informações de fontes, anexos e quantidade de imagens
-
Combinação e edição de documentos
pdfly cat: recurso de extração de páginas específicas e mesclagem de documentos
pdfly rm: recurso de remoção seletiva de páginas
pdfly x2pdf: conversão de imagens em documentos PDF
pdfly compress: recurso de compressão de documentos
pdfly 2-up e pdfly booklet: recurso de criação de booklets
-
Extração de conteúdo
pdfly extract-images: extração de imagens de PDFs
pdfly extract-annotated-text: extração de texto anotado
-
Recuperação de PDF
pdfly update-offsets: corrige a tabela xref de PDFs editados manualmente em um editor de texto para que possam ser abertos novamente
- A tabela xref é um índice de offsets em bytes dentro do documento e pode ser corrompida durante a edição manual
- Lançamento da versão 0.5.0 do pdfly em 13 de outubro de 2025
pdfly sign: permite adicionar assinatura eletrônica a documentos PDF de forma simples
pdfly check-sign: recurso de verificação de assinatura de documentos PDF
pdfly extract-annotated-pages: extrai seletivamente apenas páginas com anotações, ajudando em revisões e retrabalho repetitivos de documentos grandes
pdfly rotate: recurso para rotacionar páginas específicas do documento
Planos futuros
- Há diversas ideias de funcionalidades em preparação nas issues marcadas como
up-for-grabs no GitHub
- Também há issues com a label
good first issues voltadas para novos contribuidores, incentivando a participação de quem está começando em open source
- O plano é dar prioridade à expansão de recursos relacionados a assinatura eletrônica como
pdfly sign e check-sign
- Feedback de usuários, relatos de bugs e sugestões de funcionalidades são muito bem-vindos
https://github.com/py-pdf/pdfly
2 comentários
Eu usava o Moduui PDF e, para ficar mais prático para meu uso pessoal, criei uma ferramenta de PDF que suporta apenas algumas funções (extração, mesclagem, remoção, rotação e reordenação) e estou usando ela. No navegador, usando
pdf.js/pdf-lib.js. Antes de criar minha própria ferramenta pessoal, também procurei, e vi que existe uma quantidade enorme de ferramentas e sites relacionados a PDF.Opinião no Hacker News
É um comentário de 10 anos atrás, mas ainda acho válido. Só no ecossistema de bibliotecas Python já existem muitas opções com funcionalidades de PDF parcialmente sobrepostas. Em outras linguagens acontece a mesma coisa, com inúmeras bibliotecas. No fim, cada uma delas é basicamente um conjunto de funções que transformam estruturas de dados parecidas. Por isso, para fazer trabalhos complexos com PDF, você acaba precisando combinar duas ou três bibliotecas, o que é ineficiente tanto do ponto de vista do desenvolvedor quanto em termos de recursos computacionais. Se alguém criasse em Rust estruturas de leitura/escrita de PDF de baixo nível, bem projetadas e em memória, acho que todo o ecossistema melhoraria muito. Qualquer linguagem ou biblioteca de PDF poderia aproveitar essas estruturas e, ao adotá-las, haveria chance de reduzir código e melhorar desempenho e segurança. E se ainda fornecessem apenas
get_structure_pointer()eset_structure_pointer(), as próprias bibliotecas poderiam se integrar livremente entre si. Com uma estrutura dessas, bibliotecas pequenas poderiam adicionar funcionalidades com facilidade e ser adotadas rapidamente. Não sei quem, na prática, toparia fazer isso, mas acho que é algo realmente necessárioAo criar uma biblioteca de PDF, há trade-offs de projeto constantes dependendo do objetivo de uso. O próprio conceito de "em memória" já é uma grande escolha, porque o formato PDF foi projetado justamente para não exigir que o arquivo inteiro seja carregado de uma vez na memória. Além disso, para quem prefere módulos profundos com interfaces mínimas, nunca fará sentido tratar módulos rasos e com funcionalidades amplas como a resposta. Por fim, também é preciso considerar que, em ambientes gerenciados como a JVM, uma biblioteca feita com interface em C traz complexidade e overhead adicionais. Link relacionado
Concordo com a opinião de que "se alguém fizesse uma estrutura de PDF em memória realmente boa em Rust, isso revolucionaria o ecossistema". Mas já é difícil o bastante criar uma biblioteca muito melhor do que todas as existentes; continuar atualizando, corrigindo bugs e fazendo manutenção é muito mais difícil ainda. Mesmo que houvesse financiamento suficiente, ainda seria preciso encontrar alguém disposto a manter isso com entusiasmo ano após ano e, quando essa pessoa perdesse o interesse, arrumar outra. E, nesse meio-tempo, inevitavelmente também seria preciso lidar com reclamações. Resumindo: já quero agradecer antecipadamente ao voluntário que vai criar isso e manter para sempre
Ao ver a discussão sobre "seria ótimo existir uma excelente estrutura de PDF em memória feita em Rust", compartilho o projeto open source lopdf, que de fato já existe
Estou justamente depurando um problema de parsing de PDF agora e acabei escrevendo meu próprio parser. Tentei entender os parsers existentes, mas o código era tão bagunçado que no fim implementei o meu. O formato PDF, sinceramente, ficou bastante complexo ao longo da sua evolução, com toda sorte de remendos e adições excessivas de funcionalidades. A ideia em si é boa, mas existem tantos tipos de objeto e propriedades especiais em PDF que, toda vez que você tenta fazer bindings para isso, a complexidade de FFI acaba se repetindo. Talvez fosse melhor criar um mapeamento oficial entre PDF e JSON e, desde que o problema de memória fosse aceitável, permitir que as principais bibliotecas trocassem dados assim. O modelo de objetos também não é tão diferente assim
Brinca-se que toda essa discussão pode ser resumida em uma única tirinha do XKCD, e compartilha-se o link
O Poppler não detalha isso muito bem no site oficial, mas na prática é uma biblioteca com vários utilitários incluídos, e também é fácil de usar em distribuições Linux. Já usei essas ferramentas várias vezes com ótimos resultados. Link para a wiki
Usei essas ferramentas para analisar centenas de milhares de holerites em PDF e subir os dados para um novo sistema financeiro. Dou nota 10 de 10, facilmente
Também uso as ferramentas do poppler com frequência no dia a dia. Acho excelentes
Para trabalho de baixo nível, o qpdf é bastante útil
Também existe o pdfcpu.io. Ainda assim, se você só precisa fazer alterações simples em PDF, é muito difícil encontrar um aplicativo GUI open source, multiplataforma, que resolva isso. Eu mesmo ainda não encontrei
Já usei bastante o PDF SAM basic ("split and merge"). Link do site É open source, multiplataforma, e ainda tem funcionalidades extras disponíveis só na versão paga
Se você puder hospedar por conta própria, o Signature PDF também me pareceu bem interessante. Link do projeto
Talvez o pdf24 tools sirva. Ele também oferece instalação offline
Já usei
pdfcpu images list, e levei um susto quando ele começou a baixar alguma fonte da internet no meu computador local. É outubro, mas achei assustador demais e deixei para láNo fim das contas, depois de pensar bastante, decidi usar uma licença paga do Creative Cloud. O Acrobat simplesmente funciona, então não teve jeito. Eu realmente queria uma alternativa, mas na prática não há um substituto à altura
Gostaria de recomendar o PDFgear. Não é algo super avançado, mas entre as alternativas ao Adobe, é praticamente o único que considero utilizável para edição de PDF de nível intermediário. É gratuito e está disponível em todas as plataformas, exceto Linux
Já que suporta tudo menos Linux, perguntam em tom de brincadeira onde estão os binários para OpenVMS, Apple II e DEC Alpha
Também existe o Master PDF, que inclusive tem versão para Linux. Link
Mesmo que pareça bom à primeira vista, acho difícil acreditar na lógica de "é grátis, não tem anúncios, não vende dados e funciona de forma transparente só com capital de investidores". O comentário até cita a explicação do próprio site, que diz que o PDFgear opera sem receita de anúncios ou dados, sustentado por investimento e otimização técnica
Tenho certa desconfiança em relação ao PDFgear. No passado, ele já fez upload para a nuvem sem o conhecimento do usuário, e há indícios de que a empresa também administra o próprio subreddit
Fato que aprendi hoje: já existem muitas ferramentas multifuncionais para arquivos PDF
Queria muito que existisse uma função que gerasse automaticamente o sumário (metadados). PDFs de livros antigos muitas vezes não têm isso, e a navegação fica muito ruim. O Kybook3 tem uma versão dessa função, mas não funciona direito. Com a tecnologia de LLM atual, talvez isso já fosse possível
Fico me perguntando se uma ferramenta para automatizar assinatura de PDF realmente faz sentido. A essência de uma assinatura é que uma pessoa leu e concordou; então automatizar isso parece meio contraditório
Acho que não há motivo para uma empresa deixar de assinar automaticamente documentos que ela própria gera. A assinatura aqui não é a assinatura visual dentro do PDF, mas sim uma assinatura criptográfica que permite a qualquer pessoa verificar quem emitiu o documento. Ou seja, serve para que o usuário possa confirmar se um extrato bancário realmente veio do banco
Um CEO não tem tempo para assinar uma quantidade enorme de contratos de funcionários. Mesmo na era analógica, havia secretárias encarregadas de carimbar documentos, então automatizar assinaturas faz sentido na prática
Comprovantes bancários podem ser emitidos com assinatura automática sempre que necessário. Ninguém espera que o gerente da agência fique sentado assinando cada solicitação manualmente
Por exemplo, se você precisa assinar 25 PDFs, é muito mais conveniente revisar tudo na tela e fazer uma assinatura em lote do que abrir um visualizador e assinar um por um manualmente
Além do que foi mencionado acima, também existe o pdfcpu, um "Go PDF processor and CLI". GitHub do pdfcpu
Para mim, a verdadeira ferramenta canivete suíço de PDF sempre foi o conjunto de utilitários PDF do Didier Stevens. Link do programa