Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Drucker: Seiten pro Blatt (https://www.delphipraxis.net/180765-drucker-seiten-pro-blatt.html)

BLin4ik 16. Jun 2014 14:45

Delphi-Version: 5

Drucker: Seiten pro Blatt
 
Hallo,

ich würde gerne meinem Drucker mitteilen wie viel Seiten pro Blatt gedruckt werden sollen.
Kann mir vielleicht einer erklären wie genau ich das machen kann ?
Über den normalen PrintDlg habe ich ja leider keine Möglichkeiten das einzustellen...

Habe schon ein paar Lösungsansätze betrachtet, die haben mir aber leider auch nicht weiter geholfen :?

MeierZwoo 16. Jun 2014 15:01

AW: Drucker: Seiten pro Blatt
 
Per Printer.Copies

baumina 16. Jun 2014 15:14

AW: Drucker: Seiten pro Blatt
 
Also im TPrintDialog müsste die Anzahl Exemplare aber einstellbar sein (TPrintDialog.Copies)

BLin4ik 16. Jun 2014 15:15

AW: Drucker: Seiten pro Blatt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das ist nur die Anzahl der zu machenden Kopien, ich möchte aber mehrere Seiten auf ein Blatt bedrucken.

p80286 16. Jun 2014 15:25

AW: Drucker: Seiten pro Blatt
 
Seber machen!
Erst die Seiten in Originalgröße drucken, dann in Höhe und Breite halbieren und dann auf die Printer.canvas packen.
Und schon hast Du 4 Seiten pro Blatt, mit doppelseitig sogar 8.

Und wer soll das Augenpulver lesen?

Gruß
K-H

MeierZwoo 16. Jun 2014 15:31

AW: Drucker: Seiten pro Blatt
 
Das ist ohne eigene Vorarbeit nur möglich, wenn der Drucker(Treiber) dies anbietet - dann einen Drucker mit diesen Einstellungen (4 Seiten / Blatt, 8 Seiten / Blatt, ... ) installieren und im Dialog als Drucker auswählen.

Oder eine neue Klasse aus TPrintDialog erzeugen und dort dann dieses einarbeiten.

FF

p.s. Spätesten ab 8 Seiten/Blatt kannst Du aber auch gleich Toner/Tinte über das Papier vergießen, selbst bei extremster Auflösung des Druckes.

baumina 16. Jun 2014 15:35

AW: Drucker: Seiten pro Blatt
 
Hier habe ich etwas gefunden http://www.experts-exchange.com/Prog..._26557940.html
Stichworte sind wohl DEVMODE und dmNup.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

BLin4ik 16. Jun 2014 15:38

AW: Drucker: Seiten pro Blatt
 
Es dient schon einem bestimmten Zweck deswegen brauche ich auch die Möglichkeit dazu :wink:
Eigentlich bietet so gut wie jeder Drucker diese Funktion an, ich kann sie nur ohne weiteres
nicht so einfach über Delphi ansprechen.

Klar kann man immer wieder diese Eingabe manuell machen, aber diese Informationen sollen
abgespeichert werden, damit es automatisiert passiert.

Dann komm ich wohl nicht drum herum eine eigene Funktion dafür zu schreiben :?

@baumina
Auf die Seite bin ich auch schon gestoßen, hat mich aber auch nicht weitergebracht.

mkinzler 16. Jun 2014 15:41

AW: Drucker: Seiten pro Blatt
 
Da dies aber wohl kein Standard ist, ist das dann vom Treiber abhängig. Anderst als die Anzahl der Kopien usw.

baumina 16. Jun 2014 15:44

AW: Drucker: Seiten pro Blatt
 
Also ich würde das hier mal als Grundlage nehmen http://www.swissdelphicenter.ch/de/showcode.php?id=1961 und dann mit dmNup rumprobieren.

baumina 16. Jun 2014 16:00

AW: Drucker: Seiten pro Blatt
 
Aha, das dmNup gibt nur an, ob das überhaupt unterstützt ist. Die tatsächliche Anzahl ist wohl im PrintTicket.PagesPerSheet verborgen http://msdn.microsoft.com/de-de/libr...v=vs.110).aspx

Aber jetzt weiß ich leider auch nicht weiter.

MeierZwoo 16. Jun 2014 16:12

AW: Drucker: Seiten pro Blatt
 
Zitat:

Zitat von BLin4ik (Beitrag 1262477)
Eigentlich bietet so gut wie jeder Drucker diese Funktion an, ich kann sie nur ohne weiteres nicht so einfach über Delphi ansprechen.

Wozu über Delphi? Die Druckerwahl sprichst Du ja auch nicht über Delphi an, sondern durch den Benutzer im Druckdialog!

Und wenn Du (oder der Benutzer) enspr. viele Druckertreiber des selben Druckers mit diesen Werten ("XxxDrucker 4 Seiten/Blatt") installierst, in denen diese Werte vorab eingestellt sind, kann der Benutzer im Druckdialog den gewünschten Drucker mit den gewünschten Seiten/Blatt auswählen.

Warum einfach, wenn es auch umständlich geht?

BLin4ik 16. Jun 2014 16:29

AW: Drucker: Seiten pro Blatt
 
Zitat:

Zitat von MeierZwoo (Beitrag 1262484)
Zitat:

Zitat von BLin4ik (Beitrag 1262477)
Eigentlich bietet so gut wie jeder Drucker diese Funktion an, ich kann sie nur ohne weiteres nicht so einfach über Delphi ansprechen.

Wozu über Delphi? Die Druckerwahl sprichst Du ja auch nicht über Delphi an, sondern durch den Benutzer im Druckdialog!

Und wenn Du (oder der Benutzer) enspr. viele Druckertreiber des selben Druckers mit diesen Werten ("XxxDrucker 4 Seiten/Blatt") installierst, in denen diese Werte vorab eingestellt sind, kann der Benutzer im Druckdialog den gewünschten Drucker mit den gewünschten Seiten/Blatt auswählen.

Warum einfach, wenn es auch umständlich geht?

Es gibt verschiedene Auswertungen die verschiedene Druckeinstellungen benötigen,
da diese automatisiert gedruckt werden sollen ohne dass jemand extra auf den Dialog
klicken muss, um alles ständig wieder neu einstellen zu müssen.

MeierZwoo 16. Jun 2014 16:46

AW: Drucker: Seiten pro Blatt
 
Zitat:

Zitat von BLin4ik (Beitrag 1262485)
Es gibt verschiedene Auswertungen die verschiedene Druckeinstellungen benötigen, da diese automatisiert gedruckt werden sollen ohne dass jemand extra auf den Dialog klicken muss, um alles ständig wieder neu einstellen zu müssen.

Sorry, kannst Du dich mal entscheiden? Oben wolltest Du den DruckDialog benutzen, nun plötzlich nicht mehr?

Dann mußt Du diese Auswahl z.B. in der INI hinterlegen und einmalig zuordnen, dann hast Du intern die Drucker(treiber) für die verschiedenen Anwendungen und kannst diese intern automatisch benutzen.

EDIT: Oder eben das gewünschte Abbild, wie oben schon vorgeschlagen (#5) per Printer.canvas erzeugen - was auch das Beste wäre, da Drucker-Unabhängig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz