Geniales Ding, danke für das Video! Stirling PDF gibt es auch für Unraid, Die tesserect-Dateien liegen dort (standardmässig) im Ordner "/mnt/user/appdata/Stirling-PDF/OCR".
vielen Dank, das klang so verlockend, dass ich das Image frooodle/stirling-pdf-base:latest auf mein MacBook geladen habe. Anschließend habe ich dieses Image mit Docker-Scout (in Docker-Desktop 4.24 enthalten) gescannt. Das Ergebnis ernüchtert, wie bei vielen Docker Images: 628 packages mit 145 vulnerabilities, d.h. bekannte CVE‘s. Spitzenreiter ist pillow 8.1.2. Die meisten davon sind als „fixable“ gekennzeichnet. Wenn ich, Enduser ohne IT-Kenntnisse, diesen Scan durchführen kann, dann sollten das die Entwickler auch können. Da ich das Risiko nicht einschätzen kann, habe ich das Image wieder gelöscht, ohne den Container zu starten. Qualität anstatt Quantität in der SW-Entwicklung wäre mir lieber.
vielen Dank für deinen spitzen Kommentar. Ich habe auch ziemlich fragend geschaut als ich gesehen habe, dass das Image 1,4 GB groß ist. - Die eigentliche Kernfunktionalität mit den reinen PDF-Operationen ließe sich sehr viel kompakter lösen - sprich wenige Megabyte. Aber hier hat man sich vieler unterschiedlicher Werkzeuge (mit reichlich Abhängigkeiten) bedient und diese zusammengeklebt um eine größtmögliche eierlegende Wollmilchsau zu erzeugen. Weniger ist manchmal mehr. Eine schicke Browser-Oberfläche für einfache tools wie pdfcpu (in golang geschrieben und nur etwa 3-4MByte groß) hätte völlig ausgereicht. Wer komplizierte Konvertierungen durchführen möchte, der sollte am besten das ursprüngliche Office-Program verwenden.
Gibt es auch die Möglichkeit zwei Dateien zusammenzufügen, wenn die erste alle geraden Seitenzahlen umfasst und die zweite rückwärts alle ungeraden? (Problem ergibt sich beim Scannen von Doppelseiten über den Schütter)
Die Konvertierung in Word funktioniert leider nicht, OCR overlay klappt nur die Konvertierung in Word nicht, anscheinend wird hierfür LibreOffice genutzt muss man dafür noch was einstellen damit das klappt ? Danke
Cool wäre noch eine Share-Funktion um es zb. an Paperless NGX weiterzuleiten. Paperless bietet ja defakto kaum PDF Operationen an. Mir würde schon reichen mehrere Seiten zusammenfassen zu können und Seiten zu ordnen.
Die DE Sprachdatei braucht man nicht mehr installieren, die Sprache kann man rechte oben bei der Weltkugel in der GUI auswählen welche man haben möchte. Auf jeden Fall sehr interessantes Projekt, habe es gleich mal am Server installiert zum testen. Top Video!
Welche Vorteile bietet Stirling PDF gegenüber dem PDF24 bezogen auf den Funktionsumfang und den Tools ? Werden Signotec Unterschriften Pads für das Signieren unterstützt oder braucht man hier zusätzlich Treiber ? Gutes Video, weiter so !
Welche Daten werden denn von PDF24 online hochgeladen? Laut Beschreibung "Sicherheit ist garantiert Diese PDF24-App und auch alle anderen Apps funktionieren lokal auf Ihrem PC. Ihre Dateien verbleiben auf Ihrem Computer. Die Sicherheit Ihrer Dateien ist daher garantiert." bleit alles lokal auf dem PC. Ich konnte bisher alle Funktionen auch ohne Internetverbindung nutzen. @@anba2779
Vielen Dank für das Video! Leider kann man mit StirlingPDF keine PDFs mit Text und dgl. erstellen. Zumindest bin ich nicht dahintergekommen wie das funktionieren sollte ....
Konnte mir die Frage mit einer Testinstallation beantworten. Es wird eine OCR-Erkennung durchgeführt, doch leider sind einzelne Wörter in Tabellenzellen "eingesperrt". Dies erschwert die Weiterbearbeitung natürlich enorm. Schade.
@@Foxhunter_DE tatsächlich liefert Adobe PDF (Umwandung über deren Cloud) fast immer tadellose Ergebnisse. Eine Rechnung bspw. sieht dann quasi so aus, als wenn sie ursprünglich in Word geschrieben wurde.
Na ja so richtig pralle ist anders. Hat zwar einige Funktionen jedoch ein einfaches bearbeiten (Editor Funktion) habe ich nicht gefunden. Viellleicht bin ich ja auch nur blind.
Vielen Dank für das Video! OCR mit deutscher Sprache funktioniert nicht. Es erscheint der Fehler: „Internal Server Error: Command process failed with exit code 7“. Mit Englisch läuft es ohne Probleme. Was könnte das Problem sein? java.io.IOException: Command process failed with exit code 7 at stirling.software.SPDF.utils.ProcessExecutor.runCommandWithOutputHandling(ProcessExecutor.java:192) at stirling.software.SPDF.utils.ProcessExecutor.runCommandWithOutputHandling(ProcessExecutor.java:82) at stirling.software.SPDF.controller.api.misc.OCRController.processPdfWithOCR(OCRController.java:151) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at stirling.software.SPDF.config.MetricsFilter.doFilterInternal(MetricsFilter.java:62) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:735) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:840)
Hallo! Ich habe auch Probleme mit OCR. Sobald ich z.B. die Datei "deu.traineddata" ins Verzeichnis "trainingData/" lege und den Container neu starte, gibt es Fehlermeldungen, und die Texterkennung funktioniert nicht. Interessant könnte neben den vielen "...at org.apache.catalina..."-Meldungen z.B. noch so was hier sein (docker-compose logs -f während eins Konvertierungsversuches): stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] [DS] Profile read from file (tesseract_opencl_profile_devices.dat). stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] [DS] Device[1] 0:(null) score is 0.200170 stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] [DS] Selected Device[1]: "(null)" (Native) stirling-pdf | ERROR ocrmypdf._exec.tesseract - 1 [tesseract] Error opening data file /usr/share/tessdata/deu.traineddata stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] Failed loading language 'deu' stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] Tesseract couldn't load any languages! stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] Could not initialize tesseract. stirling-pdf | stirling-pdf | ERROR ocrmypdf._pipelines._common - ExitCodeException Kann jemand helfen?
Ansich eine gute Idee sowas nicht immer über Dienste wie pdf24 (die mit dem Schaf) zu machen, aber bei OCR ausgerechnet auf Tesseract zu setzen macht zumindest den OCR-Einsatz fragwürdig. Tesseract ist die langsamste und schlechteste OCR-Lösung, da reicht manchmal schon, wenn der ADF-Scanner eine Seite zwischendurch mal mit 2mm Versatz "schräg" eingescannt hat und es kommt nur noch Grütze dabei heraus, bei "dicken" also im Scan "krummen" Buchseiten braucht man es erst gar nicht versuchen. In der Firma haben wir deshalb dann wegen der Anbindung ans ECM-Archiv doch in den sauren Apfel gebissen und zu einer kommerziellen, aber dafür schnellereren und weeeiiit weniger Fehler-behafteten OCR-Lösung gegriffen.
Naja, welche Alternativen gibt es im Open Source Bereich denn? So schlecht sind meine Erfahrungen im Übrigen nicht. Mag sein, dass kommerzielle Lösungen besser sind.
Einfach nur geil, suche schon seit Jahren danach
Geniales Ding, danke für das Video!
Stirling PDF gibt es auch für Unraid, Die tesserect-Dateien liegen dort (standardmässig) im Ordner "/mnt/user/appdata/Stirling-PDF/OCR".
vielen Dank, das klang so verlockend, dass ich das Image frooodle/stirling-pdf-base:latest auf mein MacBook geladen habe. Anschließend habe ich dieses Image mit Docker-Scout (in Docker-Desktop 4.24 enthalten) gescannt. Das Ergebnis ernüchtert, wie bei vielen Docker Images: 628 packages mit 145 vulnerabilities, d.h. bekannte CVE‘s. Spitzenreiter ist pillow 8.1.2. Die meisten davon sind als „fixable“ gekennzeichnet. Wenn ich, Enduser ohne IT-Kenntnisse, diesen Scan durchführen kann, dann sollten das die Entwickler auch können. Da ich das Risiko nicht einschätzen kann, habe ich das Image wieder gelöscht, ohne den Container zu starten. Qualität anstatt Quantität in der SW-Entwicklung wäre mir lieber.
vielen Dank für deinen spitzen Kommentar. Ich habe auch ziemlich fragend geschaut als ich gesehen habe, dass das Image 1,4 GB groß ist. - Die eigentliche Kernfunktionalität mit den reinen PDF-Operationen ließe sich sehr viel kompakter lösen - sprich wenige Megabyte. Aber hier hat man sich vieler unterschiedlicher Werkzeuge (mit reichlich Abhängigkeiten) bedient und diese zusammengeklebt um eine größtmögliche eierlegende Wollmilchsau zu erzeugen.
Weniger ist manchmal mehr.
Eine schicke Browser-Oberfläche für einfache tools wie pdfcpu (in golang geschrieben und nur etwa 3-4MByte groß) hätte völlig ausgereicht.
Wer komplizierte Konvertierungen durchführen möchte, der sollte am besten das ursprüngliche Office-Program verwenden.
Sehe ich auch so. Dann lieber PDF24 mit insgesamt 324 MB und läuft auch lokal (aber nur Windows).
wow danke für den tipp, das ist echt nützlich
Hat super funktioniert, vielen Dank! Tolles Tool!
Das freut mich!
Mega, super danke. Gleich einmal getestet.
Viel Spaß damit!
Cooles Programm, super und DANKE
Sehr schön! Danke!
Kurze Anmerkung zu deiner Blogseite: In Zeile 29 ist ein kleiner Fehler: /traningdata anstatt /trainingdata.
Danke für den Tipp! Tolles Tool. Gibt es auch, für die Unraid User, im Appstore.
Super Video! Sehr informativ. Das Verzeichnis hast du „striling“ genannt 😅.
Mach weiter so. Deine Videos sind super hilfreich . 👍🏼
Da ist mir wohl ein Tippfehler unterlaufen.. Danke für den Hinweis! Ich habe es im verlinkten Code angepasst.
Top! Danke für's Video.
Gibt es auch die Möglichkeit zwei Dateien zusammenzufügen, wenn die erste alle geraden Seitenzahlen umfasst und die zweite rückwärts alle ungeraden? (Problem ergibt sich beim Scannen von Doppelseiten über den Schütter)
Das klingt richtig cool! Erstmal direkt als LXC installieren und austesten...
Viel Erfolg!
Gibt es vom Funktionsumfang einen Unterschied zum PDF24, was man ja zumindest auf dem eigenen Rechner installieren und dann nutzen kann. ?
PDF24 Creator ist nur für Windows. Auf einem Linux/MacOS ist PDF24 Creator nicht lauffähig.
Danke für das Video, wäre sonst leider an mir vorbeigegangen.
Die Konvertierung in Word funktioniert leider nicht, OCR overlay klappt nur die Konvertierung in Word nicht, anscheinend wird hierfür LibreOffice genutzt muss man dafür noch was einstellen damit das klappt ? Danke
Cool wäre noch eine Share-Funktion um es zb. an Paperless NGX weiterzuleiten. Paperless bietet ja defakto kaum PDF Operationen an. Mir würde schon reichen mehrere Seiten zusammenfassen zu können und Seiten zu ordnen.
Du könntest das neue pdf ja auf einem Netzlaufwerk speichern. Von dort dann per cron Job dann ins consume Verzeichnis verschieben.
Was wäre mit PDF24?
Das ist gut. Ich suche schon lange nach einem seriösen Tool zum PDF-Handling. qpdf ist nicht ganz so einfach zu bedienen.
Die DE Sprachdatei braucht man nicht mehr installieren, die Sprache kann man rechte oben bei der Weltkugel in der GUI auswählen welche man haben möchte. Auf jeden Fall sehr interessantes Projekt, habe es gleich mal am Server installiert zum testen. Top Video!
Die Sprachdatei ist für die Bild-zu-Text-Funktion.
@@ikemkrueger OK habe es gesehen, das bei OCR doch nur Englisch drin ist und man die Sprachdatei nach installieren muss!
Danke
Welche Vorteile bietet Stirling PDF gegenüber dem PDF24 bezogen auf den Funktionsumfang und den Tools ? Werden Signotec Unterschriften Pads für das Signieren unterstützt oder braucht man hier zusätzlich Treiber ?
Gutes Video, weiter so !
PDF24 Creator ist nur für Windows. PDF24 Tools sind Online auf einen fremden Server. Stirling PDF ist auf dem eigenen Server.
Welche Daten werden denn von PDF24 online hochgeladen? Laut Beschreibung "Sicherheit ist garantiert
Diese PDF24-App und auch alle anderen Apps funktionieren lokal auf Ihrem PC. Ihre Dateien verbleiben auf Ihrem Computer. Die Sicherheit Ihrer Dateien ist daher garantiert." bleit alles lokal auf dem PC. Ich konnte bisher alle Funktionen auch ohne Internetverbindung nutzen. @@anba2779
Vielen Dank für das Video! Leider kann man mit StirlingPDF keine PDFs mit Text und dgl. erstellen. Zumindest bin ich nicht dahintergekommen wie das funktionieren sollte ....
Lässt sich Stirling PDF in nextcloud integrieren?
Kann man Stirling PDF auf Docker-Portainer installieren?
Wird mit der Umwandlung PDF -> docx auch gleich eine OCR-Erkennung durchgeführt?
Konnte mir die Frage mit einer Testinstallation beantworten.
Es wird eine OCR-Erkennung durchgeführt, doch leider sind einzelne Wörter in Tabellenzellen "eingesperrt". Dies erschwert die Weiterbearbeitung natürlich enorm. Schade.
@@nockuno Wirst du überall haben. PDF in Word umwandeln war schon immer Murks.
@@Foxhunter_DE tatsächlich liefert Adobe PDF (Umwandung über deren Cloud) fast immer tadellose Ergebnisse. Eine Rechnung bspw. sieht dann quasi so aus, als wenn sie ursprünglich in Word geschrieben wurde.
@@nockuno Nutze es beruflich, es sieht so aus, ist aber nicht so zu bearbeiten - überall Tabellen und Zeilen etc. - Katastrophe.
Ist schon nice aber das Bearbeiten von PDFs ist hier nicht möglich. Also Texte ändern
Habe ich leider auch nicht gefunden. Wozu es dann installieren?
gibts das auch als Flatpak ?? ..
Vielleicht fügst du "Stirling PDF" der OpenSource Software Playliste hinzu?
Speichern speichern die PDFs auf meinem Server oder ist das nur für den Moment?
Die PDFs werden nicht auf dem Server gespeichert.
die ocr Datei runterladen klappt auch unter Unraid mit der Anleitung. Danke
danke für das tolle video.
Gerade installiert, kann man das auch über https absichern ?
Ja klar. Am besten über einen ReverseProxy.
Na ja so richtig pralle ist anders. Hat zwar einige Funktionen jedoch ein einfaches bearbeiten (Editor Funktion) habe ich nicht gefunden. Viellleicht bin ich ja auch nur blind.
kann es leider nicht installieren
Das ist ja doch eine außerhaus Version!
Cooles teil, aber leider hat das Image 1,4 GB - Ich hoffe es gibt da eine Alternative oder es kommt bald eine, idealerweise leichtgewichtig in golang.
Als wenn 1,4 Gb heute ein Problem wären....
Mehr als 640 Kilobyte braucht kein Mensch. 😂
Kannst Du es nicht bei Bekannten oder so runterladen?
Kannst Du es nicht bei Bekannten oder so runterladen?
Vielen Dank für das Video! OCR mit deutscher Sprache funktioniert nicht. Es erscheint der Fehler: „Internal Server Error: Command process failed with exit code 7“. Mit Englisch läuft es ohne Probleme. Was könnte das Problem sein?
java.io.IOException: Command process failed with exit code 7
at stirling.software.SPDF.utils.ProcessExecutor.runCommandWithOutputHandling(ProcessExecutor.java:192)
at stirling.software.SPDF.utils.ProcessExecutor.runCommandWithOutputHandling(ProcessExecutor.java:82)
at stirling.software.SPDF.controller.api.misc.OCRController.processPdfWithOCR(OCRController.java:151)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at stirling.software.SPDF.config.MetricsFilter.doFilterInternal(MetricsFilter.java:62)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:735)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:840)
Hallo! Ich habe auch Probleme mit OCR. Sobald ich z.B. die Datei "deu.traineddata" ins Verzeichnis "trainingData/" lege und den Container neu starte, gibt es Fehlermeldungen, und die Texterkennung funktioniert nicht. Interessant könnte neben den vielen "...at org.apache.catalina..."-Meldungen z.B. noch so was hier sein (docker-compose logs -f während eins Konvertierungsversuches):
stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] [DS] Profile read from file (tesseract_opencl_profile_devices.dat).
stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] [DS] Device[1] 0:(null) score is 0.200170
stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] [DS] Selected Device[1]: "(null)" (Native)
stirling-pdf | ERROR ocrmypdf._exec.tesseract - 1 [tesseract] Error opening data file /usr/share/tessdata/deu.traineddata
stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.
stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] Failed loading language 'deu'
stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] Tesseract couldn't load any languages!
stirling-pdf | INFO ocrmypdf._exec.tesseract - 1 [tesseract] Could not initialize tesseract.
stirling-pdf |
stirling-pdf | ERROR ocrmypdf._pipelines._common - ExitCodeException
Kann jemand helfen?
Ansich eine gute Idee sowas nicht immer über Dienste wie pdf24 (die mit dem Schaf) zu machen, aber bei OCR ausgerechnet auf Tesseract zu setzen macht zumindest den OCR-Einsatz fragwürdig. Tesseract ist die langsamste und schlechteste OCR-Lösung, da reicht manchmal schon, wenn der ADF-Scanner eine Seite zwischendurch mal mit 2mm Versatz "schräg" eingescannt hat und es kommt nur noch Grütze dabei heraus, bei "dicken" also im Scan "krummen" Buchseiten braucht man es erst gar nicht versuchen. In der Firma haben wir deshalb dann wegen der Anbindung ans ECM-Archiv doch in den sauren Apfel gebissen und zu einer kommerziellen, aber dafür schnellereren und weeeiiit weniger Fehler-behafteten OCR-Lösung gegriffen.
Naja, welche Alternativen gibt es im Open Source Bereich denn? So schlecht sind meine Erfahrungen im Übrigen nicht. Mag sein, dass kommerzielle Lösungen besser sind.