Seite 1 von 1

Steuercodes mit Qt an Drucker senden

Verfasst: 20. März 2009 13:59
von NoRulez
Hi @all,

in meinem Python "Test" Skript schicke ich verschiedene Drucker steuercodes und funktioniert wunderbar

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

def main():
    try:
        prn = open("/dev/usb/lp0", 'wb')
        # Initialize
        prn.write("\x1B\x40")

        # Cut paper
        prn.write("\x1D\x56\00")
        prn.close()
    except IOError:
        print "Drucker ist nicht schreibbar"

if __name__ == "__main__":
    main()
Ich würde das ganze gerne mit Qt lösen, jedoch scheint es mit QByteArray und QFile bzw. QTextStream und QDataStream nicht zu funktionieren, was heißt das der Drucker gar nichts tut.

Code: Alles auswählen

    const char prnInit[] = {0x1B, 0x40};
    const char prnLineFeed[] = {0x0A};
    const char prnCutPaper[] = {0x1D, 0x56, 0x00};
    QFile prnDev("/dev/usb/lp0");

    if (!prnDev.open(QIODevice::WriteOnly)) {
        m_ui->labelMessage->setText(m_ui->labelMessage->text() + "Can't write to printer device\n");
        return;
    }
    prnDev.write(prnInit);
    prnDev.write(prnCutPaper);
    prnDev.close();
Kann mir jemand sagen wie ich das am besten mit Qt realisiere?

Vielen Dank im Voraus

LG NoRulez

Verfasst: 29. September 2009 16:39
von ms47
Hi,

auch wenn es etwas spät ist, aber vielleicht interessiert es ja doch jemanden:
das geht mit file.write(QByteArray)

Code: Alles auswählen

QFile file( "/dev/lp0" );
if( !file.open(QIODevice::WriteOnly) )
{
    return;
}
file.write( QByteArray::fromHex("1B40") ); //init printer
//die Hex-Werte werden nicht in \x1B sondern in 1B direkt angegeben
//weitere Kommandos
file.flush();
file.close();
Habe das letzte Tage so auf nen parallelen Drucker realisiert.

Gruß
Markus

Verfasst: 29. September 2009 17:03
von NoRulez
Herzlichen Dank

LG NoRulez

Re: Steuercodes mit Qt an Drucker senden

Verfasst: 10. Dezember 2012 16:22
von Aenni
Hallo zusammen,

entschuldigt, dass ich den alten thread raushole - aber ich würde gerne an einen usb Drucker steuercodes senden. Das obige Beispiel schickt die Steuercodes an /dev/lp0 (das ist meines Wissens Linux Only) nun ist die Frage wie ich in Windows die Steuercodes an den USB Port schicke? Ist dies überhaupt so einfach via file möglich? SUFU und Google haben mir leider nicht geholfen.

Danke im Voraus!