Announcement

Collapse
No announcement yet.

Wie kann mein Format aus der Druckvorlage eins zu eins auf den Drucker übernehmen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann mein Format aus der Druckvorlage eins zu eins auf den Drucker übernehmen?

    Hallo,<br>
    <br>
    ich habe eine Druckvorschau mit einer image.canvas realisiert. Das Koordianatensystem habe ich mit;
    <br><br>
    druckbreite := GetDeviceCaps(printer.handle,horzsize);<br>
    druckhoehe := GetDeviceCaps(printer.handle,vertsize);<br>
    <br>
    druckbreite:=druckbreite;<br>
    druckhoehe:=druckhoehe;<br>
    <br>
    ux:=0;uy:=0;dx:=druckbreite;dy:=druckhoehe;<br>
    pb1.setbounds(ux,uy,trunc(dx*zoom),trunc(dy*zoom)) ;<br>
    pencolor := pb1.canvas.pen.color;<br>
    fillcolor := pb1.canvas.brush.color;<br>
    setmapmode(pb1.canvas.handle,mm_anisotropic);<br>
    SetWindowExtex(pb1.canvas.handle,druckbreite*10,-(druckhoehe*10),NIL);<br>
    setviewportextex(pb1.canvas.handle,trunc(dx*zoom), trunc(dy*zoom),NIL);<br>
    <br>
    initialisiert.<br>
    <br>
    danach habe ich versucht mit:<br>
    <br><br>

    DestinationRect := Rect(0,0,10000,10000);<br>
    SourceRect := Rect(0,0,1000,1000);<br>
    <br>
    PrintDialog:=TPrintDialog.Create(self);<br>
    if PrintDialog.Execute then<br>
    begin<br>
    Printer.BeginDoc;<br>
    SetMapMode(printer.canvas.handle,MM_LOMETRIC);<br>
    printer.canvas.CopyRect(DestinationRect,pb1.Canvas ,SourceRect);<br>
    Printer.Enddoc;<br>
    end; //if PrintDialog.Execute<br>
    PrintDialog.Free;<br>
    <br>
    zu drucken.<br>
    <br>
    Aber wenn ich SetMapMode(printer.canvas.handle,MM_LOMETRIC) verwende erscheint garnichts.
    Wenn ich es weglasse bekomme ich einen Miniaturausdruck.<br><br>

    Oben habe ich sourceRect 10 mal kleiner gewählt als DestinationRect, damit das Bild vergrößert wird.
    Das Ergebnis ist aber sehr viele unschöne Kanten. Wie kann ich das Bild von pb1.canvas eins zu eins in printer.canvas
    übernehmen?
Working...
X