Convertire più PDF in Markdown in un colpo solo

Di Team di pdftomd.tools · Aggiornato il · 8 min di lettura

Per convertire più PDF in Markdown insieme, selezionali tutti in una pagina di conversione in blocco, come il nostro convertitore per più PDF, e scarica uno ZIP. Per centinaia di file o un lavoro che si ripete conviene un breve ciclo Python, e per i layout difficili il comando per cartelle di marker. Qualunque strada scegli, controlla poi che nessun risultato sia rimasto vuoto.

Illustrazione: un ventaglio di file PDF che confluisce in un archivio ZIP di file Markdown

Scegliere il metodo in base alla quantità

La strada giusta dipende meno dai PDF che da quanti sono e da quanto spesso il lavoro si ripete. Indicativamente:

  • Da pochi a qualche decina, una volta sola: una pagina di conversione in blocco nel browser. Niente da installare, e i file restano sul tuo dispositivo.
  • Centinaia, oppure ogni settimana: un ciclo Python su una cartella. Puoi pianificarlo, registrarne i log e mantenere la struttura delle cartelle.
  • Scansioni, moduli, formule, layout insoliti: uno strumento basato su modelli come marker. Su un portatile normale è molto più lento. È pensato per leggere con l'OCR le pagine senza livello di testo, ma nella nostra esecuzione su CPU ha lasciato comunque vuota la pagina scansionata; prova prima con pochi file.
Illustrazione: tre schede con pile di PDF sempre più alte, gestite da una finestra del browser, un terminale e un rack di server
Pila piccola: browser. Pila ricorrente: script. Pila enorme o difficile: uno strumento basato su modelli su una macchina potente.

Per confrontare in modo equo le tre strade abbiamo usato un set di 20 file per 40 pagine: dodici esempi di tabelle e layout, una guida in inglese, un report cinese di 11 pagine, un report di 4 pagine con intestazioni ripetute, una pagina scansionata senza livello di testo e due file diversi, entrambi chiamati notes.pdf, in due cartelle. Tutto è girato sulla nostra macchina di build (Linux x86_64, 8 vCPU, 16 GB RAM, no GPU).

Convertire più PDF in Markdown nel browser

Prima di iniziare, apri due o tre dei PDF e prova a selezionare una frase. Se il testo si seleziona, il file ha un livello di testo e tutti i metodi qui sotto funzionano. Se non si seleziona nulla, è una scansione o un'immagine, e solo uno strumento OCR ne tirerà fuori parole. Conoscere il mix in anticipo ti evita un secondo passaggio.

