Script locali

PDF in Markdown con Python

Aggiornato il · Team di pdftomd.tools

Convertire un PDF in Markdown con Python significa scrivere uno script sul proprio computer. Questa guida mostra snippet testati per due librerie open source e uno strumento nel browser per i giorni in cui preferisci non installare nulla.

Un documento passa per un editor di codice ed esce come file Markdown

Niente Python a portata di mano? Lo strumento qui sotto fa la stessa conversione da PDF a Markdown, senza installazione. Rilascia un file con livello di testo e copia il risultato.

Nel browser · nessun caricamento

PDF di origine

Trascina qui un PDF o fai clic per sceglierlo

Solo PDF con testo. Le scansioni richiederebbero l’OCR, che questo strumento non esegue.

Anteprima Markdown

Qui comparirà il Markdown.
Configurazione

PDF in Markdown con Python: configurazione in quattro passaggi

Una pipeline locale, dall’installazione ai file di output.

  1. Un file trascinato in un’area di caricamento
    01

    Crea l’ambiente

    Crea un ambiente virtuale con python -m venv .venv e attivalo, così le librerie non finiscono nell’installazione di sistema.

    Vedi gli snippet
  2. Frammenti di testo raggruppati in righe ordinate
    02

    Installa una libreria

    Esegui pip install pymupdf4llm per un output Markdown generale, oppure pip install pdfplumber se ti interessano soprattutto le tabelle.

    Scegli una libreria
  3. Anteprima Markdown con titoli ed elenchi
    03

    Esegui lo script

    Copia uno snippet di questa pagina in un file .py e puntalo al tuo documento. Ogni esecuzione scrive un file .md che puoi aprire.

    Copia uno snippet
  4. Icone di Markdown e documento collegate da frecce
    04

    Controlla l’output

    Confronta il file .md con l’originale e togli intestazioni e piè di pagina vaganti prima che il testo venga elaborato altrove.

    Confronta nel browser
Opzioni

Quale libreria Python per passare da PDF a Markdown?

Non esiste un’unica libreria migliore per convertire PDF in Markdown con Python; ognuna bilancia in modo diverso velocità, licenza e tabelle. pymupdf4llm si basa su PyMuPDF, legge il layout e scrive direttamente Markdown, titoli e tabelle con righe compresi. È quindi una scelta predefinita sensata per note e recupero. pdfplumber offre un accesso più fine a caratteri, linee e celle, e si adatta agli script che puntano soprattutto ai dati delle tabelle.

Sono entrambi progetti open source di terze parti, non prodotti di questo sito. Per pochi documenti, lo strumento nel browser di questa pagina fa un passaggio simile senza installazione. Per centinaia di file a orari programmati, uno script Python locale è la scelta migliore.

  • pymupdf4llm: da PDF a Markdown con una chiamata
  • pdfplumber: accesso preciso alle celle delle tabelle con righe
  • Strumento nel browser: niente installazione, niente caricamenti

Limiti comuni a tutti gli approcci

Nessuna di queste opzioni legge le scansioni da sola: lo strumento nel browser non ha OCR, e le librerie sopra hanno bisogno di un passaggio OCR separato per le pagine fatte solo di immagini. Celle unite, tabelle ruotate e layout a due colonne sono difficili per ogni libreria Python e per il nostro strumento, quindi controlla le tabelle a mano. Nello strumento nel browser, le tabelle senza bordi richiedono almeno tre righe e la prima riga diventa sempre l’intestazione.

Browser o scriptConfronto
Area di caricamento con un lucchetto accanto a un terminale con un ingranaggio
A sinistra lo strumento nel browser senza configurazione; a destra uno script Python per i lavori automatizzati.
Snippet

Snippet Python per convertire PDF in Markdown

Testati con pymupdf4llm 1.28 e pdfplumber 0.11. Copiane uno ed eseguilo in locale.

Un file con pymupdf4llm

Terze parti · AGPL

Veloce e attento al layout: l’output mantiene titoli e tabelle con righe. PyMuPDF è sotto AGPL; verifica le condizioni prima di inserirlo in un prodotto chiuso.

# pip install pymupdf4llm
import pathlib
import pymupdf4llm

md = pymupdf4llm.to_markdown("report.pdf")
pathlib.Path("report.md").write_text(md, encoding="utf-8")

