querformat drucken



  • moin,

    brauche dringends hilfe .. ich kann drucken aber wie bewerkstelligt man das es im querrformat auch gedruckt werden kann?
    ich drucke eine Bitmap-datei und möchte jetzt gerne 800x300 zum beispiel querrformat drucken .. was muss ich am quelltext ändern?

    StartPage(printDC);
    
    HBITMAP hBitmap, hbmNew;    
    hBitmap = (HBITMAP)LoadImage(NULL, bitmapfile, 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); // wozu das gut war weiss ich garnet mehr
    
    /* die multiplikator-zahlen der ziel-breite/höhe sind seltsamerweise auch bei jedem drucker anders und muss man anpassen */
    StretchBlt(printDC,xanfang,yanfang,640*3,840*3.5,hdcSrc,0,0,640,840,SRCCOPY);
    
    DeleteDC(hdcSrc);
    EndPage(printDC);
    EndDoc(printDC);
    


  • Du könntest z.B. das Bitmap erst um 90° drehen und dann drucken! Vielleicht geht's aber auch einfacher 🙄 😉



  • wenn mir sagen könntest wie ich das mache, gerne 🙂



  • Viellerich hilft dir das hier



  • es muss doch ne einfache lösung dafür geben.
    ist doch standard bei jedem drucken.

    ich nutze vc++ OHNE mfc



  • **

    ist doch standard bei jedem drucken.

    **

    Da musste selber 'ran!. Standard beim Drucken ist nur die Wahl des Blattformates (Hoch / Quer), was Du wie d'rauf druckst ist dem egal. 😮

    Nur Spezialdrucker oder moderne CAD- Plotter koennen das Layout drehen. Wenn die meisten Programme das Drucken so unterstützen, liegt das i. a. am jeweiligen Programmierer! 😃 😃 😃

    Also: Siehe Tips oben!

    [ Dieser Beitrag wurde am 24.03.2003 um 11:30 Uhr von DerAltenburger editiert. ]



  • /* die multiplikator-zahlen der ziel-breite/höhe sind seltsamerweise auch bei jedem drucker anders und muss man anpassen */
    StretchBlt(printDC,xanfang,yanfang,640*3,840*3.5,hdcSrc,0,0,640,840,SRCCOPY);

    Das liegt daran, daß der Bildschirm eine Auflösung von 72 DPI (Dots per Inch =Punkt pro Zoll) und der Drucker 300 DPI oder mehr hat.
    Das folgende Beispiel zeigt, wie man die Zahlen berechnet:
    [url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_2ik4.asp]msdn: Windows GDI - Printing a Document
    [/url]


Anmelden zum Antworten