現在、メタファイルを生成するサードパーティのコントロールがあります。問題なく.wmfファイルをディスクに保存できます。問題は、メタファイルをTiffファイルとしてレンダリングする方法です。
現在、メタファイルを取得して保存するための次のコードがあります。
Dim mf As Metafile = page.GetImage(TXTextControl.Page.PageContent.All)
Dim enhMetafileHandle As IntPtr = mf.GetHenhmetafile()
Dim h As IntPtr
Dim bufferSize As UInteger = GetEnhMetaFileBits(enhMetafileHandle, 0, h)
Dim buffer(CInt(bufferSize)) As Byte
GetEnhMetaFileBits(enhMetafileHandle, bufferSize, buffer)
Dim msMetafileStream As New MemoryStream
msMetafileStream.Write(buffer, 0, CInt(bufferSize))
Dim baMetafileData() As Byte
baMetafileData = msMetafileStream.ToArray
Dim g As Graphics = Graphics.FromImage(mf)
mf.Dispose()
File.WriteAllBytes("c:\a.wmf", baMetafileData)
サブ終了
_パブリック共有関数GetEnhMetaFileBits(ByVal hEMF As System.IntPtr、ByVal nSize As UInteger、ByVal lpData As IntPtr)As UInteger End Function
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll", EntryPoint:="GetEnhMetaFileBits")> _
Public Shared Function GetEnhMetaFileBits(<System.Runtime.InteropServices.InAttribute()> ByVal hEMF As System.IntPtr, ByVal nSize As UInteger, ByVal lpData() As Byte) As UInteger
End Function
あらゆる種類のIMAGEおよびGraphic呼び出しを試しましたが、メタファイルを.tiffとして保存できません。どんな提案も素晴らしいでしょう。新しいビットマップを作成して、その上にメタファイルを描画しようとさえしました。私はいつもGDI例外がスローされることになります。