我注意到,当您复制 Excel 中的范围(复制为图片 - 如屏幕所示)并将其粘贴到 PowerPoint 中时,生成的图像不会 100% 缩放为原始图像(右键单击图像,转到格式设置并转到尺寸以查看比例信息)。
此外,这种缩放比例在不同的计算机上有所不同(可能与显卡有关)。如果您有不同版本的 Office,每台计算机的缩放比例也会有所不同(即,在 Office 03 中,缩放比例为原始比例的 100%,在 Office 07 中,高度和宽度的缩放比例约为原始比例的 75%
Office 如何在内部确定这些缩放比例是否有一些规律和推理?我问这个问题是因为我正在通过 C# 自动执行此复制+粘贴功能(使用互操作性内容)。我使用 CopyAsPicture 方法获取所选范围的高度 x 宽度,并将图像保存为 .emf 文件。然后,我使用之前存储的尺寸作为形状的尺寸,将图像加载到 PowerPoint 形状中。它粘贴它没有错误,但是当我将它与 excel 粘贴为图片的本机 ctrl+c 和 ctrl+v 进行比较时,大小不同。我得出的结论是,这是因为这个奇怪的缩放问题。
顺便说一句,在 C# 中,如果您告诉某个形状的大小为 100x100,并插入它(使用形状的 AddPicture 方法),它在 PowerPoint 中实际上不会是 100x100。如果您随后将该图像复制并粘贴到 Paint 中以查看尺寸,则结果将完全不同(对于我的机器,它会将其放大 135%)。
有人知道发生了什么事吗?或者办公室如何决定这些扩展问题?
谢谢,
鲨鱼
我发现了我的逻辑中的一个缺陷:我不应该考虑缩放,而应该考虑绝对大小。我注意到的一件事是,无论缩放如何,通过本机复制和粘贴粘贴的图像的大小在所有计算机上的所有 Office 版本中都是一致的。经过进一步分析,我发现大小是通过两种方式确定的:
1)如果您选择“复制为图像”并设置“如屏幕上所示”,我将图像的高度和宽度(以像素为单位)除以 96(dpi)以获得图像的尺寸(以英寸为单位)。我相信这个 DPI 是 Office 使用的默认值。然后为了将其转换为点,我需要将该图像乘以 72,因为我需要将其转换为 PowerPoint 在插入操作时期望的单位。完成此操作后,通过我的代码生成的图像与本机程序的图像相匹配。
2)如果您选择了“打印时所示”选项,我原来的方法将按照我们上面讨论的那样使用图元文件分辨率来帮助获取大小。
Summary:
如屏幕所示
x = (metafile.height / 96) * 72
y = (metafile.width / 96) * 72
如打印时所示
x = (metafile.height / metafile.HorizontalResolution) * 72
y = (metafile.height / metafile.VerticalResolution) * 72
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)