Ausdruck über Netzdrucker

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Ausdruck über Netzdrucker

Beitragvon Werner » Mi, 19. Apr 2006 9:16

Ich habe immer noch Probleme, wenn ein Kunde mit einer Windows 2003 Serverlösung aus einem Xbase++ Programm heraus drucken möchte.

Beim Aufruf von DCPRINT ON SIZE 66,80 To oPrinter `FONT font10 USEDEFAULT AUTOEJECT kam die Fehlermeldung:

VALTYPE: U VALUE: NIÖ
Parameter hat falschen Typ
gebCode:2
operation: papersize
severity:2
subcode: 1025
Thread:1
tries:0

In dem Zusammenhang hätte ich noch eine weitergehende Frage:

Kann man einen Xbase++-Druck über einen speziellen (Drucker-)Pfad auch direkt auf einen Netzdrucker leiten? Wenn ja, wie müsste ein solcher Pfad konkret aussehen? In dem Zusammenhang wird manchmal auch von einer IP-Nummer gesprochen; was ist das?

In der Hoffnung, dass mir jemand helfen kann!

MfG
Werner
Werner
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 73
Registriert: Sa, 18. Mär 2006 17:08

Re: Ausdruck über Netzdrucker

Beitragvon Martin Altmann » Mi, 19. Apr 2006 9:38

Hallo Werner,
Werner hat geschrieben:In dem Zusammenhang wird manchmal auch von einer IP-Nummer gesprochen; was ist das?

das ist die "Hausnummer" eines Rechners. Jeder Rechner mit einer Netzwerkkarte, der auch im Internet (oder auch im interen Netz) hängt, bekommt eine solche IP-Adresse. Sie sieht zum Beispiel folgendermaßen aus: 192.168.12.34
Jedes einzelne Zifferntripel reicht von 0 bis 255 (nach dem aktuellen IP-Standard), wobei sowohl der 0 als auch der 255 eine jeweils besondere Bedeutung zukommen und diese nicht vergeben werden.
Statt der IP-Adresse kann man auch einen Klarnamen verwenden (z.B. www.microsoft.com), der dann automatisch über die sogenannten DNS-Server (DomainNameService) auf die entsprechende IP-Adresse umgesetzt wird.
Am Rechner selber wird dann die IP-Adresse auf die entsprechende Netzwerkkarte umgesetzt, indem die echte Adresse der Netzwerkkarte (MAC-Adresse oder auch physikalische Adresse) genommen wird, die immer folgendermaßen aufgebaut ist:
12-34-56-78-90-AB
Die jeweiligen Zahlen sind im Hexadezimalsystem angegeben.
Wenn Du an Deinem PC auf der Eingabeaufforderung das Kommando ipconfig -all absetzt, bekommst Du nicht nur Deine IP-Adresse, sonden auch die eigentliche MAC-Adresse genannt.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 13247
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: Ausdruck über Netzdrucker

Beitragvon brandelh » Mi, 19. Apr 2006 10:03

VALTYPE: U VALUE: NIL
Parameter hat falschen Typ
gebCode:2
operation: papersize


Der Drucker gibt NIL als Papiergröße zurück. Hier sollte ein anderes Ergebnis herauskommen. Wurde dieser Drucker eventuell angehalten (im Kontextmenü) ? Diese Info müßte der Windows Druckertreiber zur Verfügung stellen. Eventuell muß man diese dort erst definieren...

Kann man einen xBase++-Druck über einen speziellen (Drucker-)Pfad auch direkt auf einen Netzdrucker leiten? Wenn ja, wie müsste ein solcher Pfad konkret aussehen?

Ich arbeite nicht mit express. XbpPrinter() nutzt den Druckerpfad, welcher in Windows eingestellt ist, wie jedes andere richtige Windowsprogramm. Wenn man nach DOS Manier drucken möchte UND einen PCL4 oder PS2 oder ESC/P oder IBM Proprinter kompatiblen Drucker hat, kann man auch direkt auf den UNC Namen (so der richtige Name) drucken. Es gibt auch noch das IP-Printing, das kann aber nicht direkt verwendet werden, sondern wird intern vom Druckertreiber genutzt, falls ein Drucker im IP-Netz hängt. Der UNC Name wird bei der Druckerfreigabe angegeben und besteht aus \\SERVER\DRUCKERNAME (wobei hier SERVER der Rechnername des Rechners ist, welcher den Drucker freigibt).

Das folgende Beispiel funktioniert erst mit der neuen 1.90 (hoffentlich):

set printer to \\server\drucker
set printer on
? "Test"
set printer to

Ob das aber das ist, was du willst ?
Wenn der Drucker an USB hängt, oder ein GDI Drucker ist (hostbased etc.) dann geht das direkte Drucken (meist) nicht.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13508
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Ausdruck über Netzdrucker

Beitragvon BIK » Do, 07. Jul 2016 11:03

Eine Frage zur Nutzung der IP eines Druckers:

Wir haben im Netzwerk mehrere IP Drucker mit vorgedruckten Formularen, die jeweils mit Klarnamen "Drucker_XY" angesprochen,
und so auch tadellos funktionieren. Diese Drucker werden ohne die Möglichkeit einer Auswahl direkt nach der Eingabe
der Daten beschickt.

Nun ändern die Kollegen ab und an "ihren" Druckernamen und dann geht der Druck ins leere.
Könntet ihr mir bitte einen Tipp geben, wie ich die IP-Adresse des Drucker verwenden kann damit bei allfälliger
Änderung des Druckernamens der Ausdruck trotzdem raus kommt.

Gruß,
Bernhard
BIK
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 66
Registriert: Di, 23. Aug 2011 14:34

Re: Ausdruck über Netzdrucker

Beitragvon Herbert » Fr, 08. Jul 2016 8:51

Generell sollte man nicht fix einen Drucker ohne Wahlmöglichkeit einoprogrammieren. Genau solche Ereignisse bewirken einen unnötigen Supportakt.

Lass doch in einem Wahlfenster alle Drucker auflisten, damit der User dort optional einen Drucker auswählen kann.

Andernfalls auf die Schnelle empfehle ich dir, den Druckernaamen als Parameter für den Nutzer änderbar einzurichten.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1788
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich

Re: Ausdruck über Netzdrucker

Beitragvon AUGE_OHR » Fr, 08. Jul 2016 8:51

BIK hat geschrieben:Nun ändern die Kollegen ab und an "ihren" Druckernamen und dann geht der Druck ins leere.
Könntet ihr mir bitte einen Tipp geben, wie ich die IP-Adresse des Drucker verwenden kann damit bei allfälliger Änderung des Druckernamens der Ausdruck trotzdem raus kommt.
auf Windows 10 upgraden ... ich schaffe es nicht, unter Druckereigenschaften, den Namen zu verändern.

zwischen IP und der Bezeichnung des Druckers gibt es IMHO keinen Zusammenhang.

mit XbpPrinter:List() kann man sich ja ein Array der vorhandenen Drucker Namen ausgeben lassen.
in einer DBF habe ich nun "meinen" Druckernamen und ein Feld für den gewünschten Drucker.

per ASCAN suche ich nun den Druckernamen im Array.
wenn nicht gefunden wird der XbpPrintDialog() aufgerufen und das Ergebnis in der DBF gespeichert.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10317
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: Ausdruck über Netzdrucker

Beitragvon BIK » Fr, 08. Jul 2016 11:15

Herbert hat geschrieben:Generell sollte man nicht fix einen Drucker ohne Wahlmöglichkeit einoprogrammieren. Genau solche Ereignisse bewirken einen unnötigen Supportakt.
Lass doch in einem Wahlfenster alle Drucker auflisten, damit der User dort optional einen Drucker auswählen kann.
Andernfalls auf die Schnelle empfehle ich dir, den Druckernaamen als Parameter für den Nutzer änderbar einzurichten.


Wir hatten das schon mit der Druckerwahl!
Die Dokumente sind einmalig und mit einer laufenden Nummer versehen und je nach Abteilung in anderen Sprachen gedruckt.
Nun kam es immer wieder vor, dass z.B. Papiere die nach Frankreich gehen sollten nicht die Landessprache aufwies!

AUGE_OHR hat geschrieben:
BIK hat geschrieben:zwischen IP und der Bezeichnung des Druckers gibt es IMHO keinen Zusammenhang.


Ich dachte, dass ich über die printerPS, so wie jetzt mit 'Druckernamen' oder '\\Server01\Drucker', auch mit der IP den Drucker erreiche.

Gruß,
Bernhard
BIK
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 66
Registriert: Di, 23. Aug 2011 14:34

Re: Ausdruck über Netzdrucker

Beitragvon AUGE_OHR » Sa, 09. Jul 2016 7:07

BIK hat geschrieben:Ich dachte, dass ich über die printerPS, so wie jetzt mit 'Druckernamen' oder '\\Server01\Drucker', auch mit der IP den Drucker erreiche.
wie schon gesagt gibt dir XbpPrinter():List() die "Namen" aus ... aber wenn die umbenannt wurden ...

ich habe es noch mal mit WMI ausprobiert. das funktioniert mit einer IP

http://www.xbaseforum.de/viewtopic.php?f=32&t=8094&p=90329&hilit=Win32_Printer#p90329
unter "PortName" findest du die IP und unter "Caption","DeviceID" und "Name" den veränderten Druckernamen.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10317
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: Ausdruck über Netzdrucker

Beitragvon BIK » Di, 12. Jul 2016 15:28

Danke
BIK
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 66
Registriert: Di, 23. Aug 2011 14:34


Zurück zu Drucken und Export

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast