PDF-tabellen naar Markdown-tabellen converteren

Door pdftomd.tools-team · Bijgewerkt op · 8 min leestijd

Om PDF-tabellen naar Markdown te converteren, gebruik je een converter die de cellen opbouwt uit de tekstlaag, en vergelijk je het resultaat daarna met de pagina. Rasters met lijnen en netjes uitgelijnde kolommen gaan goed; samengevoegde cellen, gedraaide tabellen en tabellen over meerdere pagina's vragen handwerk. Onze online PDF naar MD converter schrijft GFM-tabellen met verticale strepen die je meteen kunt bewerken.

Illustratie: PDF-tabellen naar Markdown converteren, een tabel met lijnen op een PDF-pagina wordt een tabel met verticale strepen in platte tekst

Waarom PDF-tabellen breken: een PDF bewaart geplaatste tekst, geen cellen

Voordat je PDF-tabellen naar Markdown converteert, helpt het om te weten wat het bestand echt bevat. Een spreadsheet weet dat ‘12 $’ in rij 3, kolom 2 staat. Een PDF meestal niet. De pagina bevat stukjes tekst op x- en y-posities en losse lijntekeningen voor eventuele randen, zoals de PDF-norm ISO 32000-2 beschrijft. Getagde PDF's kunnen de tabelstructuur meedragen, maar de meeste geëxporteerde rapporten en facturen hebben geen tags, of tags waar een converter niet op kan bouwen.

Illustratie: losse woorden op een pagina met positielijnen worden gegroepeerd tot een net raster van cellen
Een converter moet het raster afleiden: links woorden met posities, rechts cellen.

Elke tool die PDF-tabellen naar Markdown wil converteren, doet dus speurwerk. Hij leest de woorden en hun posities (wij gebruiken daarvoor pdf.js), zoekt naar lijnen en beslist dan waar kolommen en rijen liggen. Bij samengevoegde cellen, onregelmatig doorlopende tekst of een tabel die op zijn kant staat, wordt het raden lastiger.

Wat een Markdown-tabel kan uitdrukken (GFM-tabellen met verticale strepen)

Kale Markdown kent geen tabellen. De gangbare syntaxis komt uit GitHub Flavored Markdown: een GFM-tabel heeft een kopregel, een scheidingsregel van streepjes en zoveel dataregels als nodig. Dubbele punten in de scheidingsregel bepalen links, rechts of gecentreerd uitlijnen. Een verticale streep in een cel schrijf je als \|.

| Plan     | Price | Seats     |
| :------- | ----: | :-------- |
| Free     |    $0 | 1         |
| Team     |   $12 | 10        |
| Business |   $49 | Unlimited |
Een GFM-tabel: kopregel, scheidingsregel met uitlijning, dataregels.
“Blokelementen kunnen niet in een tabel worden opgenomen.”
GitHub Flavored Markdown Spec, Paragraaf 4.10, Tables (extension) (vertaald)

Die regel bepaalt de grens van elke conversie. Een cel kan inline tekst, links en code bevatten, maar geen lijst, geen tweede alinea en geen geneste tabel. Er is ook geen syntaxis voor samengevoegde cellen, een tweede kopregel of een bijschrift. Alles wat verder gaat dan één kopregel en een eenvoudig raster, moet je vereenvoudigen.

Tabellen met lijnen, zonder lijnen en met samengevoegde cellen: wat je kunt verwachten

Illustratie: drie tabelstijlen naast elkaar, een raster met lijnen, een tabel zonder lijnen en een raster met een samengevoegde cel

Of een tabel lijnen heeft of niet, bepaalt hoe een tool de cellen vindt. De onze probeert twee strategieën:

  • Tabellen met lijnen hebben getekende lijnen tussen de cellen. Die lijnen vormen een raster, dus rijen en kolommen volgen direct uit de tekening. Ze zijn het betrouwbaarst om te converteren.
  • Tabellen zonder lijnen hebben alleen tekst in uitgelijnde kolommen. De converter zoekt minstens drie rijen waarvan de tussenruimtes op elkaar vallen, en beschermt zich tegen lijsten, tekst in twee kolommen en toevallig uitgelijnde alinea's.
  • Samengevoegde cellen beslaan twee of meer kolommen. De tekst komt in de eerste cel en de overspannen cellen blijven leeg, omdat Markdown geen samenvoeging kan weergeven.

Tekst die binnen een cel doorloopt, is de andere veelvoorkomende valkuil. Een cel met drie regels tekst is nog steeds één cel; een slordige converter maakt er drie rijen van. De onze plakt die regels weer samen tot één cel, zowel bij bovenaan uitgelijnde als bij verticaal gecentreerde cellen.

Stap voor stap: PDF-tabellen naar Markdown converteren in de browser

  1. Open de converter en sleep het bestand erin. Er wordt niets geüpload; de pagina leest het lokaal en begint meteen met converteren.
  2. Bekijk de samenvatting onder het voorbeeld. Die meldt hoeveel tabellen er gevonden zijn, zodat je meteen ziet als er een ontbreekt.
  3. Vergelijk elke Markdown-tabel met het origineel. Tel eerst de kolommen en controleer daarna de eerste en de laatste rij.
  4. Kopieer de Markdown of download het .md-bestand en herstel de rest in je editor.
Screenshot: onze converter maakt van een PDF-tabel uit een kantoorpakket een Markdown-tabel, de verticale streep in een cel is geëscapet
Screenshot: een tabel geëxporteerd uit een kantoorpakket. De cel ‘Pen | blue’ wordt Pen \| blue, dus de tabel blijft geldig.

Stap 3 slaan de meeste mensen over. Een tabel kan er op het eerste gezicht goed uitzien en toch een rij hebben die één kolom naar links is verschoven. Onze algemene gids om te converteren zonder opmaak te verliezen beschrijft de controles voor de rest van de pagina.

Een tabel met de hand herstellen (en CSV als uitweg)

Dit zijn de correcties die we het vaakst doen nadat we PDF-tabellen naar Markdown converteren:

  • Samengevoegde cellen. Markdown kent geen samenvoeging; herhaal de waarde dus in elke overspannen cel, of laat hem in de eerste cel staan en zet een notitie onder de tabel.
  • Een tabel die over pagina's is gesplitst. Verwijder de extra kop- en scheidingsregels, zodat de stukken weer één tabel vormen. In onze test hieronder bleef elke rij heel bij de splitsing; alleen de naden vroegen werk.
  • Een ontbrekende kopregel. Bevat de eerste rij al data, voeg dan zelf een kopregel toe. Een tabel met verticale strepen zonder kopregel is niet geldig.
  • Ongelijke kolommen. Tel de verticale strepen in elke rij. Een rij met minder cellen vullen GFM-renderers aan met lege cellen; een rij met meer wordt afgekapt.
Screenshot: een tabel met een samengevoegde cel omgezet naar Markdown, de samengevoegde tekst in de eerste cel gevolgd door een lege cel
Screenshot: ‘Not reported’ beslaat in de PDF twee kolommen. In Markdown staat het in de eerste cel, gevolgd door een lege.

Is een tabel te breed of te onregelmatig voor de syntaxis met verticale strepen, dan is CSV een goede uitweg. Kopieer de rijen naar een spreadsheet, maak ze daar schoon en bewaar de CSV naast het Markdown-bestand, of plak een vereenvoudigde tabel terug. De conversie hoeft niet alles of niets te zijn.

Onze testset: 12 tabelopmaken en de resultaten

Om te controleren hoe wij PDF-tabellen naar Markdown converteren, onderhouden we een set van 12 test-PDF's, gemaakt met reportlab en LibreOffice, die de opmaken hierboven dekt plus drie bestanden die geen tabel mogen opleveren. Elke wijziging aan de converter gaat erdoorheen. Het zijn synthetische testbestanden, geen steekproef van echte PDF's; lees de resultaten dus als een kaart van wat elke opmaak doet, niet als slagingspercentage.

In onze tests: verwachte en gevonden tabellen per opmaak (team van pdftomd.tools, 18 okt 2026)
OpmaakVerwachtGevondenResultaat
Raster met lijnen11Geslaagd
Raster met lijnen uit een kantoorpakket, verticale streep in een cel11Geslaagd
Zonder lijnen, getallen rechts uitgelijnd11Geslaagd
Met lijnen, tekst loopt door in een cel11Geslaagd
Zonder lijnen, tekst loopt door in een cel11Geslaagd
Zonder lijnen, doorlopende cel verticaal gecentreerd11Geslaagd
Alleen een lijn onder de kopregel, tussen lopende tekst en een lijst11Geslaagd
Een tabel met en een tabel zonder lijnen op één pagina22Geslaagd
Met lijnen, één cel samengevoegd over twee kolommen11Geslaagd (samengevoegde cel uitgesplitst)
Tekst in twee kolommen (mag geen tabel opleveren)00Geslaagd
Alinea's en een genummerde lijst (mag geen tabel opleveren)00Geslaagd
Tabel 90 graden gedraaid00Geslaagd
De gedraaide tabel is een bekende grens: 90 graden gedraaide tekst wordt niet als tabel herkend.

Voor dit artikel deden we nog twee tests. Eerst een heen-en-terugtest: vier Markdown-tabellen, met onze eigen exporter naar PDF geëxporteerd en weer teruggezet. Alle vier werden herkend, en 17 van de 17 rijen kwamen overeen met de oorspronkelijke tekst, inclusief een geëscapete verticale streep en rechts uitgelijnde getallen. Daarna een tabel van 60 rijen die onze exporter over vier pagina's verdeelde. Teruggezet leverde die vier tabellen op, één per pagina, met alle 60 rijen; op pagina twee tot en met vier werd de eerste rij de kopregel, precies de naad die hierboven beschreven staat.

Wanneer je in plaats daarvan een layoutmodel nodig hebt

Een tool voor de tekstlaag kan PDF-tabellen naar Markdown converteren, snel en privé, maar sommige tabellen gaan zijn kunnen te boven. Gescande tabellen hebben geen leesbare tekst tot OCR die toevoegt. Dichte wetenschappelijke tabellen met geneste kopregels en overspannende cellen hebben een model nodig dat de pagina als afbeelding ziet.

  • Docling beschrijft ondersteuning voor tabelstructuur en leesvolgorde en draait lokaal in Python.
  • marker formatteert tabellen en kan volgens de eigen documentatie met de optionele LLM-modus tabellen over pagina's heen samenvoegen. Controleer de licentie van de modelgewichten voor commercieel gebruik.

Beide vragen meer installatie en nog steeds de controlestap. Heb je een paar tabellen per week, laat je PDF-tabellen naar Markdown converteren in de browser, herstel de naden met de hand en bewaar de zware tools voor de bestanden die ze echt nodig hebben.

Veelgestelde vragen

Kun je PDF-tabellen automatisch naar Markdown converteren?

Ja, bij tabellen die als tekst zijn opgeslagen. Rasters met lijnen en netjes uitgelijnde tabellen zonder lijnen gaan goed met een converter voor de tekstlaag. Gescande tabellen hebben eerst OCR nodig, en samengevoegde cellen of gedraaide tabellen vragen handmatige correctie.

Hoe worden samengevoegde cellen in Markdown verwerkt?

Markdown-tabellen met verticale strepen kunnen geen cellen samenvoegen. Een converter zet de tekst in de eerste cel en laat de overspannen cellen leeg. Herhaal de waarde in elke cel of zet een notitie onder de tabel.

Waarom is mijn tabel in meerdere tabellen gesplitst?

Elke PDF-pagina wordt apart gelezen, dus een tabel over meerdere pagina's komt terug als één tabel per pagina. Verwijder de extra kop- en scheidingsregels om ze samen te voegen; dat is bij lange rapporten de meest voorkomende correctie.

Kan een cel in een Markdown-tabel een lijst of een regeleinde bevatten?

In GFM niet. Blokinhoud is in een cel niet toegestaan. Schrijf lijstpunten op één regel met komma's, of gebruik <br> waar de renderer HTML toestaat.

Wat is de snelste manier om PDF-tabellen naar Markdown te converteren?

Voor een paar bestanden: converteren in de browser en het resultaat met de hand corrigeren. Voor honderden gescande of complexe bestanden kan een lokaal layoutmodel zoals Docling de extra installatie waard zijn.

Wat als mijn tabel te breed is voor Markdown?

Markdown heeft geen breedtelimiet, maar brede tabellen zijn lastig te lezen en te bewerken. Splits de tabel in twee met een gedeelde sleutelkolom, of houd de gegevens als CSV en link ernaar.