首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要一个EMFPlus示例文件

我需要一个EMFPlus示例文件
EN

Stack Overflow用户
提问于 2015-09-03 14:19:00
回答 1查看 858关注 0票数 0

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

如果有人能启发我如何通过Aspose生成一个EMFPlus文件,那就太好了。如果你能为我提供一个样本EMFPlus文件,这是不是在双模式,这将是伟大的。

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

EN

回答 1

Stack Overflow用户

发布于 2015-09-03 17:41:25

我相信你已经在Aspose.Words Support forum上发布了类似的问题,因此我将首先从Aspose.Words的角度来解决你的担忧。请注意,Aspose.Words API允许您以EmfOnly、EmfPlus和EmfPlusWithFallback格式呈现文档。请查看以下使用Aspose.Words for .NET接口将输入文档转换为EmfPlus格式的代码。

代码语言:javascript
复制
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格式,然后将其保存回光盘。

代码语言:javascript
复制
    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一起工作,作为开发人员的布道者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32368237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档