Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249660 (11096)
  Suchen
 Zurück zur Übersicht
 AutorThema: Re:PrinterDialog testen
Andreas Miethe
Datum:29.05.01 16:04 Antwortenals Email verschicken (andreas@andreas-miethe.de) 


Sowohl unter ME als auch unter Win98 funktioniert es.

Gruss
Andreas


Norbert Spörl
Datum:29.05.01 18:22 Antwortenals Email verschicken (NSp_ware@t-online.de) 


Hallo Leute,

recht herzlichen Dank für Euere Tests - wirklich großartig. Es müßte also problemlos funktionieren. Was da bei meinem Freund nicht hinhaut, versuche ich heute noch heraus zu bekommen. Auf Arbeit hatte ich auch noch mit einem Tintenstrahler getestet. Es wurde zwar ein Kontex geliefert, damit konnte aber der Drucker nicht angesprochen werden. So sah ich vor allem ein Problem bei Tintenstrahldruckern.

Wenn sich in diesem Zusammenhang noch etwas Neues ergibt, werde ich es hier posten.

Grüße

Norbert


Bernhard
Datum:30.05.01 15:43 Antwortenals Email verschicken (bernhard.ammon@mobi.ch) 


Hallo Norbert
Ich kämpfe schon des längeren mit dem Printer-
dialog. Gewünscht wäre der von Dir aufgeführte
Kontext mit der Möglichkeit:
1: Drucker auswählen (oder auch Fax-Software)
2: Schublade beim Laser anwählen können
3: Papierformat z.B. auf A4-Quer umstellen können
4: Auflösung von Draft auf Superfein ändern kön-
nen
Da diese Infos verloren gehen, habe ich es bis
heute nicht geschafft. Gibt es hier eine Lösung?
Danke für Deine Antwort zum voraus.
Gruss Bernhard


Norbert Spörl
Datum:30.05.01 18:47 Antwortenals Email verschicken (NSp_ware@t-online.de) 


Hi Bernhard

>Ich kämpfe schon des längeren mit dem Printer->dialog.

Ich auch, mit der Druckproblematik seit Wochen ohne durchschlagendem Erfolg. Bei mir zu Hause mit meinem Nadeldrucker geht immer alles. Teste ich dann mit Tintenstrahler oder Laser tauchen unsystematisch Fehlfunktionen auf.

>Gewünscht wäre der von Dir aufgeführte
>Kontext mit der Möglichkeit:
>1: Drucker auswählen (oder auch Fax-Software)
>2: Schublade beim Laser anwählen können
>3: Papierformat z.B. auf A4-Quer umstellen können
>4: Auflösung von Draft auf Superfein ändern kön-
>nen

Mit Fax bzw. Faxsoftware kenne ich mich nicht aus, aber ansonsten läßt sich doch all das von Dir Gewünschte für den nächsten Druckjob mittels PrintDlg einstellen. Mit dem nächsten Aufruf von PrintDlg oder mit Programmende gehen die Einstellungen wieder verloren.

>Da diese Infos verloren gehen, habe ich es bis
heute nicht geschafft. Gibt es hier eine Lösung?

Es liegt an der Windowsphilosophie, daß dieser Dialog die Einstellungen nicht bewahrt, da sonst eine Applikation systemweit die Druckeinstellungen auch für andere Programme verändern könnte.
Eine systemweite Änderung der Druckereinstellungen ist ja manuell über Einstellungen/Systemsteuereung/Anzeige möglich. Dafür gibt es aber auch eine API-Funktion (Dialog) namens PrinterProperties. Ob damit getätigte Einstellungen nach einem neuen Rechnerstart noch erhalten sind, ist von Druckertreiber zu Druckertreiber verschieden.

Ich hoffe die Infos helfen Dir.

Gruß

Norbert





Bernhard
Datum:31.05.01 11:12 Antwortenals Email verschicken (bernhard.ammon@mobi.ch) 


Hallo Norbert
Wenn ich diesen Dialog wie von Dir aufgeführt
Aufrufe, danach als Benutzer in die Einstellungen
gehe, dort auf A4-Quer umschalte, OK drücke und
dann das Programm sofort einen Startprint,
Drawtext und Endprint ausführt, so wird dieser
Text nicht auf A4-Quer ausgedruckt.
Was mache ich falsch? Kannst Du mir ein Mini-
Beispiel posten, welches funktioniert. Wenn das
klappt, habe ich 2 Jahre lang gebraucht, bis der
Groschen gefallen ist.
Danke und Gruss
Bernhard


Norbert Spörl
Datum:31.05.01 19:21 Antwortenals Email verschicken (NSp_ware@t-online.de) 


Hi Bernhard,

der PrintDlg - Dialog ist ja nun aus der API. Nach dem Motto, wer "A" sagt, muß auch "PI" sagen, erklärt sich die Sache so, daß Du hier ohne die GDI-Funktionen der API nicht weiter kommst, da der Druckerkontex ja auch über den API-Dialog an Profan vorbei ermittelt wurde. Alle Grafikausgabebefehle von Profan sind somit nicht unmittelbar nutzbar, da STARTPRINT mit einem eigenen Druckerkontex arbeitet und somit keine Ahnung von Deinem API-Kontex mit seinen speziellen Einstellungen (z.B. Querformat) hat.

Es gibt zwei Möglichkeiten der Realisierung.

1. Die harte Tour: Du arbeitest für die Druckerausgabe ohne Profanunterstützung nur noch über die API. Falls nicht schon geschehen, kommst Du nicht am Erwerb entsprechender Fachliteratur vorbei. Du mußt Dich halt durch die Materie durchbeißen. Mit einem Quelltextbeispiel kann ich nicht dienen. Bin selber noch lange nicht am Ziel angekommen.

2. Der softere Weg besteht darin, vorausgesetzt es geht Dir nur um das Hoch- u. Querformat und um Textausgabe, daß Du mit der API-Funktion GetDeviceCaps die Höhe und Breite des Arbeitsblattes ermittelst. Ist die Höhe kleiner der Breite ist das Hochformat angewählt worden. Ist die Höhe größer als die Breite ist das Querformat eingestellt worden. Der Profandruck geht aber immer vom Hochformat (A4) mit 640 Pixeln Breite und 960 Pixeln Höhe aus. Es liegt also eine Matrix vor, auf der Du mit der Profanfunktion DrawText und beim Querformat mit vorherigem Aufruf der Profanfunktion Orientation den Text auf der Matrix ausrichten kannst. Dafür könnte ich am Wochenende einen Quelltextansatz erstellen, wenn Deinerseits Interessen besteht.

An dieser Stelle würde mich interessieren, ob es auch möglich ist, eine Bitmap um 90° gedreht auf dem Drucker über Profanfunktionen auszugeben, bzw. ob man zuvor die Bitmap drehen kann. So könnte das Querformat auch für Bitmaps genutz werden. Vielleicht hat jemand dazu eine Idee ?

Gruß

Norbert



Bernhard
Datum: 04.06.01 13:13 Antwortenals Email verschicken (bernhard.ammon@mobi.ch) 


Hallo Norbert
Herzlichen Dank für Deine ausführliche Antwort.
Ich habe begriffen, dass es ohne harte Arbeit
nicht geht. Ist schade, dass diese Funktion
nicht standardmässig in Profan integriert ist.
Vielleicht klappts ja mit der Profan 7.5 Ver-
sion, die schon des öfteren angesprochen wurde.
Vielleicht gibts ja auch eine andere Möglich-
keit? Wäre schön, wenn sich Roland dazu äussern
könnte.
Nochmals vielen Dank.
Gruss Bernhard


 Zurück zur Übersicht