フレームを表示

L_DocWriterUpdateMetaFileResolution

フレームを表示

#include "l_bitmap.h"

L_LTDOCWRT_API L_INT EXT_FUNCTION L_DocWriterUpdateMetaFileResolutionhEmfSrc、xResolution、yResolution、phEmfDest

L_HENHMETAFILE hEmfSrc;

/* ソースEMFへのハンドル*/

L_UINT xResolution;

/* 新しいX解像度*/

L_UINT yResolution;

/* 新しいY解像度*/

L_VOID * pDocOptions;

/* ドキュメントオプション構造体へのポインター*/

L_HENHMETAFILE * phEmfDest;

/* 更新されるアドレス変数の世代*/

既存の拡張メタファイル(EMF)の解像度を変更します。

パラメーター

説明

hEmfSrc

更新される拡張メタファイル(EMF)のハンドル。

xResolution

新しいX解像度値。0の手段は、この解像度を変更しません。

yResolution

新しいY解像度値。0の手段は、この解像度を変更しません。

phEmfDest

変更されたEMFとともに更新される拡張メタファイル(EMF)ハンドルのアドレス。

戻り値

SUCCESS

関数は成功しました。

<1

エラーが発生しました。リターンコードを参照してください

コメント

xResolutionのための0の値またはyResolution手段は、この解像度値を変更しません。これは、他の解像度に影響を及ぼすことなく水平または拡張メタファイル(EMF)ハンドルの垂直解像度を変更するだけのことができます。

xResolutionかyResolutionが-1と等しいならば、オリジナルのEMFハンドルのためのアスペクト比は維持管理されます、そして、どちらのxResolutionまたはyResolutionのための正の値でも変更されたEMFハンドルのための解像度(DPI)値として使われます。xResolutionとyResolution両方がゼロ未満であるはずがないことに注意すべきです。

必須のDLLとライブラリ

LtDocWrt_u.dll、LtDocWrt_x.dll
LtFil_u.dll、LtFil_x.dll
LfJb2_u.dll、LfJb2_x.dll
Lfcmp_u.dll、Lfcmp_x.dll
Lftif_u.dll、Lftif_x.dll
Lfraw_u.dll、Lfraw_x.dll
Lfbmp_u.dll、Lfbmp_x.dll
Lfpng_u.dll、Lfpng_x.dll
ツールキットバージョンに基づいた正確なDLLとライブラリのリストについては、「アプリケーションとともに配布するファイル」を参照してください

プラットホーム

Win32 x 64

参照

関数:

L_DocWriterInit

トピック:

文書形式を作成すること

 

ラスター画像は機能します:ドキュメントライタ

サンプル

このサンプルは、MS Wordドキュメントforamt(doc)に、リードする文書形式(ltd)を変換します

#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_LTDOCWRTTEX_API 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;
}