Command Palette

Search for a command to run...

Waar de regel breekt, bepaal wat je krijgt

Waar de regel breekt, bepaal wat je krijgt

T
Toolz Team
|Oct 23, 2026|17 min lezen
Geef de voorkeur aan Toolz.dev op Google

Onderdeel van de PDF-tools-collectie

PDF to Text

Pull the text out of a PDF and save it as a .txt file, in your browser. Keep the page layout or reflow it into paragraphs, with or without page markers.

Gebruik de PDF to Text

Een PDF bevat geen tekstregels. Het bevat glyphs op coördinaten en de lijnen die je kunt zien zijn iets dat je oog assembleren. Elke extractor moet ze ook samenstellen, van drie nummers per run en een paar drempels, en bijna elke eigenaardigheid in geëxtraheerde tekst gaat terug naar een van die drempels die een redelijke oproep maakten die toevallig verkeerd waren. Degene die ik heb gerepareerd tijdens het schrijven van dit veranderde een achternaam die over een regel werd gebroken, "Sei-" en toen "mensah" in "Sei-mensah": koppelteken, zoals bedoeld, met een ruimte erna die daar nooit thuishoorde.

tl;dr: Extractie is lijnhermontage en de instellingen die ertoe doen, zijn onzichtbaar. De letterhoogte van elkaar loopt binnen een halve letterhoogte van elkaar, een regelmaat, een verticale opening die meer dan 1,45 keer zo groot is als de gebruikelijke spleet van de pagina, begint een alinea; een horizontale opening onder een kwart van de letterhoogte is geen woordruimte. uitkiezen nastroom om te plakken in een redacteur en inleggen voor tabellen en code. Een PDF met een gemiddelde van minder dan 12 tekens per pagina is een scan en heeft in plaats daarvan OCR nodig, wat in de tool staat in plaats van u een leeg bestand te overhandigen. pdf naar tekst wordt uitgevoerd in de browser.

Waarom heeft een PDF überhaupt "uittrek" nodig?

Omdat de tekst erin is geschreven als tekeninstructies, en ze teruglezen is niet het omgekeerde van het schrijven ervan.

Een inhoudsstroom zegt "zet dit lettertype op dit formaat, ga hierheen, laat deze glyphs" zien. de specificatie Beschrijft een schildermodel en de tekstoperators zitten naast die voor het tekenen van lijnen en het vullen van vormen. Er is geen objectbetekenis regel, alinea of kolom. welk een pdf.js Handen terug is een platte lijst van gepositioneerde runs, elk met een string, een x, een y, een breedte en een lettertypehoogte, in de volgorde waarin de pagina is geschilderd. Op een testpagina is die volgorde geen leesvolgorde en kan een enkele run één teken zijn.

Al het andere is reconstructie. Drie drempels doen bijna alles, en ze zijn het waard om te weten omdat ze de mislukkingen verklaren.

Drempel waarde Wat het beslist
lijn tolerantie 0,5 x letterhoogte Of twee runs op dezelfde lijn zitten
Alinea verhouding 1,45 x de mediaankloof van de pagina Of een verticale opening een nieuwe alinea begint
Ruimteverhouding 0,25 x lettertypehoogte Of een horizontale opening een woordruimte is

Elk is een fractie van de eigen grootte van de tekst in plaats van een vast aantal punten, dus een voetnoot en een kop op dezelfde pagina krijgen verschillende toleranties, en een document dat in 9 punten is ingesteld, gedraagt zich als één set in 14.

Waarom is de woordruimtedrempel nodig?

Want zonder dat komt elk woord uit elkaar.

Een PDF-parser splitst vaak een enkel woord over verschillende runs zonder opening ertussen, voor het afkeren of voor een lettertypewijziging halverwege het woord. Deelnemen loopt op een ruimte die onvoorwaardelijk draait filename per f i l e n a m e. Deelnemen met helemaal niets loopt aparte woorden samen.

Dus de regel is een opening die breder is dan een kwart van de letterhoogte, telt als een ruimte, wat ongeveer de breedte is van een echte woordruimte in de meeste lettertypen. Daaronder zijn de runs delen van één woord.

