Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

Nach unten

Problem mit der Bildgröße beim Drucken Finden Sie ähnliche Zweige


Oleg Gashev   (2001-12-15 11:14) [0]

Ich kann kein Bild mit exakten Abmessungen drucken. Es wird immer noch falsch gedruckt.
Ich mach das Finden Sie Bitmapa-Größen in Zoll:
sx, sy: real; ABitmap: = Image1.Picture.Bitmap; sx: = ABitmap.Width / GetDeviceCaps (image1.canvas.handle, LOGPIXELSX); sy: = ABitmap.Height / GetDeviceCaps (image1.canvas.handle, LOGPIXELSY);

Jetzt finde ich die Maße in Pixel auf dem Drucker zum Drucken:
relwidth: = trunc (GetDeviceCaps (Printer.canvas.handle, LOGPIXELSX) * sx); relheight: = trunc (GetDeviceCaps (Printer.canvas.handle, LOGPIXELSY) * sy);

Druck:
Printer.BeginDoc; DrawImage (Printer.Canvas, Rect (0, 0, relWidth, relHeight), ABitmap); Printer.EndDoc;

DrawImage:
procedure DrawImage (Canvas: TCanvas; DestRect: TRect; ABitmap: TBitmap); var Header, Bits: Zeiger; HeaderSize: Kardinal; BitsSize: Kardinal; beginnen GetDIBSizes (ABitmap.Handle, HeaderSize, BitsSize); Header: = AllocMem (HeaderSize); Bits: = AllocMem (BitsSize); versuche es GetDIB (ABitmap.Handle, ABitmap.Palette, Header ^, Bits ^); StretchDIBits (Canvas.Handle, DestRect.Left, DestRect.Top, DestRect.Right, DestRect.Bottom, 0, 0, ABitmap.Width, ABitmap.Height, Bits, TBitmapInfo (Header ^), DIB_RGB_COLORS) endlich FreeMem (Header, HeaderSize); FreeMem (Bits, BitsSize); ende ende

All dies druckt mit falschen Größen. Wo ist der Fehler?

Mit freundlichen Grüßen Oleg.



MrBeer   (2001-12-16 21:27) [1]

// Bitmapgröße X x Y Millimeter Prozedur PrintBM (B: TBitmap; x_mm, y_mm: doppelt); var resx, resy: doppelt; beginnen resx: = Printer.PageWidth / GetDeviceCaps (Printer.Handle, LOGPIXELSX); resy: = Printer.PageHeight / GetDeviceCaps (Printer.Handle, LOGPIXELSY); Printer.Canvas.StretchDraw (Rect (0,0, rund (x_mm * resx), rund (y_mm * resy)), B); ende // Bitmap x Zoll Zoll drucken Prozedur PrintBMInch (B: TBitmap; x_inch, y_inch: double); beginnen PrintBM (B, x_inch * 2.54, y_inch * 2.54); ende



MrBeer   (2001-12-16 21:40) [2]

Prozedur PrintSameSize (B: TBitmap); var scalex, scaley: doppelt; beginnen scalex: = GetDeviceCaps (Drucker.Handle, LOGPIXELSX) / GetDeviceCaps (B.Canvas.Handle, LOGPIXELSX); scaley: = GetDeviceCaps (Drucker.Handle, LOGPIXELSY) / GetDeviceCaps (B.Canvas.Handle, LOGPIXELSY); Printer.Canvas.StretchDraw (Rect (0,0, rund (B.Width * scalex), rund (B.Height * scaley)), B); ende



MrBeer   (2001-12-16 21:48) [3]

Ein esli tak napisatj?
// ....
scalex: = GetDeviceCaps (Printer.Handle, LOGPIXELSX) / GetDeviceCaps (GetDC (0), LOGPIXELSX); scaley: = GetDeviceCaps (Printer.Handle, LOGPIXELSY) / GetDeviceCaps (GetDC (0), LOGPIXELSY);



Seiten: 1 ganze Branche

Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

nach oben









Speicher: 0.82 MB
Zeit: 0.027 c
1-22147
vinni2000
2001-12-20 12:59
2002.01.08
Brauchen Sie Rat auf RichEdit !!!!!!!!


1-22215
VovaKomarov
2001-12-16 13:36
2002.01.08
Client-Update


3-21899
Yelchev
2001-12-03 10:26
2002.01.08
Schneller Zugriff auf die ORACLE DB


14-22399
Mcsimm
2001-11-11 12:01
2002.01.08
Formatierung in den Antworten


1-22047
Handra
2001-12-17 13:12
2002.01.08
Hilfe bei der Erstellung





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Swedish Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu Yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch