Auf Blattgrösse drucken?
-
Gruss
Ich habe eine BMP Grafik und drücke diese momentan folgenderweise aus
StartPage(printDC); HBITMAP hBitmap, hbmNew; hBitmap = (HBITMAP)LoadImage(NULL, MyFilename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE); HDC hdcSrc = CreateCompatibleDC(NULL); BITMAP bm; GetObject(hBitmap, sizeof(bm), &bm); SelectObject(hdcSrc, hBitmap); hbmNew = CreateBitmap(bm.bmWidth, bm.bmHeight, bm.bmPlanes, bm.bmBitsPixel, NULL); StretchBlt(printDC,xanfang,yanfang,int(640*xdruckmult),int(840*ydruckmult),hdcSrc,0,0,640,840,SRCCOPY); DeleteDC(hdcSrc); EndPage(printDC); EndDoc(printDC);Momentan mogel ich mit der Zeile
StretchBlt(printDC,xanfang,yanfang,int(640*xdruckmult),int(840*ydruckmult),hdcSrc,0,0,640,840,SRCCOPY);dort kann ich einen x/y Anfangswert der Grafik auf dem Blatt geben und über die x/y druckmult Variablen steuer ich die Grösse.
Das "muss" ich so machen da jeder Drucker sonst das Blatt anders ausdruckt. Manche machen es sonst als Briefmarke und andere riessengross das nur 1/4 drauf zu sehen ist.
Was muss ich machen, damit die Grafik aus der Datei auf jedem Drucker identisch ausdruckt. Dabei möchte ich aber nicht die Grafik auf dem ganzen Blatt sondern natürlich links einen freien Rand zum einlochen.
Leider ist die Forensuche wohl irgendwie kaputt, denke schon das das Wort "drucken" mehr als ein Treffer bekommen sollte und google fand ich leider auch nichts

P.S. Herr Administrator, falls die Suche beschädigt ist. Mann kann per Hack eine Funktion reinsetzen, die die komplette phpbb2_search_... Tabelle neu erstellt.
Ohne Suche ist doch das Forum halb tot. Beispiel: http://www.phpbbhacks.com/download/434
-
hola
wie eine grafik am drucker ausgegeben wird haengt unter anderem von der blattgroesse und von der druckaufloesung ab. wenn du es immer so haben willst, das das bild genau ueber eine seite geht, dann musst du es selber skalieren.
deine Raender musst du auch selber berechnen. die dafuer noetigen funktionen findest in der PSDK (GetDeviceCaps etc.).Meep Meep
-
GetDeviceCaps ist wohl die Lösung. In Anlehnung an diesen Code http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_2ik4.asp hat es wohl geklappt. Danke!