Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken (https://www.delphipraxis.net/159640-bitmap-visitenkarte-mehrfach-auf-a4-ausdrucken.html)

thomas2009 6. Apr 2011 14:38

Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Hi

ich möchte meine Visitenkarte mehrfach (10 Stück) auf A4 ausdrucken
Breite : 85 mm
Höhe : 54 mm

Meine Idee :
Ich zeichne meine Bitmap (Visitenkarte) 10x auf eine grosse Bitmap (Fast so gross wie A4)
Und dann das grosse Bild zum Drucker schicken

Oder habt Ihr was alternativ was zu vorschlagen? :wink:

DeddyH 6. Apr 2011 14:40

AW: Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Und wieso nicht die kleine Bitmap 10 mal an die jeweils passende Position?

mkinzler 6. Apr 2011 14:43

AW: Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Oder direkt in den Druckcanvas
Oder mit Reportingtool

shmia 6. Apr 2011 15:41

AW: Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Ein normaler Mensch und/oder Programmierer würde Microsoft Word verwenden!!
Im Menue von Word dann Extras -> Briefe und Sendungen -> Umschläge und Etiketten...
auswählen.
Open Office hat wahrscheinlich eine ähnliche Funktion.

thomas2009 7. Apr 2011 00:27

AW: Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Liste der Anhänge anzeigen (Anzahl: 1)
zur Zeit ich verwende keine Schleife
Ich zeichne direkt auf Printer.Canvas, wie deddyH vorgeschlagen hat
Ich tippe den Code für die Variante 8 Karten so :
Delphi-Quellcode:
// ...
      RR1 := Rect(DX,DY, W+DX, H+DY);
      Canvas.StretchDraw(RR1, Image1.Picture.Graphic);

      RR2 := Rect(DX, 2*DY+H, DX+W, 2*H+2*DY);
      Canvas.StretchDraw(RR2, Image1.Picture.Graphic);

      RR3 := Rect(DX, 3*DY+2*H, DX+W, 3*H+3*DY);
      Canvas.StretchDraw(RR3, Image1.Picture.Graphic);

      RR4 := Rect(DX, 4*DY+3*H, DX+W, 4*H+4*DY);
      Canvas.StretchDraw(RR4, Image1.Picture.Graphic);

      RR5 := Rect(DX, 5*DY+4*H, DX+W, 5*H+5*DY);
      Canvas.StretchDraw(RR5, Image1.Picture.Graphic);

      RR6 := Rect(2*DX+W,DY, 2*W+2*DX, H+DY);
      Canvas.StretchDraw(RR6, Image1.Picture.Graphic);

      RR7 := Rect(2*DX+W, 2*DY+H, 2*DX+2*W, 2*H+2*DY);
      Canvas.StretchDraw(RR7, Image1.Picture.Graphic);

      RR8 := Rect(2*DX+W, 3*DY+2*H, 2*DX+2*W, 3*H+3*DY);
      Canvas.StretchDraw(RR8, Image1.Picture.Graphic);

      RR9 := Rect(2*DX+W, 4*DY+3*H, 2*DX+2*W, 4*H+4*DY);
      Canvas.StretchDraw(RR9, Image1.Picture.Graphic);

      RR10 := Rect(2*DX+W, 5*DY+4*H, 2*DX+2*W, 5*H+5*DY);
      Canvas.StretchDraw(RR10, Image1.Picture.Graphic);
//...
DX: Abstand zwi Karte in X = 10mm = 40 Pixels
DY: Abstand zwi Karte in Y = 10mm = 40 Pixels
H: Bitmap-Hoehe
W: Bitmap-Breite

Es hat gut geklappt aber es ist auch nicht alternativ
Das ist wie gesagt für die Variante 8 Stück gedacht
Was wäre wenn man 16 Stück auf A4 drucken will
Oder wenn man 3 Stück statt 2 Stück für jede Zeile haben will
Und so weiter

Darum ist mein Code keine dauer Lösung :|

Sir Rufo 7. Apr 2011 06:25

AW: Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Wenn du dir deinen Code mal genau ansiehst, dann wirst du auch die Regelmäßigkeit feststellen.
(Das Beispiel hat ja 5 Zeilen und 2 Spalten - jetzt nur noch die Augen auf machen und suchen wo da was von 1 bis 5 und von 1 bis 2 läuft)

Schon kannst du das mit einer Schleife umsetzen.

Dir ist aber schon klar, wenn du mehr Zeilen/Spalten druckst, dass dir irgendwann das Papier (A4) ausgeht?

Oder du müsstest die Karten entsprechend verkleinern.

40px = 10mm => 101,6 DPI (ein komischer Drucker, aber soll es wohl geben)

Bummi 7. Apr 2011 06:28

AW: Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Zitat:

Darum ist mein Code keine dauer Lösung
so nicht, wenn Du das ganze in eine Prozedur packst, der Du die Rahmenparameter mitgibst und über eine Schleife arbeitest hast Du 1/8 Code und dieser ist auch noch parametrisierbar.

Luckie 7. Apr 2011 07:48

AW: Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Du solltest auch den MapMode auf eine metrische Maßeinheit setzen. dann kannst du direkt mit Millimetern arbeiten und Windows übernimmt für dich auch die Anpassung an unterschiedliche (Drucker)auflösungen.

http://msdn.microsoft.com/de-de/library/dd162980.aspx

rollstuhlfahrer 7. Apr 2011 08:19

AW: Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Zitat:

Zitat von Sir Rufo (Beitrag 1093556)
40px = 10mm => 101,6 DPI (ein komischer Drucker, aber soll es wohl geben)

Nein, das ist kein komischer Drucker, der hat nur 100 DPI. (bei 39px sind es 99,060... DPI und bei 40px etwas mehr als 100. Da mal nun mal keine Teilpixel malen kann, ist das das Ende der Genauigkeit. ABER: Was ist das für ein Drucker? - Mit nur 100 DPI liegt der knapp über einem normalen Bildschirm. Heutige Drucker haben eine Auflösung zwischen 300 DPI und 1200DPI. Genau deshalb haben mich die so geringen Maßangaben stutzig gemacht, wo bei mir die Seite schon mehr als 2000 Pixel breit ist.

Bernhard

shmia 7. Apr 2011 08:28

AW: Bitmap (Visitenkarte) Mehrfach auf A4 ausdrucken
 
Zitat:

Zitat von thomas2009 (Beitrag 1093553)
Darum ist mein Code keine dauer Lösung :|

Mit Microsoft Word wärst Du schon längst fertig :wall::wall::wall::wall:
und hättest genügend Erfahrung gesammelt um in Zukunft sämliche Arten von Visitenkarten und Adressaufkleber zu bedrucken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 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-2025 by Thomas Breitkreuz