需要一个EMFPlus示例文件

时间:2015-09-03 06:19:00

标签: aspose metafile

目前我通过Aspose引擎生成的所有EMF文件都处于EMF双模式。

如果有人可以通过Aspose生成EMFPlus文件,那将是非常好的。如果你能提供一个不是双模式的样本EMFPlus文件,那就太棒了。

或者,请告诉我从哪里可以从互联网上下载。

1 个答案:

答案 0 :(得分:1)

我相信您在Aspose.Words Support forum中发布了类似的问题,因此我将首先解释您对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一起担任开发者布道者。