ID.nl logo
Zo kun je programmeren in Python - Deel 6
© Reshift Digital
Huis

Zo kun je programmeren in Python - Deel 6

In de href="https://computertotaal.nl/artikelen/pc/zo-kun-je-programmeren-in-python-deel-5/" rel="noopener noreferrer" target="_blank">vorige les</a> leerde je met bestanden werken en zag je hoe je je programma kunt laten reageren op exceptions. Zo beginnen je programma’s ondertussen al vrij complex te worden. Tijd dus om wat structuur in je programma’s te brengen, en dat doen we in deze les met functies en modules. We bekijken ook enkele standaardmodules van Python.

Wil je meer leren over programmeren? Bekijk dan onze Cursus: programmeren in Phyton (boek & online cursus).

Tot nu toe waren onze Python-programma’s vrij kort, maar je hebt ondertussen al genoeg Python-bagage om zelf al eens aan de slag te gaan en je eigen ideeën uit te werken in programma’s. En dan merk je al snel dat je programma lang en ondoorzichtig wordt. Gelukkig kent Python verschillende manieren om wat meer structuur in je programma’s te brengen.

De eerste manier ben je al tegengekomen: functies. We hebben immers in de vorige lessen al diverse standaardfuncties van Python gebruikt, zoals len, print, input, format, split, open, read en write. Een functie is een afzonderlijk stukje code dat een afgebakende taak uitvoert die je meerdere keren zou willen uitvoeren op verschillende gegevens. Zodra je in je programma dus merkt dat je een stukje code telkens aan het herhalen bent, zou je eerste gedachte moeten zijn: ik maak er een functie van!

Een functie definiëren

We tonen je als voorbeeld hoe je een functie maakt om te berekenen of een woord een palindroom is. Een palindroom of spiegelwoord is een woord dat van achteren naar voren gelezen hetzelfde is als van voor naar achter. Een eenvoudige functie om te bepalen of een woord een palindroom is, ziet er als volgt uit:

def is_palindroom(woord):letters = list(woord)palindroom = Truewhile len(letters) > 0 and palindroom:if letters[0] != letters[-1]:palindroom = Falseelse:letters.pop(0)if len(letters) > 0:letters.pop()return palindroom

Dit is niet de efficiëntste manier om te bepalen of een woord een palindroom is, maar wel een die goed te begrijpen is. Je ziet dat er in de definitie van deze functie eigenlijk maar twee zaken nieuw zijn: de eerste en de laatste regel. In de eerste regel geven we met def is_palindroom(woord): aan dat we een functie definiëren met de naam is_palindroom en dat die één parameter meekrijgt, die we woord noemen. Dan komt onze hele berekening, die je met al je kennis uit de vorige lessen na een kleine studie zou moeten begrijpen, en op het einde geven we met return palindroom aan dat we de waarde die na onze berekening in de variabele palindroom zit teruggeven.

Een functie aanroepen

Breek je hoofd nog even niet over de inhoud van de functie. Typ de code in Thonny in en sla het bestand op onder de naam palindroom.py. Voer het dan uit met een druk op F5. Er gebeurt niets, maar de functie is nu gedefinieerd. In de terminal onderaan Thonny kun je nu de functie aanroepen. Enkele voorbeelden:

>>> is_palindroom('nepalapen')True>>> is_palindroom('napalm')False>>> is_palindroom('koortsmeetsysteemstrook')True

Denk nu eens even na over wat er gebeurt als je is_palindroom('nepalapen') aanroept. De functie is_palindroom wordt dan uitgevoerd en aan de variabele woord van de functie wordt de string 'nepalapen' toegekend. Dan gebeurt die hele berekening, en geeft de functie als resultaat True of False. En voor elke andere string die je aan de functie doorgeeft, gebeurt de berekening op dezelfde manier. Op deze manier heb je de berekening ingekapseld in een afzonderlijk stukje code, de functie, die herbruikbaar is.

Overigens zijn door die inkapseling de parameter woord net zoals de variabelen letters en palindroom alleen binnen het blok van de functie gedefinieerd: het zijn wat we noemen lokale variabelen.

Recursieve functies

In onze functie is_palindroom gaan we met een while-lus alle letters in het woord af. Een andere manier om de functie te definiëren is met recursie: in de functie roepen we de functie opnieuw aan, maar op een deel van het woord. Dat ziet er als volgt uit:

def is_palindroom2(woord):if len(woord) < 2:return Trueif woord[0] != woord[-1]:return Falsereturn is_palindroom2(woord[1:-1])

Voeg deze functie in Thonny gewoon aan hetzelfde bestand toe als is_palindroom, sla het bestand op en druk op F5 om het uit te voeren. Je kunt nu deze functie is_palindroom2 uitproberen op enkele woorden. Het resultaat moet telkens hetzelfde zijn als is_palindroom op hetzelfde woord.

De functie is_palindroom2 is een mooi voorbeeld van een recursieve functie. We bekijken eerst of het woord minder dan twee letters bevat. In dat geval (het woord is leeg of heeft één letter) is het altijd een palindroom en daarom geven we in dat geval True terug. Daarna controleren we of de eerste letter verschilt van de laatste letter van het woord. Verschillen die, dan is het woord al zeker geen palindroom en geven we dus False terug.

Dan blijft er nog één geval over: de eerste en laatste letter van het woord zijn gelijk, maar van de andere letters weten we nog niets. Wat doen we dan? We roepen de functie is_palindroom2 opnieuw op, maar op die andere letters. Die verkrijgen we door de slice (zie les 2) [1:-1] op het woord toe te passen, die het woord zonder de eerste en laatste letter teruggeeft.

Belangrijk bij recursieve functies

Als je een recursieve functie schrijft, is het belangrijk dat je de functie telkens oproept op een kleinere invoer dan waarmee je begon, zodat je uiteindelijk bij een basistest uitkomt, zoals in ons geval if len(woord) < 2: en if woord[0] != woord[-1]:. In beide gevallen roepen we de functie is_palindroom2 niet meer aan, maar geven we een waarde True of False terug. Doordat we in het derde geval altijd de eerste en de laatste letter van het woord verwijderen voor we de functie opnieuw oproepen, verzekeren we dat de functie uiteindelijk altijd bij een van de basistests uitkomt.

Met modules werken

Zonder dat je het weet, heb je nu al je eerste module geschreven. Elk Python-bestand waarin je code schrijft, is immers een module voor Python. Maak nu een nieuw Python-bestand aan in Thonny en noem het bijvoorbeeld test_palindroom.py. Als je in dit bestand de code uit palindroom.py wilt gebruiken, moet je de module palindroom importeren. Dat gaat als volgt:

import palindroom

print(palindroom.is_palindroom("nepalapen"))

Met import palindroom zeggen we aan de Python-interpreter dat we toegang willen tot alle code in de module palindroom. Python zoekt dan naar bestanden met de naam palindroom.py in zijn zoekpad. Omdat de code test_palindroom.py in dezelfde directory staat als palindroom.py, vindt Python de module en zijn de functies is_palindroom en is_palindroom2 daarin beschikbaar onder de namen palindroom.is_palindroom en palindroom.is_palindroom2.

In dit geval is het niet zo handig dat je voor elke functie uit de module palindroom de aanduiding palindroom. dient te zetten, omdat dit nogal lang is. We kunnen de naam van een module die we gebruiken gelukkig ook afkorten:

import palindroom as pal

print(pal.is_palindroom("nepalapen"))

Het is ook mogelijk om het voorvoegsel voor de module volledig weg te laten door de specifieke functies die we willen gebruiken te importeren:

from palindroom import is_palindroom

print(is_palindroom("nepalapen"))

Dat kan ook met meerdere functies:

from palindroom import is_palindroom, is_palindroom2

print(is_palindroom("nepalapen"))

print(is_palindroom2("parterretrap"))

Zodra je Python-code wat langer wordt, is het aan te raden om ze in modules op te splitsen. Een goede vuistregel is dat elke module code voor één specifiek doel moet bevatten. In ons geval bevat de module bijvoorbeeld alle mogelijke code die met palindromen te maken heeft. Als we daarnaast ook code voor anagrammen zouden willen toevoegen, doe je dat het best in een afzonderlijke module, anagram.py.

Systeeminformatie

Python zelf bestaat ook uit een heleboel standaardmodules waarin allerlei handige functies zitten. Zo is er de module platform om informatie over het platform waarop je Python-programma draait op te vragen:

>>> import platform>>> platform.architecture()('64bit', 'ELF')>>> platform.platform()'Linux-4.15.0-33-generic-x86_64-with-Ubuntu-18.04-bionic'>>> platform.processor()'x86_64'>>> platform.python_version()'3.6.7'>>> platform.system()'Linux'

Verder bevat de standaardmodule os allerlei functies die met het besturingssysteem te maken hebben. Zo kun je een lijst opvragen van de bestanden in de huidige directory:

>>> import os>>> os.listdir()['palindroom.py', 'test_palindroom.py']

Werken met getallen

Als je met getallen wilt werken, komt de module math goed van pas. Die bevat allerlei functies voor berekeningen, zoals je in het volgende voorbeeld ziet:

>>> import math>>> math.floor(4.3)4>>> math.ceil(4.3)5>>> math.gcd(28, 12)4>>> math.sqrt(2)1.4142135623730951>>> math.e2.718281828459045>>> math.pi3.141592653589793>>> math.sin(2*math.pi)-2.4492935982947064e-16

In de laatste regel zie je al een nadeel van berekeningen met floats: door afrondingsfouten geeft de berekening van de sinus van 2 keer pi een heel klein getal (-2 en nog iets maal 10 tot de -16de macht) in plaats van het juiste resultaat 0.

Een andere nuttige module is random, waarmee je willekeurige getallen kunt genereren:

>>> import random>>> random.randint(1, 10)7>>> random.choice(['lies', 'jan', 'kees', 'mireille', 'koen', 'rob'])'rob'>>> namen = ['lies', 'jan', 'kees', 'mireille', 'koen', 'rob']>>> random.shuffle(namen)>>> namen['jan', 'rob', 'koen', 'mireille', 'lies', 'kees']

Zo geeft de functie randint(a, b) een willekeurig geheel getal tussen a en b terug (a en b inbegrepen). Met choice kies je een willekeurig element uit een lijst. En met shuffle schud je een lijst willekeurig door elkaar.

Samenvatting

In deze les heb je geleerd om je Python-code wat meer te structureren. Enerzijds heb je berekeningen die je vaak herhaalt in functies leren opnemen. Anderzijds heb je geleerd hoe je functies die bij elkaar horen kunt afscheiden in een afzonderlijke module. We hebben tot slot ook met enkele standaardmodules van Python kennisgemaakt. In de volgende les gaan we op de structuur van datatypes in: we tonen je hoe je zelf eigen datatypes kunt definiëren in de vorm van klassen.

Opdracht

Open de module palindroom.py in Thonny en voer ze uit met een druk op F5. Voer in de terminal onderaan de volgende opdrachten in: *>>> is_palindroom('parterretrap')True>>> woord**Traceback (most recent call last):**File "

Uitwerking

De parameter woord in de functie is een lokale variabele: die is alleen binnen het blok van de functie gedefinieerd. Als je de functie met het argument 'parterretrap' oproept, wordt die string in de functie aan de lokale variabele woord toegekend, maar na het uitvoeren van de functie is die variabele niet meer beschikbaar en geeft Python dus met een NameError aan dat het de naam woord niet kent.

Cheatsheet

Functie: een afzonderlijk stukje code dat je meerdere keren uitvoert. Importeren: aangeven dat je een module wilt gebruiken. Lokale variabele: een variabele die alleen binnen een specifiek blok (bijvoorbeeld van een functie) gedefinieerd is. Module: een afzonderlijk bestand met Python-code. Recursieve functie: een functie die zichzelf aanroept.

▼ Volgende artikel
Wat is wifi 6(E) eigenlijk en merk je echt verschil?
© A Stockphoto
Huis

Wat is wifi 6(E) eigenlijk en merk je echt verschil?

Heb je last van haperende streams of traag internet wanneer iedereen thuis tegelijk online is? Wifi 6 belooft dé oplossing te zijn voor overvolle netwerken en betere prestaties. Maar wat is deze nieuwe standaard precies en merk je in de praktijk echt verschil? We duiken in de voordelen van wifi 6 en de supersnelle wifi 6E-variant. Lees snel verder en ontdek of een upgrade voor jouw situatie de investering waard is.

Ben jij ook klaar met haperende videocalls of films die precies op het spannendste moment beginnen te bufferen omdat iedereen in huis tegelijk online is? Dan wordt het hoog tijd om kennis te maken met wifi 6, dat korte metten maakt met overbelaste netwerken. Maar is deze technologie echt een revolutie voor je dagelijkse internetgebruik of merk je in de praktijk eigenlijk weinig van die veelbelovende specificaties? In dit artikel duiken we dieper in de wereld van wifi 6 en zijn nog krachtiger broertje wifi 6E. We leggen helder uit wat de technische verschillen zijn en helpen je bepalen of een overstap voor jouw huishouden de investering waard is, zodat jij precies weet of je klaar bent voor de toekomst van razendsnel en stabiel draadloos internet.

Tijd voor een nieuwe wifi 6-router? Kijk snel op Kieskeurig.nl!

Efficiëntie is het hoofddoel

Wifi 6 is de huidige standaard voor draadloos internet, technisch ook wel bekend als 802.11ax. Waar voorgaande upgrades zich voornamelijk richtten op het verhogen van de maximale topsnelheid per apparaat, gooit wifi 6 het over een andere boeg. Het hoofddoel van deze technologie is niet alleen snelheid, maar vooral efficiëntie en capaciteit. Je kunt het vergelijken met een verbreding van de snelweg: je mag misschien niet veel harder rijden, maar doordat er meer rijbanen zijn en het verkeer slimmer wordt geregeld, sta je nooit meer in de file, zelfs niet tijdens de spits.

Het antwoord op de vraag of je het verschil echt merkt, hangt sterk af van je thuissituatie. Als je alleen woont en slechts één laptop en een telefoon gebruikt, zal de sprong van wifi 5 naar wifi 6 wellicht aanvoelen als een kleine, nauwelijks merkbare verbetering. Het echte verschil wordt pas duidelijk in een huishouden vol slimme apparaten. Wifi 6 excelleert namelijk in omgevingen waar meerdere mensen tegelijkertijd streamen, gamen en videobellen, terwijl op de achtergrond slimme thermostaten en deurbellen ook verbinding zoeken. De router kan met wifi 6 gelijktijdig data naar meerdere apparaten sturen in plaats van snel tussen alle apparaten te moeten wisselen, wat zorgt voor een stabielere verbinding zonder haperingen. Daarnaast communiceren wifi 6-routers efficiënter met je apparaten over wanneer ze moeten 'slapen' en 'wakker worden', wat een positief effect heeft op de batterijduur van je smartphone en laptop.

©YurolaitsAlbert

Snel over de VIP-strook

Om het plaatje compleet te maken is er ook nog wifi 6E. Dat is een uitbreiding van de wifi 6-standaard die gebruikmaakt van een volledig nieuwe frequentieband: 6 GHz. De traditionele 2,4GHz- en 5GHz-banden die we al jaren gebruiken, zitten inmiddels overvol met signalen van de buren, magnetrons en babyfoons. Wifi 6E opent als het ware een exclusieve VIP-strook waar alleen de allernieuwste apparaten gebruik van mogen maken. Hierdoor heb je geen last van interferentie en haal je extreem hoge snelheden met een zeer lage vertraging. Dat is echter alleen relevant als zowel je router als je ontvangende apparatuur (zoals je nieuwste smartphone) wifi 6E ondersteunen.

Al met al is de overstap naar wifi 6 of 6E zeker de moeite waard als je toe bent aan een nieuwe router en in een druk huishouden woont of in een appartementencomplex waar veel signalen door elkaar lopen. Je zult het verschil vooral merken in de stabiliteit van de verbinding wanneer iedereen thuis tegelijk online is. Voor wie weinig apparaten heeft en tevreden is met de huidige snelheid, is een directe upgrade minder noodzakelijk, al is het wel de standaard voor de toekomst.

🎯 Populairste merken routers in NL

TP-Link |  Netgear | Ubiquity AVM Fritz! | ASUS

Wi-Fi 6-routers worden op Kieskeurig.nl steeds populairder, vooral vanwege hun veel hogere snelheid, betere stabiliteit en het vermogen om veel apparaten tegelijk te verbinden zonder snelheidverlies. Merken als AVM (met de FRITZ!Box-serie), TP-Link (o.a. Deco en Archer), en Linksys (Velop) scoren daarbij hoog.

Aanraders per merk

AVM FRITZ!Box 5590 Fiber AON
Krachtige glasvezelrouter met 4×4 Wi-Fi 6, 2,5G-poort en uitgebreide mesh- en telefoniefuncties. Geschikt voor hoge snelheden via AON of XGS-PON. Reviewscore op Kieskeurig.nl: 9,5.

AVM FRITZ!Box 6690 Cable

High-end kabelrouter met ingebouwde DOCSIS-3.1-modem, 4×4 Wi-Fi 6 en een 2,5G-poort voor extra hoge snelheden. Ondersteunt DECT-smart-home, mesh en uitgebreide netwerkfuncties. Reviewscore op Kieskeurig.nl: 9,0.

TP-Link Deco X60 3-Pack

Mesh-systeem voor stabiele dekking door het hele huis met Wi-Fi 6-snelheden tot 2402 Mbit/s op 5 GHz. Inclusief WPA3-beveiliging en ouderlijk toezicht. Reviewscore op Kieskeurig.nl: 9,3.

Linksys Velop Pro 6E 2-Pack

Tri-band mesh-systeem met een snelle 6 GHz-band voor 4K/8K-streaming en lage latency, geschikt voor grotere woningen. Ondersteunt WPA3 en slimme netwerkoptimalisatie. Reviewscore op Kieskeurig.nl: 8,6.

TP-Link Archer AX73

Zeer snelle dual-band Wi-Fi 6-router met 5400 Mbit/s totale bandbreedte en sterke beveiliging (WPA3). Met vier gigabit-poorten en USB-aansluiting ideaal voor veeleisende huishoudens. Reviewscore op Kieskeurig.nl: 10,0.

