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.56 MB
Zeit: 0.025 c
6-22315
Marser
2001-08-01 16:04
2002.01.08
SMS Nachricht


14-22379
Felix
2001-11-05 19:54
2002.01.08
Zeig es mir - Oder vielleicht nicht? -Schau du sagst!


7-22424
Nik
2001-09-21 14:30
2002.01.08
Bei der Installation von Pro geben Sie Fehler auf Laufwerk C: aus


14-22412
Fishka
2001-11-12 14:50
2002.01.08
Komponenten und deren Standort für den Bedienkomfort (Delphi 3)


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





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarisch katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Niederländisch Englisch estnisch Philippinisch Finnisch Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegisch
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Schwedisch 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