Ga naar hoofdinhoud

PDF's en Word-documenten lezen en bewerken met Python

In deze tutorial leer je PDF-documenten lezen en meerdere PDF-bestanden samenvoegen tot één PDF-bestand. Ook laat je zien hoe je Word-documenten vanuit Python leest en schrijft.
Bijgewerkt 2 okt 2026  · 8 min lezen

Verken met AI

ChatGPTClaudePerplexity

PDF-documenten

PDF is een Portable Document Format met tekst, afbeeldingen, grafieken, enzovoort, en verschilt daarmee van platte-tekstbestanden. Het is een bestand met de extensie '.pdf' en is uitgevonden door Adobe. Dit type bestand is onafhankelijk van platformen zoals software, hardware en besturingssystemen.

Stappen om het pakket te installeren:

  1. Je moet een pakket installeren met de naam "pypdf2" dat bestanden met de extensie '.pdf' kan verwerken. installatie pakket 1

  2. Je ziet hieronder dat het pakket 'pypdf2' is geïnstalleerd. installatie pakket 2

PDF-documenten lezen en data extraheren

Je haalt alleen de tekst uit het pdf-bestand, omdat PyPDF2 beperkingen heeft bij het extraheren van rijke mediacontent. Logo's, afbeeldingen, enz. kunnen er niet uit worden gehaald — download het volgende pdf-bestand om met deze tutorial te werken.
Pdf-bestand downloaden

pdf importeren

De 'import'-instructie in de bovenstaande code haalt de PyPDF2-module op. Je gebruikt 'open('pdfBestandsnaam' , 'openingsModus')' waarbij de 'pdfBestandsnaam' 'test.pdf' is en de 'openingsModus' 'rb' is, wat betekent: alleen lezen in binair formaat.

pdf openen

PyPDF2 heeft een methode 'PdfFileReader', die het zojuist gemaakte object 'pdfFileObject' meekrijgt. Je kunt nu de eigenschap 'numPages' van 'pdfFileObject' gebruiken, die het totale aantal pagina's geeft.

totaal aantal pagina's De bovenstaande output is 1. Je ziet dat het pdf-bestand slechts één pagina heeft.

eerste pagina Je kunt de methode 'getPage(0)' in 'pdfReaderObject' gebruiken om de eerste pagina op te halen. Het resultaat wordt vervolgens opgeslagen in 'firstPageObject', waarna alle tekst op die specifieke pagina kan worden afgedrukt met de methode 'extractText()'.

alle tekst De bovenstaande code geeft alle tekst uit het pdf-bestand. De afbeelding wordt echter niet in de terminal weergegeven; dat is niet mogelijk met pyPDF2.

Meerdere PDF-bestanden samenvoegen tot één PDF

Je gaat twee verschillende pdf-bestanden samenvoegen tot één pdf-bestand. Het oude PDF-bestand is het bestand waarmee je eerder hebt gewerkt; een nieuw PDF-bestand kun je downloaden via de volgende link:
Nieuw PDF-bestand.

nieuwe pdf

Je importeert de module PdfFileMerger uit het PyPDF2-pakket, die helpt om pdf-bestanden samen te voegen. Het 'pad' wordt opgegeven; dit geeft de maplocatie aan waar het bestand staat. Ook de samen te voegen pdf-bestanden worden in een lijst in 'pdf_files' opgenomen.

merger-object Je ziet dat het merger-object is gemaakt met 'PdfFileMerger'. Er wordt geloopt over elk bestand in de lijst, waarbij het samenvoegen gebeurt door het pad en bestand door te geven aan de 'append'-methode. Tot slot verkrijg je de uiteindelijke output met 'merger.write()', waarmee de samengevoegde inhoud onder een nieuwe PDF-bestandsnaam wordt weggeschreven.

samengevoegde pdf De bovenstaande afbeelding toont 'merged.pdf', dat bestaat uit de samengevoegde inhoud van 'test.pdf' en 'test-1.pdf'.

Word-documenten

Word-documenten hebben de extensie ".docx" aan het einde van de bestandsnaam. Deze documenten bevatten niet alleen tekst zoals platte-tekstbestanden, maar zijn rich-textdocumenten. Een rich-textdocument bevat verschillende structuren voor het document, zoals grootte, uitlijning, kleur, afbeeldingen, lettertype, enz.

Je hebt een applicatie nodig om met Word-documenten te werken. De bekende applicatie voor Windows- en Mac-besturingssystemen is Microsoft Word, maar dat is een betaald abonnement. Er is echter een gratis alternatief zoals "LibreOffice", een applicatie in Linux die vaak vooraf is geïnstalleerd. De applicaties kunnen worden gedownload voor Windows- en Mac-besturingssystemen. In deze tutorial gebruiken we Microsoft Word op Windows.

