現在、Aspose エンジンで生成したすべての EMF ファイルは EMF デュアル モードになっています。
Aspose を使用して EMFPlus ファイルを生成する方法を教えていただければ幸いです。デュアル モードではないサンプルの EMFPlus ファイルを提供していただけると助かります。
または、インターネットからダウンロードできる場所を教えてください。
Aspose.Words サポート フォーラムに同様の質問が投稿されていると思いますので、まず Aspose.Words の観点から懸念事項に対処します。Aspose.Words API を使用すると、ドキュメントを EmfOnly、EmfPlus、および EmfPlusWithFallback 形式でレンダリングできることに注意してください。Aspose.Words for .NET API を使用して入力ドキュメントを EmfPlus 形式に変換する次のコードを確認してください。
var doc = new Aspose.Words.Document("D:/sample.docx");
var saveOptions = new Aspose.Words.Saving.ImageSaveOptions(Aspose.Words.SaveFormat.Emf);
saveOptions.MetafileRenderingOptions.EmfPlusDualRenderingMode = Aspose.Words.Saving.EmfPlusDualRenderingMode.EmfPlusWithFallback;
doc.Save("D:/output.emf", saveOptions);
既存の EmfPlusDual イメージを EmfPlus に変換する場合は、この目的のために GDI+ ルーチンを使用できます。イメージ データを System.IO.Stream の形式で受け取り、EmfPlus に変換してからディスクに保存する次の方法を確認してください。
void ReSaveEmfToEmfPlus(Stream srcStream, String destPath)
{
Bitmap dummyBitmap = null;
Graphics dummyGfx = null;
IntPtr hdc = IntPtr.Zero;
System.Drawing.Imaging.Metafile metafile = null;
try
{
dummyBitmap = new Bitmap(1, 1);
dummyGfx = Graphics.FromImage(dummyBitmap);
hdc = dummyGfx.GetHdc();
Image srcImage = Image.FromStream(srcStream);
Rectangle rect = new Rectangle(0, 0, srcImage.Width, srcImage.Height);
metafile = new System.Drawing.Imaging.Metafile(destPath, hdc, rect, System.Drawing.Imaging.MetafileFrameUnit.Pixel, EmfType.EmfPlusOnly);
Graphics graphic = Graphics.FromImage(metafile);
graphic.DrawImage(srcImage, rect);
srcImage.Dispose();
graphic.Dispose();
}
finally
{
if (metafile != null)
{
metafile.Dispose();
}
if (hdc != IntPtr.Zero)
{
dummyGfx.ReleaseHdc(hdc);
}
if (dummyGfx != null)
{
dummyGfx.Dispose();
}
if (dummyBitmap != null)
{
dummyBitmap.Dispose();
}
}
}
EmfPlus のサンプルをお探しの場合は、適切なキーワードを使用してインターネットで検索すると、目的のファイルを見つけることができます。
私は開発者エバンジェリストとして Aspose で働いています。