🔟 Over de reviewscores op Kieskeurig.nlOp Kieskeurig.nl schrijven consumenten reviews over producten. Elke review moet voldoen aan kwaliteitscriteria: de reviewer moet aangeven of het product gekocht, gekregen of getest is, er mag geen misleidende taal in staan en de inhoud moet betrouwbaar zijn. Zo worden nep- of spamreacties tegengegaan. Bij de beoordeling zie je niet alleen het gemiddelde cijfer, maar ook hoeveel reviews er zijn. Zo krijg je meteen een indruk of de score op basis van één enkele review is of op basis van veel gebruikerservaringen.

▼ Volgende artikel
Online samenwerken in LibreOffice versie 25.8
© monticellllo
Huis

Online samenwerken in LibreOffice versie 25.8

De opensource kantoorsuite LibreOffice blaast 40 kaarsjes uit en viert dat met een sprong voorwaarts. Welke vernieuwingen vallen ons op in de recente versie en hoe maken ze de onderlinge samenwerking tussen gebruikers makkelijker?

LibreOffice kent een lange geschiedenis in verschillende vormen die teruggaat tot 1985. Toen verscheen het eerste programma onder de naam StarWriter. Vijftien jaar later belandde de suite bij de open-sourcegemeenschap en werd ondergebracht bij The Document Foundation, die het pakket de naam gaf waaronder we het nu kennen. Het is sindsdien uitgegroeid tot een volwaardig, gratis alternatief voor Microsoft Office. Ook de nieuwste versie blijft trouw aan de klassieke reeks toepassingen, al zijn die verder verfijnd en nauwer met elkaar geïntegreerd. LibreOffice 25.8 is beschikbaar op www.libreoffice.org/download.

De suite bestaat uit zes kernprogramma’s. Writer voor tekstverwerking, Calc als spreadsheet-programma, Impress is presentatiesoftware vergelijkbaar met PowerPoint, Draw is een vectorgebaseerde tekenapplicatie, Base gebruik je voor databases en ten slotte is er de formule-editor Math. Naast deze zes is er nog de component Chart om grafieken te maken binnen Calc, Writer en Impress. Bovendien heeft LibreOffice een bibliotheek met extra functies, sjablonen en steeds vaker ook AI-tools. Op de mogelijkheden van die kernprogramma’s zijn we al dieper ingegaan in een eerder artikel Aan de slag met LibreOffice. Hier bespreken we wat nieuw is en onderzoeken we de mogelijkheden van onderling samenwerken.

Aanpasbare interface

Wanneer je voor het eerst een applicatie opent, toont LibreOffice hoe je de interface kunt aanpassen. Wil je de standaardwerkbalk of wil je tabbladen? Daarnaast kun je kiezen voor een enkelvoudige werkbalk, voor compacte tabbladen, voor de zijbalk en meer. Telkens beslis je of je de gekozen interface alleen op het huidige programma wilt toepassen of op alle programma’s van LibreOffice.

De werkomgeving met tabbladen lijkt het meest op wat we van Microsoft Office gewend zijn.

Uiterlijk aanpassen

Met Extra / Opties / LibreOffice zet je de weergave van LibreOffice op licht, donker of de systeeminstelling. In hetzelfde venster bepaal je de kleuren waarmee spelfouten, tabelgrenzen, niet-afdrukbare tekens in Writer, de documentachtergrond en alle speciale markeeritems worden weergegeven. Door op het pictogram van het puzzelstukje te klikken bij Uiterlijk / LibreOffice-thema kom je bij de thema’s voor deze suite. Als je op de knop Internetpagina klikt, zie je telkens hoe ieder thema in de verschillende basisprogramma’s van LibreOffice eruitziet. Daarbij lees je welke versie van LibreOffice vereist is om het gekozen thema toe te passen. Gebruik de knop Installeren om het gekozen thema binnen te halen. Na een klik op OK past LibreOffice het thema onmiddellijk toe.

Daarnaast ondersteunen Writer, Calc en Impress ook kleurenschema’s voor specifieke documenten. Nadat je een van de drie applicaties hebt geopend, ga je naar Opmaak / Thema. Kies een van de bestaande thema’s uit Rainbow, Beach, Sunset … Je kunt via de knop Toevoegen ook zelf een thema samenstellen. Bevestig met de knop Toepassen. Alle elementen die met stijlen en thema-kleuren werken (koppen, tabellen, grafieken et cetera) worden meteen aangepast.

Met een thema pas je in één keer het volledige uiterlijk van de LibreOffice-applicatie aan.

Wijzigingen tonen

Een eerste opvallende vernieuwing is de manier waarop je tijdens het samenwerken veel duidelijker zicht krijgt op de voorgestelde wijzigingen. Activeer dit via Bewerken / Wijzigingen / Wijzigingen bijhouden of met de sneltoets Ctrl+Shift+C. Vanaf dat moment markeert Writer automatisch alles wat je typt, verplaatst of aanpast.

Met Bewerken / Wijzigingen / Tonen
maak je de aanpassingen zichtbaar. Toevoegingen verschijnen onderstreept of in kleur, verwijderingen worden doorgestreept en opmaakwijzigingen krijgen een ballon of markering in de kantlijn.

De voorgestelde wijzigingen worden zichtbaar.

Wijzigingen beheren

In het venster Wijzigingen beheren (Alt+7) zie je in één oogopslag alle voorgestelde aanpassingen. Klik je in de lijst op een item, dan wordt de bijbehorende wijziging meteen in de tekst gemarkeerd. En omgekeerd: selecteer je een wijziging in de tekst, dan springt Writer automatisch naar de juiste entry in de lijst. Dat was vroeger veel minder overzichtelijk, waardoor correcties in lange documenten lastig te volgen waren.

Nu kun je niet alleen sneller door honderden wijzigingen bladeren, maar ook instellen hoe elk type wijziging wordt weergegeven, van kleur tot markering. Met de knoppen Accepteren en Verwerpen beslis je per wijziging of je alles in één keer verwerkt. Bovendien kun je de lijst filteren op auteur en/of tijdstip, wat vooral bij samenwerking met meerdere gebruikers tijd bespaart.

Je kunt de wijzigingen filteren op auteur en op datum.

Commentaren geïntegreerd in Navigator

Commentaren zijn in de nieuwe versie beter geïntegreerd in de Navigator, waardoor je ze als overzichtslijst kunt gebruiken. Open het zijpaneel Navigator met F5 of via het kompas-pictogram in de zijbalk. Vanuit dit venster navigeer je met één klik naar koppen, afbeeldingen, secties en tabellen. Voeg je in de tekst een commentaar toe via rechtermuisknop en de optie Notitie toevoegen of de sneltoets Ctrl+Alt+C, dan verschijnt deze niet alleen in de tekst, maar ook in de Navigator. Klik je daar op een commentaar, dan springt Writer meteen naar de juiste plaats in het document.

In het panel Navigator vind je alle opmerkingen.

Extern opslaan

Onder het menu Bestand vind je ook de optie Extern opslaan. Hiermee sla je een bestand op een andere locatie op dan je eigen computer. Dit kan bijvoorbeeld een netwerkschijf of gedeelde map zijn, via WebDAV, FTP, SSH of een andere netwerkverbinding, of in een cloudomgeving zoals Nextcloud, Google Drive of OneDrive.

Het voordeel is dat het document direct op een plek staat waar anderen toegang toe hebben, of waar je er zelf vanaf meerdere apparaten bij kunt. Om een externe opslaglocatie in te stellen, klik je bij Extern opslaan op Service beheren. Daarna selecteer je de gewenste online dienst en vul je de gebruikersnaam en het wachtwoord in.

Je kunt verschillende externe bestandsservices aanspreken.

Multi opslaan als

Aanvullend kun je de mogelijkheden van LibreOffice uitbreiden door middel van extensies. Bijvoorbeeld met MultiFormatSave sla je hetzelfde document meteen in meerdere indelingen tegelijk op. Deze extensie ondersteunt het OpenDocument-formaat, het Microsoft Office-formaat en tegelijk de pdf-indeling. Handig bij samenwerking met mensen die Microsoft Office gebruiken, zodat iedereen toch over een kopie beschikt waarmee hij of zij kan werken. Daarnaast is er de extensie MultiFormatSave-Draw die hetzelfde doet voor illustraties. Hiermee bewaar je dezelfde afbeelding tegelijk in het odf-, png-, svg- en pdf-formaat.

Eerst moet je de extensie installeren via het menu Extra / Extensies. Daar klik je linksonder op de knop Haal meer extensies online. Dan kom je in een store om extensies te zoeken en te downloaden. Wanneer de download binnen is, dubbelklik je op het bestand multiformatsave-v1-5-6.oxt in de map Downloads. Er verschijnt een waarschuwing die aangeeft dat je op het punt staat om een extensie te installeren voor LibreOffice. Klik op OK. Daarna moet je LibreOffice opnieuw opstarten. Vanaf nu heb je in het menu Bestand een nieuwe functie: Multi Opslaan als. Als je die functie aanspreekt, krijg je een pop-up waar je verschillende indelingen kunt selecteren. Via Extra / Extensie kun je achteraf ook extensies verwijderen.

Plaats vinkjes bij de verschillende bestandsindelingen die LibreOffice simultaan moet opslaan.

AI-afbeeldingsgenerator

Een nieuwe interessante extensie is Stable Diffusion for LibreOffice. Hiermee kun je via prompts AI-gegenereerde afbeeldingen rechtstreeks toevoegen dankzij de gratis AI Horde backend. Je hebt hiervoor geen account of abonnement nodig, maar wel een internetverbinding. Bovendien krijg je het beste resultaat met Engelse prompts. Dit is een interessante manier om op een eenvoudige manier visuals toe te voegen. Ga naar Extra / Extensies / Haal meer extensies online en gebruik de zoekmachine om Stable Diffusion for LibreOffice te downloaden. De extensie gebruikt een cluster van Stable Diffusion-servers die door vrijwilligers wordt onderhouden, de zogenaamde AIHorde.

Zodra de extensie is geïnstalleerd, kies je Invoegen / Image from text. Dan opent zich de pop-up Stable Horde for LibreOffice waar je de prompt typt. Daarbij geef je zowel de hoogte als de breedte in van de illustratie die je nodig hebt en je klikt op de knop Process. Even later staat de illustratie in het tekstdocument of in de presentatie. Na de installatie vind je de knop naar deze extensie in Writer, Draw en Impress.

Onder de afbeelding komt ook de prompt die je hebt ingegeven.

Echte open standaarden

Wat LibreOffice uniek maakt, is dat het volledig inzet op open standaardformaten die door iedereen gebruikt en geïmplementeerd kunnen worden. Voor elk type document is er een open formaat: odt voor tekstdocumenten, ods voor spreadsheets en odp voor presentaties. Deze formaten zijn vastgelegd door de internationale standaardisatieorganisatie OASIS en officieel erkend door ISO/IEC. Dat betekent dat ze vrij beschikbaar zijn, zonder dat er een bedrijf de spelregels bepaalt.

Daarnaast kan LibreOffice ook werken met de Microsoft Office-formaten zoals docx, xlsx en pptx. Het kan bestanden in die formaten zowel openen als opslaan, zodat uitwisseling met gebruikers van Microsoft Office vlot verloopt. Het belangrijkste voordeel van de open formaten is dat de documenten in LibreOffice er hetzelfde uitzien wanneer je ze opnieuw opent, of wanneer iemand anders ze opent in een toepassing die deze standaard ondersteunt. Je verliest geen opmaak, inhoud of metadata.

Bij de Microsoft-formaten ligt dat genuanceerder. De typische Microsoft-indelingen zoals docx, xlsx en pptx bevatten vaak functies of elementen die alleen door Microsoft Office volledig worden ondersteund. Dit is deels een bewuste strategie. Microsoft hanteert zijn eigen implementatie en voegt soms afwijkingen toe, waardoor bestanden niet altijd 100 procent identiek openen buiten het eigen ecosysteem. Daardoor wordt het overstappen naar alternatieve software bemoeilijkt.

LibreOffice ondersteunt echte open standaarden.

Documenten schoon opslaan

Alle applicaties zijn bovendien in staat om documenten te creëren die de privacy van de gebruiker respecteren. Bij het opslaan kun je namelijk aangeven of je het bestand zonder persoonlijke metadata wilt bewaren, zoals de auteur of de tijdstempels. Dit kan belangrijk zijn als je documenten deelt in een professionele of juridische context. Terwijl het bestand geopend is, ga je naar het menu Bestand / Eigenschappen. Dan kies je het tabblad Algemeen. Je zult zien dat hierbij je naam als auteur al ingevuld is en ook de wijzigingsdatum, de totale bewerkingstijd enzovoort …

Klik op de knop Eigenschappen terugzetten. Hiermee wis je auteur, wijzigingsdatum, bewerkingstijd en woordentelling. Sla het bestand dan opnieuw op. Wil je het programma instellen zodat je de metadata altijd wist bij het opslaan, zodat je dit niet kunt vergeten? Ga naar Extra / Opties. Kies links in de lijst LibreOffice / Beveiligen. In de groep Beveiligingsopties en waarschuwingen klik je op de knop Opties. Daarna vink je de optie aan: Persoonlijke informatie verwijderen bij het opslaan. Bevestig met OK. Vanaf nu worden alle documenten automatisch schoon opgeslagen.

Het is mogelijk om de metadata in LibreOffice te verwijderen.

Samenwerken

Er zijn drie manieren om samen te werken met LibreOffice. De eerste is de klassieke aanpak. Je werkt alleen op je eigen computer en deelt het bestand via e-mail of usb. Andere gebruikers kunnen het document vervolgens aanpassen en opmerkingen toevoegen. Alle wijzigingen zie je overzichtelijk terug in het venster Wijzigingen beheren. De tweede manier is het gebruik van een gedeelde map in de cloud. Iedereen met toegang kan het bestand bewerken, zij het niet tegelijkertijd. Dankzij kleurmarkeringen blijft zichtbaar wie welke aanpassing heeft gedaan. De derde optie is de online variant van LibreOffice. Daarmee werk je in realtime samen aan hetzelfde document. Het grote voordeel is de simultane bewerking, maar het nadeel is dat de installatie en configuratie van deze oplossing wat complexer is.

Zo versleutelen we het bestand op Dropbox, de ander moet dan het wachtwoord kennen.

Online versie

De oplossing om online de opensource tekstverwerker, spreadsheet- of presentatie-applicatie te gebruiken, is een combinatie van een online platform en een online toepassing. LibreOffice 25.8 heeft de mogelijkheden om met anderen samen te werken uitgebreid door koppelingen met cloudoplossingen zoals Nextcloud. De bijbehorende online toepassing heet Collabora Online. Het gaat om een webgebaseerde Office-omgeving op basis van LibreOffice die zich integreert met cloudplatformen zoals Nextcloud. Hiermee kunnen teams, onderzoekers en scholieren in realtime veilig samenwerken, zonder afhankelijk te zijn van commerciële clouddiensten zoals Google of Microsoft. Bovendien is de privacy beter gewaarborgd.

Om te starten heb je een Nextcloud- of ownCloud-account nodig. Wij vonden Nextcloud het meest gebruiksvriendelijk, omdat deze Collabora al standaard aanbiedt. Nextcloud heeft clients voor Windows, macOS, Linux, iOS en Android (https://nextcloud.com/install). De laatste versie (31.0.8) verscheen op 14 augustus 2025. Wil je geen tijd besteden aan installatie en onderhoud, dan kun je kiezen voor een beheerde Nextcloud-hostingdienst. Er zijn verschillende aanbieders en de prijzen variëren volgens opslagcapaciteit. Je kunt er ook voor kiezen om op een eigen server Collabora CODE te installeren (Collabora Online Development Edition, een gratis community-versie), maar dat is meer iets voor specialisten.

Maak eerst een account aan bij Nextcloud.

Compatibel met de courante Office-indelingen

Met Collabora Online krijg je een webversie van LibreOffice, volledig opensource en privacy-vriendelijk. Op https://collaboraonline.com kun je een gratis demo uitproberen. Je vult je naam, e-mailadres en herkomst van je aanvraag in, waarna je een e-mail ontvangt met een link, login en wachtwoord. Vervolgens kom je in een omgeving waar je tekstverwerkingsdocumenten, spreadsheets en presentaties kunt openen. Het gaat om een set online documenten in de odt-, docx-, pdf-, pptx-, xlsx-, odg-, doc- en ods-indeling. Met een dubbelklik opent Collabora Online het bestand rechtstreeks in de browser, zonder dat je iets hoeft te installeren.

Je ziet in Nextcloud welke bestanden je in Collabora kunt openen.

Alle bewerkingen in de browser

Wanneer een document geopend is, herken je meteen de vertrouwde LibreOffice-modules. De interface van Collabora Online is niet 100 procent identiek aan de desktopversie van LibreOffice, maar de functies en compatibiliteit zijn zeer vergelijkbaar. De interface past zich aan de taalinstellingen van je systeem aan (in ons geval Nederlands). Je kunt elk bestand bewerken en opslaan in verschillende formaten. Zo kun je een geopende odp-presentatie bewaren als odf-presentatie, PowerPoint-bestand (.pptx) of PowerPoint 2003-presentatie (.ppt). Een tekstdocument in odt-formaat kun je opslaan als rtf, Word (.docx) of Word 2003-document (.doc). Ook exporteren naar pdf of epub is mogelijk. Alles gebeurt volledig in de internetbrowser, zonder dat je een lokale toepassing nodig hebt. Bovendien ben je niet beperkt tot de demo-bestanden: je kunt zelf ook eigen bestanden uploaden, bewerken en opslaan in deze indelingen.

De interface van Collabora Online werkt ook in het Nederlands.

Delen

In Nextcloud klik je op de Deel-knop en voeg je een gebruiker of groep toe. Je kunt zelfs een openbare link aanmaken. Daarbij bepaal je of de ander het document alleen mag lezen of ook mag bewerken. Vanaf dat moment kunnen meerdere mensen tegelijk in hetzelfde document werken. Elke auteur krijgt een eigen kleur voor de cursor en de selecties en alle wijzigingen verschijnen direct op het scherm. Net als in de desktopversie kun je opmerkingen toevoegen en wijzigingen bijhouden. Ondertussen kun je chatten en altijd teruggaan naar eerdere versies.

Je kunt het document delen met een of meer personen en je kunt een openbare link creëren.