#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.
Value that represents the printed width, in pixels. The actual width depends on the dots per inch (DPI) of the printer.
Value that represents the printed height, in pixels. The actual height depends on the dots per inch (DPI) of the printer.
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.
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);
}
else
{ /* 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;
EndPage(PrinterDC);
EndDoc( PrinterDC);
L_FreeBitmap( &LeadBitmap );
DeleteDC(PrinterDC);
return SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document