Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Aus entfernter DOS-Anwendung heraus auf dem lokalen Drucker drucken

Anleitung Linux Linux Netzwerk

Mitglied: sivale

sivale (Level 1) - Jetzt verbinden

14.03.2009, aktualisiert 19.11.2009, 12067 Aufrufe, 5 Kommentare

hallo,

in meiner Firma läuft schon seit 2 Jahrzehnten ein Clipper Programm,
dessen Haupaufgabe es ist, Buchungen für Beförderungsleistungen
zu tätigen und zu verwalten.

Das Programm und die DBF Dateien sind auf einem Server im LAN über
NetWare erreichbar.

Es sollen auch Buchungen von ausserhalb für die Agenturen ermöglicht werden.

Mit Ach und Krach so gelöst:

Ein Linuxserver ins LAN eingehängt,

ncpmount auf das NetWare Verzeichnis in dem das Programm sitzt.

* Nachtrag *
mcpmount ist eine schlechte Lösung. Es kommt zu ernsthaften
Problemen mit dem File Locking. Beim gleichzeitigem Zugriff von
Dos und Linux aus werden Datenbankeinträge teilweise
überschrieben. Ich werde die Lösung aus:
/usr/share/doc/dosemu/NOVELL-HOWTO.txt.gz
ausprobieren und berichten wie es damit funktioniert.
* Nachtrag Ende *

DOSemu Installiert.

Mount als Laufwerk in der DOSemu eingebunden.

Neuer User "agentur" angelegt.

Zugriff auf Rechner vom Internet aus mit SSH. (Putty von Windows aus).

Damit die Agenturen nicht in die Verzeichnisse reinkommen startet der
sshd beim Login direkt DOSemu mit einer batch-datei als Argument
mit der das Clipper Programm direkt gestartet wird und nach dem
Verlassen des Programms die DOSemu geschlossen wird.

Jetzt aber wäre es wünschenswert, wenn die Agenturen auch
ihre Rechnungen selber LOKAL drucken könnten. Wie kann ich
das machen ? Zu bedenken ist, dass gleichzeitig mehrere
Agenturen eingeloggt sein könnten.

Danke im Voraus

[Edit Biber 18.3.2009] .... und Danke im Nachhinein. "Beitrag" zur "Anleitung" umgestuft. [/Edit]
Mitglied: sivale
18.03.2009 um 10:52 Uhr
Problem gelöst !

Das Schlüsselwort heißt: "pass through printing"
Manche sagen auch "terminal printing"
Manche auch "transparent printing"

--excurs--

Wie funktioniert das ?

Theorie:

Das ist eine Technik die noch aus den Tagen stammt als es keine PCs gab und Mainfraimrechner über echte Terminale gesteuert wurden. Wenn man Text in so einem Terminal eintippt, dann sieht es nur so aus als ob dieser direkt auf dem Bildschirm eingegeben wird. Tatsächlich werden die Zeichen zuerst zum Rechner gesendet. Der Rechner versieht dann den Text zusätzlich mit "escape sequences" (Steuerbefehle für Darstellung von Text und Cursor im Client u. noch viel mehr ) und sendet diese zurück zum Terminal. Im Terminalbildschirm wird dann der Text entsprechend dargestellt. Diese Steuerzeichen können auch dafür verwendet werden, um einen Text der normalerweise auf die Standarteingabe gesendet wird, direkt auf den Drucker auszugeben. So ähnlich funktioniert das auch Heute noch.

Praxis:

Man baut über eine Terminal-Emulation (Win: Putty etc., Linux: xterm etc. ) eine Verbindug zu einem entferntem Rechner per SSH auf. Gibt man auf dem Terminal folgenden Text zusammen mit den "escape sequences" ein, erfolgt die Ausgabe auf dem Drucker:

printf "\033[5i\c"; mein Text der gedruckt wird; printf "\033[4i\c".

--excursende--

Meistens klappt so etwas nicht auf Anhieb. Der Client muss noch konfiguriert werden. So war es zumindest bei mir sowohl unter WindowsXP als auch unter Ubuntu 8.10

Konfiguration.:

Putty:
Unter dem Menüpunkt Terminal den angeschlossenen Drucker auswählen
Passenden Zeichensatz auswählen - bei mir utf8.

xterm:
vim .XResources
i
xterm*printerCommand: lpr -PLaserJet 2100M # eigenen Drucker angeben
xterm*printAttributes: 0
xterm*printerFormFeed: false
xterm*printerAutoClose: true
xrdb -merge .Xresources
ESC
:wq

Nachtrag:
es müssen noch weiter Optionen gefunden werden weil sonst der Drucker evtl. Steuerzeichen mitdruckt.
Die codierung sollte auch festgelegt werden.

Gnome-Terminal:
laut bugs.launchpad.net BUGREPORT 234518 nicht möglich

Console:
Option mit Absicht nicht möglich.


Nach dem Einrichten der Clients hat dann auch der Ausdruck des obigen Einzeillers geklappt.
Bei späterem Druck von Dokumenten aus der Anwendug konnte nur Putty (für Windows) richtig drucken.
xterm muss noch weiter konfiguriert werden. Die Konfiguration wird nachgetragen sobald ich sie gefunden habe.

Die verwendeten Drucker:

HP LaserJet 1200: geht
HP DeskJet 6122: geht
HP LaserJet 2100M : geht.
Epson LQ 580 Nadeldrucker: geht.

Über die direkte Eingabe der "escape sequnces" kann man auch Dateien drucken, ist aber etwas umständlich.. Um es komfortabler zu machen kann man das Programm "vtprint" installieren. Damit kann man eine Datei als Argument angeben und sofort lokal ausdrucken.

Jetzt muss nur noch der Druck aus dem DOS Programm eingestellt werden. Dafür reichte bei mir ein einziger Konfigurationseintrag in /etc/dosemu/dosemu.config
statt:
  1. $_lpt1 = "lpr -l"
eingegeben:
$_lpt1 = "vtprint"

Damit wird die Druckausgabe, die mein DOS Program an LPT1 sendet, einfach auf einen beliebiges Programm oder Script umgebogen. Ziemlich praktisch - so etwas. Damit eröffnen sich unzählige weitere Anwendungsmöglichkeiten.

Und jetzt klappt's auch mit dem lokalen-drucken-vom-remote-host. Natürlich nur mit Textdateien/streams aber das gibt mein DOS-Programm auch aus.

Ich weiss nicht ob das eine gute, geschweige denn eine sichere Lösung ist. Nachmachen auf eigene Gefahr.
Bitte warten ..
Mitglied: Biber
18.03.2009 um 11:05 Uhr
Moin sivale,

danke für diese Lösung!

Ich stufe diesen Beitrag mal um zur "Anleitung".

Sehr gut.

Danke
Biber
Bitte warten ..
Mitglied: 16568
14.11.2009 um 14:17 Uhr
ÖHM, lieber Biber,

kann das sein, daß das Verschieben vielleicht schief gegangen ist?

Kategorie Job???


Lonesome Walker
(der gerade Beiträge archiviert für ein Weihnachts-Special...)
Bitte warten ..
Mitglied: Biber
14.11.2009 um 23:18 Uhr
Moin Lonesome Walker,

da hast du natürlich Recht.
Das Verschieben des Beitrags ist mir sicherlich versehentlich passiert beim "Umstufen" zur Anleitung.
Allerdings... nächstes Problem - ich habe keine Ahnung mehr, in welchem Bereich der Beitrag ursprünglich gepostet war und ...hmm... ich finde auch gar keine Kategorie, zu der er eindeutig zuzuordnen wäre.

Ich habe ihn jetzt zumindest in einen weniger verkehrten Bereich als "Jobs" verschoben.
Vielleicht meldet sich ja nochmal der Threadowner und gibt den entscheidenden Hinweis.

Grüße
Biber

[Edit 19.11.2009] Nochmal verschoben nach "Unix und Linux"->"Netzwerk" (siehe nächsten Kommentar) [/Edit]
Bitte warten ..
Mitglied: sivale
19.11.2009 um 12:36 Uhr
Hmm, das weiß ich auch nich mehr.

vielleicht: Linux & Unix --> Netzwerke ?

Gruß

S.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Drucker und Scanner
gelöst PCL-Drucker drucken nur Hieroglyphen (5)

Frage von diwaffm zum Thema Drucker und Scanner ...

Virtualisierung
Drucker aus einer VM heraus funktioniert nicht (5)

Frage von NCCTech zum Thema Virtualisierung ...

Cloud-Dienste
Online Anwendung - drucken nicht speichern (17)

Frage von BergEnte zum Thema Cloud-Dienste ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...