#include "l_bitmap.h"
L_LTDOCWRT_API L_INT EXT_FUNCTION L_DocWriterUpdateMetaFileResolution (hEmfSrc, xResolution, yResolution, phEmfDest )
L_HENHMETAFILE hEmfSrc; |
handle to the source EMF |
L_UINT xResolution; |
new X resolution |
L_UINT yResolution; |
new Y resolution |
L_VOID * pDocOptions; |
pointer to a Document Options structure |
L_HENHMETAFILE * phEmfDest; |
address of a variable to be updated |
Changes the resolution of an existing Enhanced Metafile (EMF).
Parameter |
Description |
hEmfSrc |
Handle to the Enhanced Metafile (EMF) to be updated. |
xResolution |
The new X Resolution value. 0 means do not change this resolution. |
yResolution |
The new Y Resolution value. 0 means do not change this resolution. |
phEmfDest |
Address of an Enhanced Metafile (EMF) handle that will be updated with the modified EMF. |
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
A value of 0 for xResolution or yResolution means do not change this resolution value. This allows you to only change the horizontal or the vertical resolution of an Enhanced Metafile (EMF) handle without affecting the other resolution.
If either xResolution or yResolution is equal to -1, then the aspect ratio for the original EMF handle will be maintained and the positive value for either xResolution or yResolution will be used as the resolution (DPI) value for the modified EMF handle. Note that xResolution and yResolution cannot both be less than zero.
Required DLLs and Libraries
LtDocWrt_u.dll, LtDocWrt_x.dll |
Win32, x64.
Functions: |
|
Topics: |
|
|
This example converts Lead document format (ltd) to MS Word document foramt (doc)
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName
static void ShowMetaFileDimension(HENHMETAFILE hEmf)
{
// Get the metafile header
L_UINT uSize = GetEnhMetaFileHeader(hEmf, 0, NULL);
L_VOID* ptr = malloc(uSize);
ENHMETAHEADER* pHeader = reinterpret_cast<ENHMETAHEADER*>(ptr);
L_TCHAR szBuffer[_MAX_PATH];
wsprintf(szBuffer, TEXT("Size: %d by %d pixels\n"), pHeader->rclBounds.right - pHeader->rclBounds.left, pHeader->rclBounds.bottom - pHeader->rclBounds.top);
MessageBox(NULL, szBuffer, TEXT("Meta Information"), MB_OK);
// The resolution is saved in 0.01 mm units, convert to dots/inch
L_INT xResolution = (L_INT)((L_DOUBLE)pHeader->szlDevice.cx * 25.4 / (L_DOUBLE)pHeader->szlMillimeters.cx + 0.5);
L_INT yResolution = (L_INT)((L_DOUBLE)pHeader->szlDevice.cy * 25.4 / (L_DOUBLE)pHeader->szlMillimeters.cy + 0.5);
wsprintf(szBuffer, TEXT("Resolution: %d by %d pixels/inch\n"), xResolution, yResolution);
MessageBox(NULL, szBuffer, TEXT("Meta Information"), MB_OK);
free(ptr);
}
L_INT L_DocWriterUpdateMetaFileResolutionExample(L_VOID)
{
// Load the original meta file
L_HENHMETAFILE hEmf = GetEnhMetaFile(MAKE_IMAGE_PATH(TEXT("Ocr1.emf")));
// Show the dimension
L_TCHAR szBuffer[_MAX_PATH];
wsprintf(szBuffer,TEXT("Original EMF dimension:\n"));
MessageBox(NULL, szBuffer, TEXT("Meta Information"), MB_OK);
ShowMetaFileDimension(hEmf);
// Change the resolution to be 200 by 200 dots/inch
L_HENHMETAFILE hEmfDest = NULL;
L_INT nRet = L_DocWriterUpdateMetaFileResolution(hEmf, 600, 600, &hEmfDest);
// No need for the original handle anymore
DeleteEnhMetaFile(hEmf);
if(nRet == SUCCESS)
{
wsprintf(szBuffer,TEXT("New EMF dimension:\n"));
MessageBox(NULL, szBuffer, TEXT("Meta Information"), MB_OK);
ShowMetaFileDimension(hEmfDest);
DeleteEnhMetaFile(hEmfDest);
}
return SUCCESS;
}
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET