#include "l_bitmap.h"

L_LTDIS_API L_INT L_PrintBitmapGDIPlus(hDC, pBitmap, nX, nY, nWidth, nHeight, uFlags)

Prints the bitmap to the specified device context using GDI+.



Handle to the device context (DC) where the bitmap is to print. The mapping mode of the device context must be MM_TEXT.


Pointer to the bitmap handle referencing the bitmap to print.


Value that represents the X position to start the print.


Value that represents the Y position to start the print.

L_INT nWidth

Value that represents the printed width, in pixels. The actual width depends on the dots per inch (DPI) of the printer.

L_INT nHeight

Value that represents the printed height, in pixels. The actual height depends on the dots per inch (DPI) of the printer.

L_UINT32 uFlags

Reserved for future use.  Pass 0.


Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.


If GDI+ library is not installed to the system, an error code is returned.

Required DLLs and Libraries


Win32, x64.

See Also




This example determines the output size to fit the image on half of a page, and prints the bitmap twice on the same page.

L_INT PrintBitmapGDIPlusExample(L_VOID) 
   BITMAPHANDLE LeadBitmap; /* Bitmap handle for the image */ 
   HDC PrinterDC; /* DC for the printer */ 
   L_INT WidthAllowed, HeightAllowed, WidthFactor, HeightFactor; /* For size calculations */ 
   L_INT PrintWidth, PrintHeight; /* Width and height of the printed image */ 
   L_INT nRet; 
   /* Load a bitmap at its own bits per pixel */ 
   nRet =L_LoadBitmap (MAKE_IMAGE_PATH(TEXT("Image1.cmp")), &LeadBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL); 
   if(nRet !=SUCCESS) 
      return nRet; 
   /* Get the printer DC */ 
   PrinterDC = L_PrintBitmapFast(NULL, NULL, 0, 0, 0, 0, FALSE); 
   /* Initialize variables for fitting the image on half a page */ 
   WidthAllowed = GetDeviceCaps(PrinterDC,HORZRES); 
   HeightAllowed = GetDeviceCaps(PrinterDC,VERTRES) * 4/10; 
   HeightFactor = BITMAPHEIGHT(&LeadBitmap); 
   WidthFactor = BITMAPWIDTH(&LeadBitmap); 
   /* See if using the maximum width will make the image too tall */ 
   if((L_INT) (((L_INT32) WidthAllowed * HeightFactor) / WidthFactor) < HeightAllowed) 
   { /* Use the maximum width, and calculate the height value */ 
      PrintWidth = WidthAllowed; 
      PrintHeight = (L_INT) (((L_INT32) PrintWidth * HeightFactor) / WidthFactor); 
   { /* Use the maximum height, and calculate the width value */ 
      PrintHeight = HeightAllowed; 
      PrintWidth = (L_INT) (((L_INT32) PrintHeight * WidthFactor) / HeightFactor); 
   /* Print the first image */ 
   nRet =L_PrintBitmapGDIPlus(PrinterDC, &LeadBitmap, 1, 1, PrintWidth, PrintHeight, 0); 
   if(nRet !=SUCCESS) 
      return nRet; 
   /* Print the second image */ 
   nRet =L_PrintBitmapGDIPlus(PrinterDC, &LeadBitmap, 1, HeightAllowed * 6/5, PrintWidth, PrintHeight, 0); 
   if(nRet !=SUCCESS) 
      return nRet; 
   EndDoc( PrinterDC); 
   L_FreeBitmap( &LeadBitmap ); 
   return SUCCESS; 

Help Version 21.0.2021.4.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C API Help