Tabelle con pdfplumber

Terze parti · MIT

Il migliore per le tabelle con righe. Di default trova solo tabelle con linee disegnate; le griglie senza bordi richiedono impostazioni dedicate. La funzione di supporto scrive ogni tabella come tabella con barre.

# pip install pdfplumber
import pdfplumber

def table_to_md(rows):
    rows = [[(c or "").replace("|", "\\|").strip() for c in r] for r in rows]
    head, body = rows[0], rows[1:]
    lines = ["| " + " | ".join(head) + " |", "|" + " --- |" * len(head)]
    lines += ["| " + " | ".join(r) + " |" for r in body]
    return "\n".join(lines)

with pdfplumber.open("invoice.pdf") as pdf:
    for page in pdf.pages:
        for table in page.extract_tables():
            print(table_to_md(table), end="\n\n")

Un’intera cartella con pymupdf4llm

Terze parti · AGPL

Un ciclo: legge ogni file della cartella pdfs e scrive un file .md per ogni input.

# pip install pymupdf4llm
import pathlib
import pymupdf4llm

out = pathlib.Path("markdown")
out.mkdir(exist_ok=True)
for pdf in sorted(pathlib.Path("pdfs").glob("*.pdf")):
    md = pymupdf4llm.to_markdown(str(pdf))
    (out / f"{pdf.stem}.md").write_text(md, encoding="utf-8")
    print("wrote", out / f"{pdf.stem}.md")
Casi d’uso

Dove ha senso uno script Python

Tre attività in cui conviene scrivere uno script.

Prima in locale
Elaborazione locale nel browser

Script o browser: i tuoi file restano in locale

Uno script locale non manda i tuoi file da nessuna parte, e nemmeno il nostro strumento nel browser: la conversione da PDF a Markdown gira con pdf.js nella pagina, e il file non raggiunge mai i nostri server.

Gli script girano sul tuo computerLo strumento nel browser non carica nullaOpzioni open source
Direzione opposta
Freccia a doppio senso tra un’icona Markdown e un’icona documento

Rendere di nuovo il Markdown in pagine

Dopo un passaggio con Python potresti aver bisogno di una versione stampabile. Lo strumento opposto rende il Markdown in pagine A4 nel browser.

Strumenti

Strumenti correlati

Altre pagine attorno al passaggio da PDF a Markdown.

Niente configurazione? Converti qui il PDF in Markdown

Rilascia un documento e copia testo pulito, oppure esegui gli snippet qui sopra sul tuo computer. Gratis e privato.

Converti un file

Fonti

  1. pymupdf4llm to_markdown() reference — PDF4LLM docs
  2. PyMuPDF (AGPL-3.0) — GitHub
  3. pdfplumber (MIT) — GitHub
  4. pdf.js — Mozilla
Domande

Domande frequenti

Domande su opzioni Python, licenze e limiti.

Qual è il modo più semplice per convertire PDF in Markdown con Python?

pymupdf4llm: installalo con pip e chiama to_markdown su un file. Ottieni Markdown con titoli, elenchi e tabelle con righe.

Serve un account o una chiave?

No. Le librerie si installano con pip e funzionano offline, e lo strumento nel browser non richiede account. Per gli script usa una libreria Python locale.

pymupdf4llm e pdfplumber sono vostri?

No. Sono entrambi progetti open source di terze parti. pymupdf4llm e PyMuPDF sono sotto AGPL, pdfplumber sotto MIT.

Uno script Python può leggere le scansioni?

Non da solo. Le pagine fatte solo di immagini richiedono prima un passaggio OCR. Anche il nostro strumento nel browser non ha OCR e ti avvisa quando un file sembra scansionato.

Come mantengo le tabelle quando converto PDF in Markdown?

pymupdf4llm scrive le tabelle con righe come tabelle con barre; pdfplumber le trova e la funzione di supporto le converte. Le tabelle senza bordi richiedono regolazioni in entrambi i casi.

Lo strumento nel browser è uguale a queste librerie?

No. Usa pdf.js e regole di layout proprie, quindi l’output può essere diverso. Non richiede installazione ed è adatto a una manciata di file.

Uno script Python carica i miei file?

No. Gli script locali girano sul tuo computer, e lo strumento nel browser di questa pagina elabora i file senza caricarli.