excel + powerpoint如何决定重新缩放粘贴为图片的范围?

我注意到,当你在Excel中复制范围(复制为图片 – 如屏幕所示)并将其粘贴到PowerPoint中时,生成的图像不会缩放到原始图像的100%(右键单击图像,转到格式设置和去尺寸看尺度信息)。

另外,这种缩放在不同的计算机上是不同的(可能与显卡有关)。 如果您有不同版本的Office,则每台计算机的缩放比例也会有所不同(即在Office 03中,缩放比例是Office 07中的原始大小的100%,缩放比例是高度和宽度的原始大小的75%在你自己的电脑上)。

这些标准是如何由Office内部决定的吗? 我问,因为我通过C#自动化复制+粘贴function(使用互操作性的东西)。 我使用CopyAsPicture方法来获取所选范围的高度x宽度并将图像保存为.emf文件。 然后使用我以前存储的尺寸作为形状的尺寸,将图像加载到PowerPoint形状中。 它粘贴在没有错误,但是当我比较它的原生ctrl + c和excel的粘贴ctrl + v作为图片,大小是不同的。 我已经得出结论,这是因为这个奇怪的缩放问题。

顺便说一下,在c#中,如果你告诉某种形状是100×100的大小,并插入它(使用形状的AddPicture方法),它实际上不会在PowerPoint中100×100。 如果你把这个图像复制并粘贴到油漆中来查看尺寸,那么它将会是完全不同的东西(对于我的机器来说,它会将其增加135%)。

任何人都知道发生了什么事? 或者办公室如何决定这些扩展问题?

谢谢,鲨鱼

我发现了一个逻辑上的缺陷:我不应该看到缩放,而应该看绝对大小。 我注意到的一件事情是,无论如何缩放,通过本机复制和粘贴的粘贴图像的大小在所有机器上的所有Office版本中都是一致的。 经过进一步的分析,我发现这个大小有两个方面的确定:

1)如果select了“如图所示”的“复制为图像”,我将图像的高度和宽度(以像素为单位)除以96(dpi)以获得图像的尺寸(以英寸为单位)。 我相信这个DPI是Office使用的默认值。 然后为了得到它点,我需要乘以72这个图像,因为我需要将其转换为PowerPoint期望插入操作的单位。 这样做后,通过我的代码的图像匹配原生过程的图像。

2)如果您select了“如打印时显示”选项,我的原始方法像我们上面讨论的那样使用图元文件分辨率来帮助获取大小。

概要:

为在屏幕上显示

x = (metafile.height / 96) * 72 y = (metafile.width / 96) * 72 

如图所示打印

 x = (metafile.height / metafile.HorizontalResolution) * 72 y = (metafile.height / metafile.VerticalResolution) * 72