Mateusz Viola
Betreiber · PDF.js-Engine, Tesseract.js-OCR & Encoding-Mathematik
Mateusz Viola betreibt pdftxt.de als Tool-Projekt der AKARA Solutions GmbH aus Pinneberg. Er hat die client-seitige PDF-zu-TXT-Pipeline aufgesetzt: PDF.js (Mozilla) für eingebetteten PDF-Text, Tesseract.js als WebAssembly-Port für OCR bei gescannten Dokumenten, Encoding-Mathematik für UTF-8 und Legacy-Codepages.
Mateusz Viola arbeitet bei AKARA Solutions in Pinneberg und ist Hauptverantwortlicher für die Konvertierungs-Engine hinter pdftxt.de. Anders als klassische Cloud-Konverter wie iLovePDF oder Smallpdf läuft hier alles im Browser: PDF.js (https://github.com/mozilla/pdf.js) ist der von Mozilla gepflegte Browser-PDF-Parser, der seit 2011 in Firefox als Default-Reader eingebaut ist und per `pdfjs-dist` als NPM-Paket verfügbar gemacht wird. Der Worker läuft in einem Web-Worker, der Hauptthread bleibt für die UI frei. Die `getDocument`-API nimmt einen ArrayBuffer entgegen, `page.getTextContent()` liefert pro Seite die eingebetteten Text-Items mit Position und Schrift-Metadaten. Für gescannte PDFs ohne eingebetteten Text fällt die Site auf Tesseract.js zurück, einen WebAssembly-Port der Tesseract-OCR-Engine (Google/HP, seit 1985). Die Sprachmodelle deu und eng sind je rund 10 MB gross und werden on-demand vom Tessdata-CDN geladen und im Worker-Cache vorgehalten (Singleton-Pattern: erst beim ersten OCR-Run init, weitere Seiten gehen über dieselbe Worker-Instanz). Die 10-MB-Grenze für Eingabe-PDFs prüft das Tool clientseitig vor jedem Lade-Versuch. Die Encoding-Stufe bietet UTF-8, UTF-8 mit BOM (für Excel-Imports), ISO-8859-1 und Windows-1252 für Legacy-Systeme, bei nicht-kodierbaren Zeichen kommt ein Replacement-Char-Hinweis. Bei Bugs oder Feature-Wünschen ist Mateusz unter info@akara-solutions.de erreichbar.
Verantwortlichkeiten auf pdftxt.de
- PDF.js (pdfjs-dist) Worker-Setup mit GlobalWorkerOptions.workerSrc
- Tesseract.js Singleton-Pattern: ein Worker für alle Seiten, Sprachmodelle deu/eng on-demand
- Encoding-Funktionen UTF-8, UTF-8 mit BOM, ISO-8859-1, Windows-1252 mit Replacement-Char-Strategie
- Pure-Function-Architektur: testbare Page-Parser, Trim-Helpers, Page-Selection-Parser
- Heuristik für Scan-Detektion (< 10 Zeichen pro Seite triggert OCR-Hinweis)
- Mock-Stub-Pattern für Vitest, Bundle-Budget und 10-MB-Eingabe-Grenze
Kontakt
Korrekturen, Quellenhinweise oder Themenwünsche bitte an info@akara-solutions.de. Persönlicher Kontakt zu Mateusz: mateusz.viola@akara-solutions.de.