Seite 1 von 2

JRScan

Verfasst: 27.10.2025 00:11
von Jens-Arne
Hallo zusammen,

ich habe mir mit PureBasic ein Scanprogramm geschrieben, das möglichst schmal gehalten und trotzdem funktionsreich sein sollte. Vielleicht kann der eine oder andere das ja gebrauchen. Die dafür verwendeten externen Bibliotheken sind DTwain und FreeImage. Für PDF+OCR ist Tesseract erforderlich, für das Öffnen und Weiterverarbeiten von PDFs GhostScript. Download-Links sind in der Anleitung verfügbar.

Download: http://www.kanzlei-reumschuessel.de/Upd ... JRScan.exe - bitte URL herauskopieren und in einem neuen Browserfenster eingeben oder Rechtsklick und "Ziel speichern" wählen, ein direkter Klick scheint nicht zu funktionieren.

Features:
- TWAIN- und WIA-Scanner-Unterstützung 32- und 64-bit
- Ausgabe der gescannten Seiten in diversen Formaten:
  - PDF
  - PDF+OCR, sofern Tesseract installiert ist (https://github.com/UB-Mannheim/tesseract/wiki); das ist die beste freie OCR-Engine, die ich kenne
  - BMP
  - JPG
  - PNG
  - GIF
  - Animated GIF
  - TGA (TARGA)
  - einseitiges TIF
  - mehrseitiges TIF
- Rückseiten manuell oder automatisch (wenn vom Scanner unterstützt) scannen
- leere Seiten erkennen und automatisch löschen - insbesondere bei Rückseitenscans nützlich
- diverse Bearbeitungsfunktionen:
  - Seiten drehen
  - Seiten verschieben
  - Seiten entfernen
  - Seiten invertieren
  - Farbtiefe ändern (z.B. insbesondere schwarzweiß-gedithert, um Graustufen mit möglichst kleiner Dateigröße zu simulieren)
  - Seiten automatisch begradigen
  - Seiten in externem Editor bearbeiten (standardmäßig MS-Paint [nur unter WIn11 getestet], es können weitere Editoren hinzugefügt werden)
  - Scan bei Multipage-Zielen (z.B. PDF) in mehrere Dateien aufteilen
  - Flatfield-Korrektur (Kratzer im Vorlagenglas, Verschmutzungen im Einzelblatteinzug, Farbstiche des Scanners entfernen)
  - Seiten entgrauen (z.B. Zeitungsvorlagen oder aus externen Dateien geöffnete Handyfotos von Dokumenten, die fast immer zu grau sind)
- statt Scannen bereits vorhandene Grafikdateien laden, ggf. bearbeiten und im gewählten Zielformat speichern (z.B. JPGs zu PDF+OCR)
- automatischer Update-Checker vorhanden

Ich empfehle, die 32bit-Version zu installieren - das Installationsprogramm gibt einem die Wahl. Auch heute noch (2025) sind die allermeisten TWAIN-Treiber in 32bit geschrieben. Die einzige Ausnahme, die ich kenne, ist der Epson EcoTank. Wenn man also die 64bit-Version installiert, werden die meisten Scanner leider heutzutage noch nicht sichtbar sein. Hat man es trotzdem getan, kann man aber im Programm auf die 32bit-Version wechseln (Menüleiste ganz rechts).

Über das Menü "Hilfe" ist eine Anleitung verfügbar, deren Lektüre ich dringend empfehle, um das Programm über die reine Scanfunktion hinaus sinnvoll nutzen zu können.

Ich hatte das Programm vor einigen Wochen schon einmal hochgeladen, dann aber wieder entfernt, weil noch zu viele Bugs enthalten waren. Die sollten jetzt behoben sein. Wenn trotzdem noch etwas klemmt, bitte gerne melden, genauso dann, wenn es Wünsche nach weiteren Features gibt, die man hinzufügen könnte.

Beste Grüße, Jens-Arne

Re: JRScan

Verfasst: 27.10.2025 10:05
von dige
Hallo Jens-Arne,

in einem ähnlichen Projekt arbeite ich derzeit mit dem Onbord OCR von Windows (https://www.purebasic.fr/english/viewto ... 12&t=77835)
und wollte mal testen, wie gut TesserAct im Vergleich zum Windows OCR oder einem LLM ist.

Beim installieren von JSScan ist mir aufgefallen, dass sich der Installer keine Admin Rechte holt, um ins Program Files Verzeichnis schreiben zu können.
Dann hätte ich noch eine Bitte, könntest du in deinen Option die Pfad Angabe zu Tesseract mit aufnehmen. Ich habe es noch nicht zum Laufen bekommen, da scheinbar die Umgebungsvariablen nicht vorhanden sind.

Beste Grüße

DIge

Re: JRScan

Verfasst: 27.10.2025 10:52
von Jens-Arne
Hallo dige,

im Grunde genommen prüft JRScan die speziellen Umgebungsvariablen von Tesseract gar nicht. Es muss allerdings in der allgemeinen Pfad-Umgebungsvariablen eine Angabe zum Installationsstandort von Tesseract vorhanden sein, das prüft JRScan schon.

Hier das, was ich mir dazu mal aufgeschrieben hatte:
PATH --> Tesseract-Pfad hinzufügen
TESSDATA_PREFIX --> auf das Unterverzeichnis tessdata von Tesseract setzen (sonst werden andere Sprachen als englisch nicht erkannt)
OMP_THREAD_LIMIT=1 --> optional: erzwingt die Nutzung nur eines Prozessorkerns (wenn der Prozessor weniger als 4 Kerne hat [kann man mit cpu-z herausfinden], ist die standardmäßige Multiprozessorverarabeitung sehr langsam)

Und so sähe ein typischer Aufruf aus:
tesseract input.tif output -l deu pdf --> erzeugt ein mehrseitiges durchsuchbares PDF "output.pdf" (wenn die TIF-Datei mehrseitig ist)

Beste Grüße, Jens-Arne

Re: JRScan

Verfasst: 27.10.2025 10:55
von Jens-Arne
Und was die Admin-Rechte angeht: Der Installer ist jetzt so angepasst, dass er sie anfordert.

Allerdings mag das ja nicht unbedingt jeder. Ich frage mich daher, ob es nicht doch besser wäre, wenn das jeder selbst entscheiden könnte (Rechtsklick --> als Administrator ausführen). Was meint Ihr?

Re: JRScan

Verfasst: 27.10.2025 17:47
von Axolotl
Dein Link im ersten Post ist falsch...
Tipp: Einfach mit der Maus drüber, dann zeigt er dir in der Statuszeile an, dass da ein https://www.purebasic.fr/german/ zuviel ist.
Jens-Arne hat geschrieben: 27.10.2025 10:55 Was meint Ihr?
Nun ja, die Installation in C:\Program Files od. ähnlich ist ja M$ Windows konform, dafür braucht man (das Setup-Programm) eben die erforderlichen Rechte. Wenn man es anders macht und alles nach z.B. C:\APPs oder ähnlich installiert, kopiert, extrahiert, dann braucht man das (natürlich) nicht.

Es kommt also auch darauf an wer die Zielgruppe ist?
Wenn es das Installationsprogram zulässt, kann man auch ohne das Admin-Privileg starten und es später dann "hinzufügen".
In Purebasic Apps würde man das vielleicht so machen...

Code: Alles auswählen

Procedure.i RelaunchAndElevate(Param$="")                                    ; (re)launch as elevated user 
  Protected info.SHELLEXECUTEINFO, exe$ 

  exe$ = ProgramFilename()  
  info\hwnd         = GetForegroundWindow_() 
  info\cbSize       = SizeOf(SHELLEXECUTEINFO) 
  info\lpVerb       = @"runas" 
  info\lpFile       = @exe$ 
  info\lpParameters = @Param$ 
  info\nShow        = #SW_SHOWNORMAL 
  ProcedureReturn ShellExecuteEx_(info)    ; returns #True if succesful 
EndProcedure 

Re: JRScan

Verfasst: 27.10.2025 18:40
von Jens-Arne
Wenn ich den ersten Eintrag editiere, wird die URL so angezeigt:
"Download: {url}www.kanzlei-reumschuessel.de/UpdateChec ... n.exe{/url}" - allerdings natürlich eckige statt geschweifter Klammern
Das sollte doch eigentlich korrekt sein. Wie kommt denn dann der PureBasic-Teil dazu?

EDIT: Es lag daran, dass ich das "http://" davor weggelassen hatte. Nun ist der Link korrekt, danke für den Hinweis.

Re: JRScan

Verfasst: 27.10.2025 18:46
von Jens-Arne
Es kommt also auch darauf an wer die Zielgruppe ist?
Naja, wer immer das Programm nützlich finden könnte. Das ist kein kommerzielles Projekt oder so. Ich benutze das Programm täglich im Büro und habe es mir geschrieben, weil alles andere, was ich da probiert habe, entweder nichts kann oder zuviel kann und daher viel zu lange zum Starten braucht und/oder viel zu kompliziert in der Bedienung ist.

Re: JRScan

Verfasst: 27.10.2025 20:28
von HeX0R
Ich halte mich an die Regel:
Installer nur, wenn unbedingt nötig, sprich, wenn das Programm Änderungen in der Registry vornehmen müsste oder sonst einen lowlevel Kram benötigt.
Da wir ja hier in einem Programmierforum sind, kann man davon ausgehen, dass die Leute hier auch noch einen Shortcut selbst anlegen könnten.
Ansonsten lange ich Setups von mir unbekannten Autoren eher nicht an.
Das hat auch nix mit Aluhut zu tun, ich möchte aber nun mal nicht jedem Teil Adminrechte geben, egal ob nur bei der Installation.

Re: JRScan

Verfasst: 27.10.2025 23:15
von Jens-Arne
Dachte ich mir, und das ist ja auch vernünftig. Der Installer fordert jetzt wieder keine Adminrechte an. Da aber eine ganze Reihe von Dateien installliert werden müssen, ist ein solcher die einfachste Art, die Dateien auszurollen. Die Registry wird dabei nicht verändert, bis auf die Einträge für die Reinstall-/Uninstall-Routine.

Re: JRScan

Verfasst: 28.10.2025 10:12
von dige
Ich würde eher danach gehen, wer ist meine Zielgruppe?

Wenn das Programm nur hier im Forum vorgestellt werden soll, wäre eine Zip Datei das Mittel der Wahl.

Ansonsten ist es ja so, dass Windows Software grundsätzlich im "geschützten" Ordner "Programm Files" installiert werden soll, wofür es Admin Rechte bedarf. Damit kommen die Nutzer klar, denke ich.

Es ist aber nicht unbedingt nachvollziehbar, dass der Installer einfach abbricht mit einer Fehlermeldung.
Auf die Idee zu kommen, dass man eigentlich Admin Rechte benötigt und sich auch noch selbst darum kümmern muss, dürfte die meisten überfordern.

Das beste wäre eigentlich, zu checken wohin der Nutzer das Tool installieren will, und nur bei Bedarf Admin Rechte anfordern.

Falls Du InnoSetup nutzt, kannst du bspw. PrivilegesRequiredOverridesAllowed=dialog verwenden.