Stappen om het pakket te installeren

  1. Je moet een pakket installeren met de naam "python-docx" dat Word-documenten met de extensie '.docx' kan verwerken. python-docx pakket

  2. Je ziet hieronder dat het pakket 'python-docx' is geïnstalleerd. geïnstalleerd pakket

Je kunt meekoden in de interactieve shell van Python, maar het is aan te raden een teksteditor te gebruiken. Voor het codeerwerk in deze tutorial gebruiken we daarom Sublime Text.

Een Word-document schrijven

documentmodule geïmporteerd

Je ziet hierboven dat in de eerste regel de module 'document' uit het pakket 'docx' wordt geïmporteerd. De code op de tweede regel maakt een nieuw Word-document via het Document-object. De bestandsnaam wordt opgeslagen als 'first.docx' met 'document.save()'.

Een kop toevoegen

kop toevoegen

De bovenstaande code bevat 'Document()' om een nieuw bestand te openen en 'document.save('addHeader.docx')' om een nieuw bewerkt docx-bestand te maken. Je kunt een kop toevoegen met de methode 'add_heading('tekst', level=getal)', die de tekst als kop neemt en het kopniveau van 0 tot en met 4.

kopniveaus

De bovenstaande code levert een nieuw bestand 'addedHeader.docx' op, waarbij niveau 0 een kop is met een horizontale lijn onder de tekst, terwijl kopniveau 1 de hoofdkop is. Op dezelfde manier zijn de andere koppen subkoppen met afnemende lettergroottes.

Een alinea toevoegen

alinea toevoegen

De bovenstaande code bevat 'Document()' om een nieuw document te openen en 'document.save('addParagraph.docx')' om een nieuw bewerkt docx-bestand te maken. Je kunt een alinea toevoegen met de methode 'add_paragraph('tekst', style='vereiste_stijl')', die de tekst accepteert; 'style' is een optioneel argument, waarbij je 'List Number' en 'List Bullet' kunt gebruiken.

nieuw gemaakt bestand

De bovenstaande code levert een nieuw bestand 'addedParagraph.docx' op, met eerst een eenvoudige alinea. Daarna staat er een kop, en daaronder een geordende lijst met de items 1 en 2. Daaronder staat nog een kop met twee items in een ongeordende lijst met opsommingstekens.

Een afbeelding toevoegen

afbeelding toevoegen

De bovenstaande code bevat 'Document()', waarmee een nieuw document wordt gemaakt, en 'document.save('addPicture.docx')' om een nieuw bewerkt docx-bestand te maken. Je kunt de afbeelding toevoegen met 'add_picture()', waarbij de eerste parameter 'cat-1.jpeg' het pad naar de kattenafbeelding is. Breedte en hoogte zijn optionele parameters die standaard '72 dp' zijn, maar we hebben 'Inches' gebruikt voor ons doel.

toegevoegde afbeelding

De bovenstaande code levert een nieuw bestand 'addedPicture.docx' op, dat een kattenafbeelding bevat met een breedte en hoogte van 1,25 inch.

Een Word-document lezen

Je gaat nu een voorbeeld-Word-document lezen met Python; je vindt het hier:
Voorbeeld downloaden.

word-document lezen

De eerste regel in de code importeert 'Document' uit de 'docx'-module, die wordt gebruikt om het vereiste documentbestand door te geven en een object te maken. 'obtainText' is een functie die het bestand 'fullText.docx' ontvangt. Er wordt geloopt over elke alinea, toegankelijk via 'document.paragraphs', en die wordt met de methode 'append' aan een lege lijst toegevoegd. Uiteindelijk retourneert de functie een lijst met alinea's, elk eindigend met een nieuwe regel.

platte tekst

De bovenstaande output geeft de platte tekst zonder stijl, kleur, enz.; het is geen rich-textdocument.

Gefeliciteerd

Gefeliciteerd, je bent klaar met deze tutorial.

Wil je meer leren over data importeren in Python? Volg dan DataCamp's cursus Introduction to Importing Data in Python.

Bekijk ook onze Python Data Structures Tutorial.

Je kunt ook de volgende bronnen bekijken om je kennis over specifieke onderwerpen te verdiepen.

  1. Documentatie van Python Docx
  2. Documentatie van PyPDF2

Referenties:
Automate Boring Stuff With Python: Working with Word Documents

Onderwerpen
Python

Leer meer over Python

Cursus

Introductie tot data importeren in Python

3 uur
342.1K
Leer hoe je gegevens in Python importeert vanuit verschillende bronnen, zoals Excel, SQL, SAS en direct vanaf het web.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken