PDF markeren
Markeer tekst in een PDF: zoek woorden en markeer elke treffer met een markeerstift.
Je bestanden blijven op dit apparaat. Er wordt niets geüpload. Zo controleer je het
Zo gebruik je PDF markeren
Belangrijkste functies van PDF markeren
De tekstlaag van het document wordt voor elk zinsdeel doorzocht, ongeacht hoofdlettergebruik, en er wordt een balk getekend over elke treffer op zijn positie op de regel, zodat je ze niet zelf hoeft te vinden.
De balk wordt getekend in de vermenigvuldigingsmodus (multiply), zodat de woorden eronder leesbaar, selecteerbaar en doorzoekbaar blijven, zoals inkt van een markeerstift.
Het bestand wordt door JavaScript in je browser gelezen en opnieuw geschreven. Er wordt niets naar een server gestuurd.
Over PDF markeren
PDF markeren zoekt elk zinsdeel op met pdf.js, berekent waar de treffer op de regel ligt door de tekst ervoor te meten, en tekent er met pdf-lib een doorschijnende balk overheen. Omdat de balk wordt gemengd in plaats van erbovenop geschilderd, blijven de woorden leesbaar en selecteerbaar, en vindt zoeken ze nog steeds.
Markeer elke vervaldatum in een contract, elke productcode in een prijslijst, of de naam van een klant in een lang rapport. Elke tekstreeks wordt afzonderlijk doorzocht, dus een zinsdeel dat over twee regels doorloopt, wordt niet gevonden, en een gescande pagina heeft niets om te vinden totdat deze door de OCR-tool is gegaan. De positie binnen een regel wordt gemeten met een browserlettertype van dezelfde soort als dat van de PDF (met schreef, schreefloos of monospace), dus die kan licht afwijken bij een ongewoon lettertype of brede letterspatiëring.
Wanneer gebruik je PDF markeren?
Een leveringsovereenkomst van 60 pagina's noemt ‘beëindiging’ op wel tien plekken, en je moet elke vermelding lezen vóór een gesprek. Typ het woord, kies geel, download, en blader door het resultaat. De melding vertelt je hoeveel treffers zijn gevonden en op hoeveel pagina's, zodat je meteen weet of het aantal overeenkomt met wat je verwachtte.
Een prijslijst moet voor een collega elke regel met bepaalde productcodes gemarkeerd krijgen. Voer elke code op een eigen regel in; ze worden allemaal in één stap gemarkeerd. De zoekopdracht kijkt binnen de tekst, dus een code zoals AB12 komt ook overeen met AB123. Voer de langste vorm van elke code in die je hebt.
Een leerpakket moet de kernbegrippen voor een klas laten uitkomen. Omdat de balk over de tekst wordt gemengd in plaats van erbovenop geschilderd, blijven de woorden leesbaar op scherm en op papier, en kan een leerling ze nog steeds selecteren en kopiëren.
Je wilt dat één zinsdeel alleen wordt gemarkeerd waar het in een bepaalde clausule voorkomt, niet in het hele document. Deze tool markeert elke treffer, dus voor één specifieke plek open je de PDF-editor, kies je Markeren en sleep je een kader naar de gewenste plek. Om tekst zwart te maken in plaats van te markeren, gebruik je PDF zwartlakken, dat de tekst ook uit het bestand verwijdert.
Tips en probleemoplossing
- ‘Voer minstens één woord of zinsdeel in om te markeren.’ verschijnt onder het vak als dit leeg is. Lege regels worden genegeerd en spaties aan het begin of einde van een regel worden verwijderd, dus een zinsdeel kan niet beginnen of eindigen met een spatie.
- ‘Geen van die woorden is gevonden in de tekst van het document’ betekent dat er op geen enkele pagina een match was en dat er geen bestand is gemaakt. Controleer de spelling, probeer een korter fragment, of laat het bestand, als het een scan is, eerst door OCR PDF lopen.
- Een treffer moet binnen één tekstreeks liggen zoals pdf.js die leest. Een zinsdeel dat een regeleinde, een kolomgrens, of een lettertypewisseling in het midden overschrijdt (één vetgedrukt woord in een gewone zin) wordt niet gevonden; zoek in plaats daarvan naar het deel aan één kant van de overgang.
- Er is geen optie voor hele woorden: ‘date’ komt ook overeen met ‘update’ en ‘dated’. Kies een langer zinsdeel zoals ‘due date’ als een korter zinsdeel te veel treft. Termen die overlappen, zoals ‘due’ en ‘due date’, worden allebei getekend, zodat het gedeelde deel twee balken en een donkerdere kleur krijgt.
- De horizontale positie van de balk wordt gemeten aan de hand van de breedte van de tekst vóór de treffer, gezet in een browserlettertype van dezelfde soort, dus bij een ongewoon lettertype of brede letterspatiëring kan hij iets naar één kant verschuiven. De hoogte komt van de tekengrootte van de reeks.
- Markeringen worden in de pagina-inhoud getekend, niet toegevoegd als PDF-annotaties, dus ze verschijnen niet in de opmerkingenlijst van een lezer en kunnen niet worden geselecteerd of verwijderd in een viewer. Bewaar het origineel als je misschien een schone kopie nodig hebt. De download heet highlighted_ gevolgd door de oorspronkelijke bestandsnaam.
- ‘PDF markeren mislukt: No password given’ betekent dat het bestand een wachtwoord nodig heeft om te openen. Laat het door PDF ontgrendelen lopen en markeer het resultaat. Voorbeeld bekijken rendert het resultaat met pdf.js in de pagina, zodat je de balken kunt controleren voordat je opslaat.
- ‘Deze PDF heeft een eigenaarswachtwoord dat wijzigingen beperkt’ betekent dat het bestand zonder wachtwoord opent maar tegen bewerken is vergrendeld. Haal het door PDF ontgrendelen, dat zulke beperkingen zonder wachtwoord verwijdert, en markeer het resultaat.
Zo werkt PDF markeren in je browser
Twee bibliotheken werken op dezelfde bytes in het geheugen. pdf.js opent een kopie van het bestand in een Web Worker, een achtergrondthread in je browser, en geeft de tekstlaag van elke pagina terug: elke tekstreeks met zijn string, breedte en een transformatie die de tekengrootte en positie bevat. De tool zet elke string om in kleine letters en zoekt naar elk zinsdeel dat je hebt ingevoerd. Voor elke treffer bouwt de tool een kader in PDF-punten: de horizontale spanne is het aandeel van de treffer in de breedte van de reeks, gemeten met de canvasfunctie measureText in een browserlettertype van dezelfde soort als het PDF-lettertype, de verticale spanne loopt van 22% van de tekengrootte onder de basislijn tot de bovenkant van de tekengrootte, en de transformatie van de reeks brengt dat kader op de pagina over, wat ook rekening houdt met gedraaide pagina's.
pdf-lib opent vervolgens dezelfde bytes en tekent per kader één rechthoek, aan elke kant 1 pt breder gemaakt, in de kleur die je hebt gekozen met de vermenigvuldigingsmodus (Multiply), waardoor de balk zich gedraagt als markeerinkt over de tekst in plaats van als een sticker erbovenop. Het document wordt opgeslagen als een nieuwe byte-array, verpakt in een Blob en getoond op de resultaatkaart met het aantal treffers en pagina's. Er wordt niets geüpload, en al het andere in het bestand, inclusief de tekst, links, bladwijzers en formuliervelden, wordt ongewijzigd teruggeschreven.
Veelgestelde vragen
Verandert of verwijdert markeren de tekst?
Nee. De tekst blijft precies zoals hij was: hij blijft selecteerbaar, kopieerbaar en doorzoekbaar. Er wordt alleen een gekleurde balk toegevoegd over elke treffer.
Waarom werd een zinsdeel niet gemarkeerd?
Ofwel wijkt de tekst af van wat je hebt getypt (de match is exact, op hoofdlettergebruik na), ofwel loopt het zinsdeel over twee regels door, ofwel is de pagina een scan zonder tekstlaag. Laat een gescande PDF eerst door de OCR-tool lopen en markeer daarna het resultaat.
Kan ik meerdere verschillende zinsdelen tegelijk markeren?
Voer één zinsdeel per regel in. Ze worden allemaal in dezelfde stap gemarkeerd, in de kleur die je kiest.
Kan ik een gescande PDF markeren?
Niet rechtstreeks: een scan heeft geen tekstlaag, dus er is niets te vinden en de tool meldt dat er niets is gevonden. Laat het bestand eerst door OCR PDF lopen; dat voegt een onzichtbare tekstlaag toe die deze tool kan doorzoeken.
Kan ik de markeringen later verwijderen?
Niet met deze tool, en ook niet in een PDF-lezer, omdat de balken deel uitmaken van de pagina-inhoud in plaats van annotaties te zijn. Bewaar je originele bestand en markeer een kopie.
Kan ik verschillende kleuren gebruiken voor verschillende woorden?
Eén kleur per keer. Markeer de eerste set woorden, download, en voer de tool dan uit op dat bestand met de tweede set en een andere kleur. De balken worden gemengd, dus een woord dat in beide keren wordt gevonden, toont de twee kleuren door elkaar.
Laatst gecontroleerd op