gin0ri
Goto Top

Drucken aus Dos-Anwendung mit Kassettenansteuerung

Hallo erstmal.

Ich versuche seit Tagen aus einer Dos-Anwendung auf das die 2te Papierkassette zu drucken. Jedoch ohne Erfolg.

Ich habe es mit Fineprint versucht, aber hier ist das Problem, das Fineprint nicht die rohe PCL-Datei an den Drucker weitergibt. Dies ist jedoch erforderlich.

Ich habe mir auch RedMon angeschaut, jedoch komme ich hiermit nicht weiter.

Ich weiß echt nicht weiter

Content-Key: 159912

Url: https://administrator.de/contentid/159912

Printed on: April 19, 2024 at 17:04 o'clock

Member: StefanKittel
StefanKittel Feb 01, 2011 at 22:25:43 (UTC)
Goto Top
Hallo,

DOS, Win16 oder Win32? Eine Text GUI muss nicht DOS sein.
Drucker lokal,Netzwerk? Hersteller/Modell?

Du schreibt wenig über das System, also rate ich mal ein bischen.
DOS = Drucken auf LPT1 (2 oder 3)

- Installier der Drucker unter Windows
- Ändere die Standardeinstellungen so, dass er immer auf die 2. Kassette druckt
- Gibt den Drucker frei
- Verbinde einen LPT Port mit dieser Freigabe (net use lpt1: \\hostname\drucker)

Alternativ drucke in eine Textdatei und drucke diese mit dem Befehl print.

Stefan
Member: gin0ri
gin0ri Feb 02, 2011 at 06:50:58 (UTC)
Goto Top
DOS, Win16 oder Win32? Eine Text GUI muss nicht DOS sein.
Drucker lokal,Netzwerk? Hersteller/Modell?
-Drucken richtig aus Dos
-Netzwerkdrucker mit Druckerfreigabe (Sharp AR-M207)

Du schreibt wenig über das System, also rate ich mal ein bischen.
DOS = Drucken auf LPT1 (2 oder 3)
-wenn ich auf LPT1 2 oder 3 drucke, geht der Druck ohne PCL Befehl für Kassettensteuerung zum Drucker

Ich muss quasi irgendwie den Druckstrom abfangen und den PCL Behfel für die 2te Kassette einfügen und dann zum Drucker weiterschicken... nur wie ???
Member: StefanKittel
StefanKittel Feb 02, 2011 at 06:58:23 (UTC)
Goto Top
Moin,

hast Du meine Lösung denn ausprobiert?

Stefan
Member: Softprogger
Softprogger Feb 02, 2011 at 08:04:55 (UTC)
Goto Top
Morgen,

wenn der Datenstrom des DOS-Programms unverändert auf den Drucker geleitet werden soll, geht das ganz einfach:
1. Generic Drucker Text/only unter Windows installieren mit passendem Anschluß für den Ausgabedrucker.
2. Diesen Drucker freigeben
3. per net use LPTx: \\Rechnername\Freigabename /persistent:yes an den Ausgabeport des DOS-Programms binden.

Macht jetzt DOS einen Ausdruck wird von LPTx über den Text only-Treiber der Datenstrom unverändert an den Drucker gesendet.

Gruß Softprogger
Member: gin0ri
gin0ri Feb 02, 2011 at 08:55:14 (UTC)
Goto Top
@StefanKittel

Welche Lösung meinst du?
Was du gesagt hast, habe ich ja so schon versucht, jedoch druckt Dos ja direkt auf den Drucker, ohne die Einstellungen des Treibers zu berücksichtigen.
_________________________________________________
@Softprogger

Ich muss doch aber den Druckstrom verändern können, denn ich muss irgendwie die Kassettensteuerung hinein bekommen.
Member: StefanKittel
StefanKittel Feb 02, 2011 at 09:08:19 (UTC)
Goto Top
Zitat von @gin0ri:
Was du gesagt hast, habe ich ja so schon versucht, jedoch druckt Dos ja direkt auf den Drucker, ohne die Einstellungen des
Treibers zu berücksichtigen.
Das sollte nicht so sein, da über die Netzwerkumbiegung der Druckauftrag ja durch den Druckertreiber läuft und von dem auch die Standard-Druckereinstellungen bekommt.
Wenn Du an einem anderen PC dieses Drucker normal unter Windows installierst druckt er dann auf das richtige Fach?

Für welchen Druckertyp ist Dein Druckauftrag denn konfiguriert? Plain-Text, Nadeldrucker, PCL?
Evtl. überschreibt Dein Auftrag die Einstellungen und Du kannst in der Software was anderes auswählen.

Sonst könntest Du die der Anleitung von Softprogger folgen, aber als Anschluss Datei auswählen.
Mittels redmon könntest Du die Datei dann "aufnehmen", verändern und an den Drucker (per Copy an den LPT Port) schicken.

Stefan
Member: Softprogger
Softprogger Feb 02, 2011 at 09:23:35 (UTC)
Goto Top
Das muß schon das DOS-Programm erledigen!
Mal nen Happen DOS und dann wieder nen Happen Windows geht nicht.
Wie Du ja geschrieben hast, druckt das DOS mit einem PCL-Datenstrom, da müssen die Steuercodes für die Schachtauswahl eingebettet sein, genauso also ob PCL verschiedene Schriften oder Stile verwenden soll.
Member: gin0ri
gin0ri Feb 02, 2011 at 13:19:12 (UTC)
Goto Top
@Softprogger
Leider kann ich in der Dos-Anwendung nichts ändern. Kann ich nicht irgendwie den Druckstrom "abfangen" und den Befehl für die Kassettensteuerung hinzufügen und dann zum Drucker weiterleiten???

