Tag: 图元文件

从Excel OLE对象获取图像(图元文件)C#

我正在做一个添加到Excel在OLE对象上执行一些操作。 它需要从工作表中编程embeddedOLE对象的一些数据(从mathtypes转换为TeX语言)。 到目前为止,我已经处理了大部分问题,如将其添加到Excel工作表,从mathtypesOLE对象中获取公式,并设置公式。 但是还有最后一件事情要做。 我需要提取mathtypes的OLE对象所设置的公式的图像的图元文件。 我想提取图像并将其保存为内存位图,然后以某种控件显示。 问题是 – 我有代码从OLE对象获取图元文件: MTSDKDN.MathTypeSDK.IOleObject oleObject = null; oleDataObject = dataObject as IDataObject; oleObject = dataObject as MTSDKDN.MathTypeSDK.IOleObject; ConnectFORMATETC formatEtc = new ConnectFORMATETC(); ConnectSTGMEDIUM stgMedium = new ConnectSTGMEDIUM(); DataFormats.Format dataFormat; obj.Verb((Excel.XlOLEVerb)3); dataObject = obj.Object; formatEtc.cfFormat =(Int16)DataFormats.GetFormat(DataFormats.MetafilePict ).Id; formatEtc.dwAspect = System.Runtime.InteropServices.ComTypes.DVASPECT.DVASPECT_CONTENT; formatEtc.lindex = -1; formatEtc.ptd = (IntPtr)0; formatEtc.tymed = TYMED.TYMED_MFPICT; stgMedium.unionmember=(IntPtr)0; […]

Excel如何计算复制范围时生成的元文件的分辨率(如屏幕上所示)?

我有一些从http://bytes.com/topic/c-sharp/answers/572657-net-clipboard-metafiles得到的C#代码,可以在以下两个设置下复制一个单元格区域: 如屏幕所示, 如打印时所示 。 当我查看生成的图元文件的分辨率(logging为Gets the resolution, in pixels-per-inch, of this Image object )时,我根据复制方法得到不同的值。 随着印刷选项显示,分辨率是600,我相信对应于我在Excel中的DPI设置。 如屏幕设置所示 ,它会吐出类似于Metafile.VerticalResolution = 72.08107和Metafile.HorizontalResolution = 71.95952 。 在其他机器上,我看到这个值有很大的不同(值大约在111,130等)。 缩放级别似乎没有影响到这一点。 从我所观察到的,这些值在一台机器上保持一致,但是可能因机器而异。 任何人都可以解释的计算的图元文件的解决scheme, 如下面的逻辑Excel 如屏幕模式所示 ? 在更改窗口分辨率和测量图元文件分辨率后,下面是我生成的表格(希望看起来格式正确): Width Height HorizontalResolution VerticalResolution 1680 1050 71.95952 72.08107 1600 1024 72.05672 72.04874 1600 900 72.05672 71.88678 1360 768 71.96666 71.98228 1280 1024 71.9292 72.04874 1280 […]