html - HTML 导入 Word -> 内联图像尺寸被忽略
问题描述
将 HTML 文件导入 Microsoft Word 时,将忽略内联图像尺寸。例如,以下 HTML 代码:
<html>
<body>
<div>
here's an image 50px in height:
<img height=50 src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAT4AAACfCAMAAABX0UX9AAAAMFBMVEUMETYmKD8AADFlZnCQkZcAACwkJj6Xl5wWGTU5O0oFDDUAACUeIDqpqaxfYGtvcHd51QkgAAABV0lEQVR4nO3QwQGCMAAAsaIIKqj7bysz9L7JCBn7c2HS9hrrYzDpvekrFn2FvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvkRfoi/Rl+hL9CX6En2JvuTqO27MOsfne2fW7w+KdA3sU/NzBAAAAABJRU5ErkJggg==">
</div>
</body>
</html>
在浏览器中看起来像这样:
但是,在 Word 中看起来像这样(注意相对于 12-pt 字体的巨大尺寸):
如何让 Word 中的图像缩放到正确的大小?请注意:
- 添加
style="height:50px;width:100px;max-width:100px;max-height:50px;"
到img标签对Word结果没有影响 - 源图像必须是内联的(
src="data:...
并且不能保存在单独的文件中) - 减少编码数据的尺寸不是和选项,因为分辨率变得不可接受地低(这对于本示例中提供的图像无关紧要,但对于要使用的实际图像很重要)
解决方案
最终让我得到解决的是设置图像的空间分辨率(DPI,每英寸点数)。这是在对 PNG 文件进行 base64 编码之前直接在 PNG 文件中完成的。
使用 Pillow 在 Python 中生成图像输出时,我更改了
img.save(buf, format="PNG")
至
img.save(buf, format="PNG", dpi=(200,200))
Word 尊重这一点,至少对于 PNG 图像,这也是你的情况。它可能会忽略其他属性或只是优先考虑文件的 DPI 设置。
推荐阅读
- python - 如何在python上播放ogg文件
- python-3.x - 如何在 Python 中将不是列中项目的数据框坐标获取到同一数据框中的列中?
- regex - 从名称空间名称中具有正则表达式模式匹配的节点获取 k8s pod
- nativescript - Nativescript 中的事件传播
- python - R,Python之间的系数差异多项式回归
- java - Mapstruct 不区分大小写的映射
- c# - Sinch 回调 API:ICE 事件中的挂断
- javascript - SuiteScript 2.0 中用于替换只读字段中数据的模块?
- mysql - Mysql - 获取一个字段中具有相等值并且在其他字段中具有非空值的所有记录
- android - Android - 如何计算行驶距离