Apri la pagina di conversione in blocco, fai clic su Scegli file (o trascina una selezione nell'area apposita) e prendi tutti i PDF in una volta. Ogni file viene convertito nella scheda, uno dopo l'altro, e la pagina offre un unico ZIP con un .md per ogni PDF. Dato che il lavoro avviene in locale, la velocità dipende dal tuo dispositivo, non da un caricamento. È il modo più rapido per convertire più PDF in Markdown quando stanno tutti sullo stesso computer.

Screenshot: convertire più PDF in Markdown insieme sulla nostra pagina in blocco, elenco dei risultati con numero di pagine e tabelle e il pulsante Scarica ZIP
Screenshot della nostra esecuzione su 20 file: ogni file ha una riga con il numero di pagine e di tabelle.

Nei nostri test l'intero set, dalla scelta dei file allo ZIP pronto, ha richiesto circa 0,8 secondi in Chrome 155.0.8059.84 (tre esecuzioni, tra 0,8 e 1,0 secondi). Lo ZIP conteneva 20 file Markdown. I due notes.pdf sono usciti come notes.md e notes-2.md, nessuno ha sovrascritto l'altro, e la pagina scansionata è stata segnalata nell'elenco invece di fallire in silenzio.

I limiti: un browser non può leggere da solo un albero di cartelle, quindi i file di più cartelle finiscono uno accanto all'altro in un solo ZIP, e le quantità molto grandi sono limitate dalla memoria della scheda. Per qualche centinaio di file, dividi la selezione in più giri o passa a uno script.

Un ciclo Python con pymupdf4llm

Uno script Python per questo lavoro sta in poche righe. Questo converte una cartella di PDF in Markdown: scorre la cartella, mantiene la stessa struttura nell'output (così i due file notes restano separati) e va avanti se un file non riesce:

import pathlib, pymupdf4llm

src, out = pathlib.Path("pdfs"), pathlib.Path("markdown")
for pdf in sorted(src.rglob("*.pdf")):
    dest = out / pdf.relative_to(src).with_suffix(".md")
    dest.parent.mkdir(parents=True, exist_ok=True)
    try:
        dest.write_text(pymupdf4llm.to_markdown(str(pdf)), encoding="utf-8")
    except Exception as e:
        print(f"skipped {pdf}: {e}")
Installa con pip install pymupdf4llm. La libreria è sotto AGPL-3.0; Artifex vende una licenza commerciale.

Con gli stessi 20 file, il ciclo ha finito in 5,3 secondi nei nostri test, compresi l'avvio di Python e l'importazione della libreria. Ha scritto 20 file. Due erano vuoti: la pagina scansionata, che non ha testo leggibile, e una pagina con una tabella ruotata di 90 gradi. Per migliaia di file, lo stesso ciclo può girare in un pool di processi, uno per core della CPU, perché ogni file è indipendente. La nostra guida Python spiega le opzioni per tabelle e intervalli di pagine, e il nostro confronto tra librerie mostra come se la cava pymupdf4llm rispetto a due alternative.

Il comando per cartelle di marker

marker ha un comando per un'intera cartella: marker /path/to/pdfs --output_dir out. Legge solo il primo livello della cartella (lo script la elenca con os.listdir), quindi prima abbiamo copiato i file in una cartella piatta. Opzioni utili: --workers per processi in parallelo, --skip_existing per riprendere un'esecuzione interrotta e --max_files per una prova.

Con le impostazioni predefinite sulla nostra macchina senza GPU, la cartella ha richiesto 5 min 51 s nei nostri test, caricamento dei modelli compreso, e ha prodotto 20 output. È circa 66 volte il tempo del ciclo Python. Ha recuperato la tabella ruotata, ma scrivendola due volte, e nella nostra esecuzione ha comunque restituito un file vuoto per la pagina scansionata. Su una macchina con una GPU supportata il quadro cambia; su un portatile, usa marker solo per i file che ne hanno bisogno.

Nomi dei file, duplicati e struttura delle cartelle

Illustrazione: due cartelle con un file dallo stesso nome ciascuna, riunite in uno ZIP che conserva due file Markdown distinti
Due file, un solo nome: lo ZIP deve tenerli entrambi.
  • Duplicati: quando converti molti PDF insieme, decidi come gestire lo stesso nome di file in due cartelle. La nostra pagina in blocco aggiunge un numero; il ciclo qui sopra mantiene le sottocartelle; uno script ingenuo sovrascrive il primo file senza avvisare.
  • Struttura: se l'albero delle cartelle ha un significato (una cartella per cliente o per anno), mantienilo, con relative_to come sopra oppure usando la pagina in blocco una volta per cartella.
  • Nomi: tieni il nome base del PDF per il .md, così ritrovi sempre la fonte. Per nomi più leggibili, rinomina dopo nella tua app di note.
  • Uno ZIP di file Markdown è la consegna più semplice a un'altra persona; una cartella è meglio se l'output va in un altro script.

Controllo qualità: trovare output scansionati e vuoti

Quando converti più PDF in Markdown in un solo passaggio, è facile non accorgersi di problemi che un file singolo mostrerebbe subito. Ogni strumento del nostro test ha prodotto almeno un file vuoto o quasi vuoto, e nessuno può trasformare in testo una pagina illeggibile senza OCR. Dopo ogni esecuzione grande, quindi, cerca i file rimasti troppo corti:

# Markdown files under 100 bytes are usually scans or image-only pages
find markdown -name '*.md' -size -100c
Da eseguire nella cartella di output (o nello ZIP estratto).
Screenshot: elenco dei risultati del lotto con un avviso su un file che contiene solo un'immagine, sembra scansionato e non ha livello di testo
Screenshot: il file che è solo un'immagine è segnalato nell'elenco; il suo Markdown dice che non c'è testo estraibile.

Poi apri qualche output a caso e confrontalo con i PDF: i titoli, una tabella, l'ultimo paragrafo. Se i file andranno a un modello di chat, il nostro articolo sul miglior formato di documento per ChatGPT spiega perché questo controllo ripaga con un Markdown pulito.

I nostri tempi su 20 file

Gli stessi 20 PDF (40 pagine) con tre metodi, secondo i nostri test (19 ott. 2026, solo CPU)
MetodoTempoOutputOutput vuotiNomi duplicati
La nostra pagina in blocco (browser)0,8 s20scanned-sample.mdNumerati (notes, notes-2)
Ciclo Python, pymupdf4llm 1.28.25,3 s20rotated.md, scanned-sample.mdMantenuti nelle sottocartelle
Comando per cartelle di marker 2.0.05 min 51 s20scanned-sample.mdSolo cartella piatta (rinominati da noi)
Il tempo del browser va dalla scelta dei file allo ZIP pronto. I tempi di Python e marker includono l'avvio; per marker anche il caricamento dei modelli. Una sola macchina e un set piccolo: leggili come ordini di grandezza.

Per quasi tutti la conclusione è semplice: per convertire più PDF in Markdown in un colpo, comincia nel browser, scrivi uno script quando il lavoro si ripete e tieni lo strumento basato su modelli per le pagine che gli altri non sanno leggere.

Fonti

  1. PyMuPDF4LLM (README and licence) — Artifex, GitHub
  2. marker (README, licence and model licence) — Datalab, GitHub
  3. pathlib: Path.rglob — Python documentation
  4. find(1) — GNU findutils manual

Domande frequenti

Come converto più PDF in Markdown insieme?

Seleziona tutti i file in una pagina di conversione in blocco come la nostra e scarica lo ZIP, oppure fai girare un breve ciclo Python sulla cartella. Poi controlla che nessun output sia vuoto.

C'è un limite di file nella pagina in blocco?

Non c'è un numero fisso; il limite è la memoria del browser. Nei nostri test 20 file per 40 pagine hanno richiesto circa un secondo. Per centinaia di file grandi lavora a giri o usa uno script.

Che succede ai file con lo stesso nome?

La nostra pagina in blocco numera il secondo (notes.md, notes-2.md). In uno script decidi tu: mantenere le sottocartelle, aggiungere un suffisso o saltarlo.

Posso convertire in blocco PDF scansionati?

Non con uno strumento che legge il livello di testo: le scansioni escono vuote e il nostro strumento le segnala. Serve un passaggio OCR. marker nasce per questo, ma nella nostra esecuzione senza GPU ha dato un risultato vuoto per la pagina scansionata; prova un campione prima di un lavoro grande.

Posso convertire PDF in MD in blocco in modo pianificato?

Sì, con uno script. Metti il ciclo Python in un cron o in un'attività pianificata e aggiungi una logica tipo --skip_existing per convertire solo i file nuovi.

La pagina in blocco carica i miei file?

No. La conversione avviene nella scheda del browser e lo ZIP viene creato sul tuo dispositivo.