PyMuPDF4LLM é uma biblioteca projetada para converter PDFs no formato Markdown. Aqui, compartilharei minha experiência testando esta biblioteca.
Comece instalando a biblioteca usando o seguinte comando:
pip install pymupdf4llm
O uso básico é bastante simples, exigindo apenas três linhas de código para converter um PDF em Markdown:
import pymupdf4llm md_text = pymupdf4llm.to_markdown("input.pdf") print(md_text)
Você pode especificar argumentos para ajustar como o conteúdo é extraído.
Por padrão, todo o PDF é convertido em uma única saída de texto. No entanto, você pode extrair texto página por página especificando page_chunks=True.
md_text = pymupdf4llm.to_markdown("input.pdf", page_chunks=True)
Para extrair imagens como arquivos, use a opção write_images=True:
md_text = pymupdf4llm.to_markdown("input.pdf", write_images=True)
Também é possível incorporar imagens diretamente no Markdown usando codificação base64:
md_text = pymupdf4llm.to_markdown("input.pdf", embed_images=True)
Para testes, vários PDFs com diferentes elementos Markdown foram usados.
Os cabeçalhos são convertidos corretamente no formato Markdown. Aqui está uma parte do resultado:
# Sample Markdown Guide This is a sample markdown file that includes various features for quick reference. ## 1. Headers ... ## 3. Lists
A formatação em negrito e itálico também é convertida corretamente:
**Bold: **Bold Text**** _Italic: *Italic Text*_ **_Bold and Italic: ***Bold and Italic***_**
As listas ordenadas no primeiro nível são convertidas sem problemas, mas as listas aninhadas e as listas não ordenadas não são convertidas com precisão.
## 3. Lists ### Unordered List Item 1 Item 2 Sub-item 1 Sub-item 2 ### Ordered List 1. First item 2. Second item 1. Sub-item A 2. Sub-item B
As URLs dos links são extraídas, mas toda a linha que contém o link se torna um hiperlink, desviando-se do formato original.
## 4. Links and Images [You can add links using [Link Text](URL).](https://www.example.com/)
As imagens não são extraídas por padrão, mas podem ser salvas localmente com write_images=True.
md_text = pymupdf4llm.to_markdown("input.pdf", write_images=True)
As imagens salvas são então referenciadas no Markdown da seguinte forma:
### Image Example
![](input.pdf-1-0.png)
Tabelas simples sem bordas verticais não são convertidas com precisão (provavelmente porque limites de colunas ambíguos fazem com que as tabelas sejam tratadas como texto simples).
## 5. Tables
**Column 1** **Column 2** **Column 3**
Row 1 Data A Data B
Row 2 Data C Data D
Os blocos de código são convertidos corretamente, mas a especificação da linguagem (por exemplo, python) não é mantida. A conversão de código embutido também apresenta problemas.
## 6. Code
### Inline Code
Use backticks for inline code: print("Hello, world!")
### Code Block
Use triple backticks for code blocks:
```
def greet(name):
return f"Hello, {name}!"
print(greet("Markdown"))
```
Para texto com várias linhas, as quebras de linha são preservadas conforme aparecem no PDF original.
Markdown is a lightweight and versatile markup language favored by developers, writers, and bloggers alike
due to its simplicity in formatting text, enabling users to create readable and well-structured documents—
whether for documentation, blog posts, or articles—without the complexity of HTML, while also offering the
ability to convert content seamlessly into other formats like HTML, PDF, and even slideshows, making it an
ideal choice for projects that require both clarity and flexibility in presentation.
Apesar dos desafios na conversão precisa de listas e links, PyMuPDF4LLM é uma ferramenta útil para converter PDFs em Markdown. Pode funcionar localmente sem a necessidade de modelos de linguagem externos, tornando-o adequado para ambientes onde o acesso à Internet não está disponível.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3