Dit is de drempel die je nooit zult merken en zal onmiddellijk opvallen, meestal op een kop met brede letterafstand, waarbij elke letter ver genoeg uit elkaar staat om op een woord te lijken.

Wat is het verschil tussen reflow en conserven?

Reflow geeft je proza. Preserve geeft u de pagina.

Hier is een alinea uiteengezet over drie regels, gevolgd door een andere, door beide modi:

--- preserve ---
The committee reviewed the figures and agreed that the
revised protocol should be circulated before the end of
the month.
A second paragraph begins here after a larger gap.

--- reflow ---
The committee reviewed the figures and agreed that the revised protocol should be circulated before the end of the month.

A second paragraph begins here after a larger gap.

Reflow voegde de drie regels in één zin samen en plaatste een lege regel tussen de alinea's. Behoudt elke regel break waarmee de pagina was ingedeeld, inclusief die in het midden van een zin.

Gebruik reflow Gebruik behouden
Plak in een document of een editor een tabel, waar de kolommen de inhoud zijn
Een passage citeren Een codelijst, waarbij regeleinden syntaxis zijn
tekst invoegen naar een script of een model Een adresblok of een formulier
alles wat je toch gaat formatteren Alles waar de lay-out betekenis heeft

Reflow is de standaard en meestal de juiste. De fout die mensen maken is het gebruiken van het op een tafel, waar het samenvoegen van de rijen in proza de enige structuur die de tafel had vernietigt.

Hoe bepaalt het waar een alinea eindigt?

Door elke verticale opening te vergelijken met de eigen typische kloof van de pagina.

Elke kloof tussen opeenvolgende lijnen wordt gemeten, de mediaan wordt genomen en elke kloof meer dan 1,45 keer dat de mediaan een nieuwe alinea begint. Dus een pagina met één regelafstand komt niet terug als één alinea per regel, en een dubbel-afgelegen pagina komt niet terug als een enkel blok.

Het gebruik van de mediaan in plaats van een vast getal is wat dit maakt dat dit werkt in documenten met verschillende leads. Het is ook waar het faalt: een pagina met heel weinig lijnen heeft geen betrouwbare mediaan. Een titelpagina, een kort briefje of een voorblad komt vaak terug als één doorlopende alinea, wat dezelfde zwakte is het woord conversie heeft om dezelfde reden.

De oplossing is handmatig en snel. Alinea-einden zijn duidelijk voor een lezer op een manier die niet tot een drempelwaarde is.

Wat is er gebeurd met woorden die over lijnen heen zijn gebroken?

Ze worden weer bij elkaar gebracht en de regel waarvoor koppeltekens moeten vallen, is een gok die vaker wel dan niet klopt.

Wanneer een regel eindigt in een koppelteken, is de vraag of de zetter het daar heeft gezet om een woord te breken of dat het bij het woord hoort. De regel die hier wordt gebruikt, is het geval: als de volgende regel in kleine letters begint, was het koppelteken de letterzetter's en gaat; als het begint met een hoofdletter of een cijfer, het koppelteken deel uitmaakt van de tekst en blijft.

over lijnen gebroken Resultaat toch?
self- + contained selfcontained ja
re- + encode reencode ja
client- + Side client-Side ja
Osei- + Mensah Osei-Mensah ja
COVID- + 19 COVID-19 ja
2026- + 03 2026-03 ja
well- + known wellknown heel weinig

De laatste rij is niet te repareren door een regel. "Bekleerde" gebroken op eigen koppelteken en "bekend" gebroken door rechtvaardiging produceren hetzelfde paar lijnen, en hen uit elkaar vertellen heeft een woordenboek nodig in plaats van een drempel. Hetzelfde geldt voor "re-" en "encode" hierboven, wat toevallig alleen klopt omdat "recodering" niet een woord is dat iemand schrijft.

De rijen in het midden zijn degenen die veranderden terwijl deze gids werd geschreven. De niet-pauze-case die wordt gebruikt om een spatie toe te voegen samen met het bewaarde koppelteken, produceert Osei- Mensah en 2026- 03. Het koppelteken behoort hoe dan ook tot het woord, dus een spatie erna is nooit correct, en de test die beweerde dat de oude output samen met het gedrag is gecorrigeerd.

