(wx, C++): Rohdaten an Windows Drucker senden?

Gast #250692
Lesenswert?

Hallo Profis,

ich suche nach einer Möglichkeit, Rohdaten (Prescribe Befehle) an
meinen Kyo FS-1020D Drucker (USB/Parallel) zu senden.

Ich habe schon ein kleines GUI mit wxWidgets gebaut, und würde am
liebsten damit weiterarbeiten, da die Druckerauswahl schon als Widget
vorhanden ist.

Leider habe ich bislang noch keine Information darüber finden können,
wie sich reine ASCII Daten an den Drucker senden lassen. Weiß jemand,
wie das gehen könnte, oder hat andere Vorschläge (Sprache,
GUI-Toolkit)? Kann QT sowas?

Zur Not könnte ich den Drucker auch am Parallelport betreiben, da
sollte mein Vorhaben doch einfacher sein, oder?

Gestresst, leif
Persönliche Seite #250694
Lesenswert?

Das sollte so gehen:

Drucker als Netzwerkdrucker freigeben

und -beispielsweise- in der Konsole ("Eingabeaufforderung") folgendes
eingeben:

  dir > \\rechnername\druckerfreigabename

oder

  copy testdatei.txt \\rechnername\druckerfreigabename

(wenn Steuerzeichen enthalten sind, ist ein Anhängen von /b hilfreich)

So kannst Du Deine "Prescribe Befehle" auch erstmal zu Testzwecken in
eine Datei schreiben und diese so auf den Drucker ausgeben.

Mit dem UNC-Namen "\\rechnername\druckerfreigabename" kannst Du
auch mit normalen Dateizugriffsfunktionen (fopen etc.) aus Deinem
Programm heraus auf den Drucker zugreifen.

Der "Umweg" über Netzwerkfreigabe/UNC-Namen ist sicherlich auch nicht
erforderlich, nur verwende ich keine lokal angeschlossenen Drucker und
müsste etwas Nachforschung für die genaue Syntax anstellen.

Allerdings stellt sich bei solchen "Lösungen" die Frage, ob es
wirklich sinnvoll ist, mit dem Drucker auf dieser direkten Ebene zu
kommunizeren; sobald der Drucker durch einen anderen ersetzt wird, der
mit einer anderen Druckersteuersprache (PCL, Postscript etc.)
angesteuert wird, ist Deine Anwendung mindestens zu überarbeiten.
Gast #250696
Lesenswert?

Tausend Dank! Danke! Ahh.

Nachdem das Dateiumleiten (natürlich ;) geklappt hat, bin ich auf
codeproject.com auf einige interessante Berichte gestoßen, wo ich das
mit dem 'Netzwerktrick' gesehen habe. So ganze wollte ich es nicht
glauben, aber wenn Rufus es sagt, wird es stimmen und funktionieren.

Das Programm ist wirklich winzig und soll nur Etiketten mit vom Drucker
erzeugten PDF 417 Barcodes bepflastern. Das könnte man natürlich auch
alles in Software machen/kaufen, aber das lohnt sich für mich nicht.

@ Stefan:
Du meinst vermutlich http://www.lerup.com/printfile/ ..
Ja, wäre vielleicht auch eine Möglichkeit das Programm dann mit nem
Systembefehl aufzurufen.

Ich probier's mal über die Netzwerkfunktion, wenn das klappt wäre ich
ein Stück froher..

Überschwenglichsten Dank an Euch!
Gast #250698
Lesenswert?

So, leider kommt

C:\>copy /b print \\leif\kyocera1
Das Netzlaufwerk ist nicht erreichbar. Weitere Informationen üb...
on Netzwerkproblemen finden Sie in der Windows-Hilfe.
        0 Datei(en) kopiert.

Firewall aus, ich kann mich sogar im Explorer sehen, wenn ich meinen
eigenen Rechner suche, freigegeben ist er.

Läßt sich die Verbindung irgendwie testen?
#250702
Lesenswert?

> Ich weiß nicht, ob das gültiges C++ ist

AFAIK ist es gültiges C++, sofern du "#include <cstdio>" und "using
namespace std;" (oder ein äquivalentes "using") irgendwo oben drüber
stehen hast. Pfadangaben sind soweit ich weiß nicht vom C++-Standard
genormt.

Funktionieren wird es mit diesem Pfad vermutlich trotzdem nur unter
Windows.

btw, für I/O benutzt man in C++ eher streams (Stichwort <fstream>).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren