
PyMuPDF
Biblioteca Python de código aberto para gerenciar metadados de PDF
Experimente o PyMuPDF, uma biblioteca Python gratuita e de código aberto para acessar e modificar metadados de documentos PDF.
O que é PyMuPDF?
PyMuPDF, também conhecido como Fitz, é uma biblioteca Python de código aberto que oferece muitos recursos como análise de PDFs, divisão e mesclagem de PDFs etc., mas nesta página discutiremos apenas como os desenvolvedores Python podem usar a biblioteca PyMuPDF para lidar com tarefas relacionadas a metadados de PDF, como:
- Ler metadados de PDF: O PyMuPDF oferece suporte ao acesso a metadados de documentos PDF contendo informações como autor, título, assunto e data de criação, etc.
- Modificar metadados de PDF: a biblioteca também permite modificar metadados de documentos PDF.
- Ler metadados XML: documentos PDF também contêm metadados XML que não se limitam a propriedades de documentos padrão como autor, título etc. e podem ter metadados adicionais. Com o PyMuPDF, os desenvolvedores também podem lê-lo.
- Alterar metadados XML: os desenvolvedores também podem alterar metadados XML de PDFs usando a biblioteca PyMuPDF.
Introdução ao PyMuPDF
Você precisa do Python versão 3.8.0 ou superior para instalar e usar o PyMuPDF. Então, primeiro instale o Python e então use os comandos abaixo para instalar o PyMuPDF na sua máquina usando o pip e o ambiente virtual.
Linux
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
Mac OS
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
Windows
python -m venv pymupdf-venv
.\pymupdf-venv\Scripts\activate
pip install pymupdf
Ler metadados em PDF
Podemos ler metadados de um PDF usando o membro metadata da biblioteca PyMuPDF que contém o conteúdo completo de metadados do documento. O trecho de código abaixo mostra como obter os metadados de um PDF do membro metadata:
Saída
A captura de tela abaixo mostra os metadados recuperados de um PDF usando o PyMuPDF:
Editar metadados do PDF
Podemos editar os metadados de PDFs usando a biblioteca PyMuPDF passando um dicionário contendo os campos que queremos alterar junto com seus novos valores para o método set_metadata, conforme mostrado no trecho de código abaixo:
Ler metadados XML de PDFs
Podemos recuperar metadados XML de um PDF usando a biblioteca PyMuPDF. Usamos o método get_xml_metadata que retorna todos os metadados XML, conforme mostrado no snippet de código abaixo:
Saída
A captura de tela abaixo mostra os metadados XML recuperados de um PDF usando o PyMuPDF:
Alterar metadados XML de PDFs
Podemos definir ou alterar os metadados XML de um PDF usando o método set_xml_metadata da biblioteca PyMuPDF. Não é tão simples quanto substituir os metadados de nível de documento porque o set_xml_metadata aceitará qualquer string e substituirá os metadados XML completos pela string passada a ele.
Para evitar a exclusão não intencional de quaisquer informações de metadados, primeiro buscamos os metadados XML completos como uma string usando o get_xml_metadata e então usamos o método replace de string para substituir as informações desejadas. Finalmente, passamos o XML completo com campos alterados para o método set_xml_metadata que altera todos os metadados XML do PDF. Verifique o snippet de código abaixo para obter detalhes:
Conclusão
Em resumo, o PyMuPDF é uma ótima ferramenta para tarefas relacionadas à manipulação de metadados. Podemos facilmente recuperar e alterar as informações de metadados de PDFs. No entanto, uma fraqueza notável está no método set_xml_metadata. Este método aceita qualquer string passada a ele e sobrescreve o XML anterior com ele, o que pode causar perda não intencional de informações. Para evitar esse problema, os desenvolvedores precisam implementar sua lógica para garantir modificações corretas nos metadados XML.