@steffankittel
Druckauftrag ist PCL
Member: Softprogger
Softprogger Feb 02, 2011 at 13:36:30 (UTC)
Goto Top
Nun kenne ich die DOS-Anwendung nicht. Aber wenn's halbwegs professionell gemacht ist, dürfte es eine Druckereinrichtung in dem Programm geben(zu DOS-Zeiten wurde ja die Druckeranpassung nicht über Druckertreiber sondern über Einstellungen im Programm selbst getätigt, z.B. EPSON,IBM,HP o.ä.). Wenn es echt gut gemacht ist, kann man die Parameter für Schriften, Attribute u. ä. dort selbst hinterlegen. Sicher ist dann auch eine Initialisierung dabei, wo man die Auswahl einer Kassette treffen könnte.
Leider hast du bisher nicht beschrieben, wann die Kassettensteuerung eingreifen soll, z.B. 1.Seite Kassette1, folgende Seiten Kassette2 oder so.
Falls das Programm nicht so komfortabel sein sollte, kannst Du den Genericdrucker natürlich auch mit einem Dateiport als Anschlußerstellen. Dann geht der PCL-Datenstrom in eine Datei, die du manipulieren kannst. Die manipulierte Datei kann dann per copy-Befehl auf den Druckeranschluß kopiert werden und wird gedruckt.
Member: gin0ri
gin0ri Feb 02, 2011 at 13:56:25 (UTC)
Goto Top
@Softprogger
leider kann ich in dieser DOS-Anwendung nichts einstellen. Aber das was du mit dem Dateiport meinst, war auch mein gedanke. Aber wie bekomme ich es hin, das der Druck automatisiert abgefangen wird, der Kassettenbefehl hinzugefügt und dann auch automatisiert zum Drucker geschickt wird?
Member: Softprogger
Softprogger Feb 02, 2011 at 14:11:05 (UTC)
Goto Top
Da wirst du wohl ein wenig programmieren müssen!
Der Dateiport könnte ja ein neuer Localport sein der als Ziel einen Pfad+Datei hat, z.B. C:\Drucker\Druck.txt; Das Verzeichnis C:\Drucker muß dabei existieren!
Dann wird ohne jeden Dialog durch den Ausdruck immer eine neue Datei Druck.txt erzeugt. Das zu erstellende Proggi muß zyklisch auf das vorhandensein dieser Datei testen. Ist eine da, mußt Du feststellen, ob sie sich exclusiv öffenen lässt (also der Ausdruck vom DOS beendet ist). Dann wird sie manipuliert und auf den LPTx kopiert und anschließend gelöscht.
Member: gin0ri
gin0ri Feb 02, 2011 at 14:18:11 (UTC)
Goto Top
Leider kann ich nicht so gut Programmieren.
Das einzigste was ich so ein bisschen kann ist batch Dateien schreiben. Jedoch komme ich bestimmt nicht mit einer Batch-Datei nicht zurecht oder?

Wie müsste das Programm den ungefähr aussehen??
Member: Softprogger
Softprogger Feb 02, 2011 at 14:48:08 (UTC)
Goto Top
Mit einer Batch allein wird das nix!
Da wirst Du kaum das exklusive Öffen der Datei testen können.
Auch das dem Prinzip zugrunde liegende Timing dürft nicht in den Griff zu bekommen sein.

Da wirst Du Dich dann wohl an einen bezahlten Profi wenden müssen, leider.
Member: Jochem
Jochem Feb 03, 2011 at 17:05:59 (UTC)
Goto Top
Moin,

- guggel (hier Suchmaschine der Wahl eintragen) mal nach Programmen, die eine Umleitung von LPT1 nach File machen, z. Bsp. lpt2prn oder lpt2file
oder
- drucke aus der DOS-Anwendung in eine Datei
- such Dir aus dem PCL-Befehlssatz die Steuersequenz für das zweite Papierfach
- such Dir aus dem PCL-Befehlssatz die Steuersequenz für einen Drucker-Reset
- editier die gefundenen Steuersequenzen jeweils in eine separate Batch-Datei
- erstelle eine weitere Batch Datei, in der
- zunächst ein Reset an den Drucker gesendet wird,
- dann die Auswahl für den zweiten Schacht
- dann die vom DOS-Prog erstellte Druckausgabe-Datei
- und schlußendlich noch einmal ein Reset
Wenn nun die letzgenannte Batch-Datei ausgeführt wird, erfährt der Drucker per Steuersequenz einen Reset, zieht ein Blatt aus Schacht 2, druckt die Datei und macht zum Abschluß noch einen Reset, damit der Drucker wieder in einen definierten Ausgangszustand versetzt wird.

Wenn Du das Ganze nun noch mit einer Abfrage kombinierst, die herausfinden soll,
- ob in einem bestimmten Verzeichnis eine Datei existiert
- wenn das der Fall ist, die o.a. Batch-Datei ausführt
- die gefundene Datei löscht
- und eine festgelegte Zeitspanne wartet, bis sie wieder startet
dann solltest Du das Problem gelöst haben.

Gruß J face-smile chem

Nachtrag:
Du kannst natürlich auch die Steuersequenzen und die Druckdatei in eine Datei packen, per copy datei+datei2+datei3+datei4 datei5