Hoe weet het dat een PDF een scan is?

Door tekens per pagina te tellen, met een drempel die laag genoeg is dat alleen een echte scan het uitschakelt.

Een gescand document is een PDF vol afbeeldingen. Er is geen tekstlaag, dus extractie levert niets op, en het nuttige antwoord is om dat te zeggen in plaats van een leeg bestand over te dragen.

  0 chars over 3 pages   treated as a scan
 30 chars over 3 pages   treated as a scan
 36 chars over 3 pages   has a text layer
 11 chars over 1 page    treated as a scan
 12 chars over 1 page    has a text layer

De regel is twaalf tekens per pagina. Dat is niet opzettelijk: een gescande pagina bevat vaak een kleine incidentele tekst van de scanner, een paginanummer dat door de software is gestempeld of een watermerk. Een drempel op nul zou die documenten uitpakken en drie paginanummers teruggeven.

Als uw PDF een scan is, is de volgende stap OCR en het gemeten verslag van wat OCR breekt Heeft de gemeten versie daarvan: Tilt voorbij drie graden kost u veel meer dan een lage resolutie.

Hoe zit het met kolommen?

Ze gaan tussen, en dit is de limiet die het waard is om te weten voordat je een extractie vertrouwt.

Lijnen worden eerst gegroepeerd op basislijn, dus twee kolommen tekst die op dezelfde verticale posities zitten, worden over de overkant gelezen in plaats van naar beneden. In een test van een twee-kolomsrapportpagina was het resultaat elke regel van de linkerkolom, onmiddellijk gevolgd door de regel ernaast:

Revenue rose in the third Headcount grew by four, quarter on the back of
two all in support. The hiring large renewals signed in plan for the fourth

Elk woord is aanwezig. De volgorde is nutteloos en de output leest als vloeiende onzin in plaats van als een fout.

Academische kranten en kranten overleven dit vaak, omdat de goot tussen kolommen breed en regelmatig genoeg is om een paginasegmentatiestap te vinden. Een rapport met een zijbalk, een pull-aanhalingsteken of een tabel met twee kolommen doet dat vaak niet.

De betrouwbare benadering van een kolomdocument is om de eerste alinea van elke pagina te controleren. Als de zinnen zijn gesplitst, pak dan één kolom tegelijk uit door bij te snijden, of accepteer dat u een woordzak krijgt in plaats van proza.

Kun je een tafel uit een pdf halen?

De waarden, ja. De tabel, nee, en de reden is dat de PDF vrijwel zeker ook geen tabel bevat.

Een tabel in een pdf is meestal tekst getekend op coördinaten met enkele lijnen eromheen. De lijnen zijn grafische bewerkingen met niets in het bestand dat ze verbindt met de tekst die ze insluiten, en de cellen zijn geen cellen; het zijn runs die toevallig op één lijn liggen. Dus een afzuiger ziet rijen tekst en leest ze over:

Region Q2 Q3 EMEA 412 455 AMER 388 401 APAC 120 166

Elke figuur overleefde. Je kunt niet aan die lijn zien tot welke kwart 412 behoort zonder posities te tellen en de vorm van het origineel te kennen.

De Preserve-modus helpt een beetje, omdat het de rijstructuur als regeleinden behoudt, wat je tenminste vertelt waar elke rij eindigde. Het geeft je nog steeds geen kolomgrenzen.

Twee dingen werken. a Getagd pdf, zorgvuldig geëxporteerd uit Word of InDesign met toegankelijkheidsstructuur, draagt echte tabelopslag en converteert op de juiste manier; dit zijn een minderheid en dat kun je meestal zien omdat het document is gemaakt door iemand die om je gaf. En voor een niet-gelabelde tabel die ertoe doet, is het met de hand kopiëren naar een spreadsheet sneller dan het bestrijden van een tool, wat een onbevredigend antwoord is dat elke poging om het te verbeteren heeft overleefd.

Wat doen de paginamarkeringen?

Ze behouden de paginanummers, wat belangrijker is dan het klinkt voor alles wat je wilt citeren of waarnaar terug wordt verwezen.

Met markeringen aan, wordt elke pagina gelabeld en worden lege pagina's nog steeds geteld:

--- Page 1 ---

First page text.

--- Page 2 ---

--- Page 3 ---

Third page text.

Pagina 2 had geen uittrekbare tekst en verschijnt nog steeds. Dat is opzettelijk: een gescand blad tussen twee tekstpagina's zou anders verdwijnen en elk later paginanummer zou met één verkeerd zijn.

Met markeringen uit, laat de lege pagina geen spoor achter en worden de twee pagina's tekst eenvoudig samengevoegd. Dat is de juiste keuze als je de tekst ergens gaat plakken en de paginering een artefact van de PDF is in plaats van een deel van het document.

Is uitgepakte tekst hetzelfde als het origineel?

de karakters zijn. Al het andere is weg en de lijst is de moeite waard om te lezen voordat u op de uitvoer vertrouwt.

Vet, cursief, lettertype, grootte, kleur, tabellen als tabellen, afbeeldingen, kop- en voetteksten in tegenstelling tot hoofdtekst, voetnoten in tegenstelling tot de zin die ze aantekeningen, links als links en de leesvolgorde van een complexe lay-out. Wat je krijgt is dat karakters en alineabreekt.

Voor de meeste toepassingen klopt dat precies. Zoeken, citeren, tellen, een script invoeden, in een editor plakken: al die willen de woorden en niets anders.

Waar het bijt is een document waarvan de betekenis deels in de opmaak leeft. Een contract waarbij een gedefinieerde term vet is, een specificatie waarbij een codevoorbeeld wordt onderscheiden door het lettertype, een rapport waarbij een voetnoot verandert wat een zin beweert. Geëxtraheerde tekst maakt het allemaal plat, en niets in de uitvoer zegt het.

Moet je uitpakken naar tekst of converteren naar Word?

Tekst Als een machine het leest, wordt het woord als een persoon het zal bewerken.

Beide draaien dezelfde hermontage, dus de kwaliteit van de woorden is identiek. Het verschil is alleen wat er aan het einde wordt geschreven: een .txt bestand, of dezelfde alinea's in een zip van XML.

Je wilt goed doen
grep, zoek of feed een script pdf naar tekst
woorden tellen of de inhoud analyseren pdf naar tekst
bewerk het proza en stuur het door pdf naar woord
Houd de lay-out precies geen van beide; ontvang het originele bestand

De laatste rij is degene die mensen willen, en geen enkele extractie geeft het je. De Woordconversiegids gaat in detail door waarom, met een tabel die terugkomt als een enkele regel van waarden.

Hoe groot kan een pdf aan?

groot, en de limiet is het tabblad in plaats van het formaat.

Het hele bestand wordt daar in het paginageheugen gelezen en geparseerd, en de geëxtraheerde tekst wordt ernaast vastgehouden. Een paar honderd pagina's gewone tekst zijn onopvallend; een scan van duizend pagina's met hoge resolutie is een ander voorstel omdat de afbeeldingen meekomen voor de rit, ook al levert geen van hen tekst op.

Als een document groot genoeg is om zich zorgen over te maken, is het signaal de parse in plaats van de extractie. De tekst uit een reeds geparseerde pagina halen is goedkoop; het in de parser krijgen is wat de tijd en het geheugen kost.

Waarom wordt dit uitgevoerd in de browser?

Omdat een parse geen server nodig heeft en de pdf's die mensen uitpakken zelden openbaar zijn.

Het bestand wordt vanaf uw schijf in het tabblad gelezen, daar geparseerd met pdf.js gecompileerd voor het web, opnieuw samengevoegd tot tekst en teruggegeven. Geen enkel verzoek draagt het document, er wordt niets opgeslagen en er is nergens een kopie om te worden bewaard onder voorwaarden die u niet hebt gelezen.

De documenten in kwestie zijn contracten, verklaringen, medische brieven, gerechtelijke dossiers, papieren onder embargo, interne rapporten. Het conventionele alternatief uploadt het hele bestand naar een service in ruil voor een bewerking die een parse is en wat rekenkunde op coördinaten.

De kosten zijn het geheugen van de tab op zeer grote bestanden en geen OCR voor scans. Beide zijn zichtbaar voordat je begint in plaats van achteraf ontdekt.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!