You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何从变量而非路径向Word插入图片(替代AddPicture)

解决直接插入内存中Bitmap到Word的问题

Word的InlineShapes.AddPicture方法仅支持传入文件路径,无法直接接受内存中的System.Drawing.Bitmap对象。要复用你已调整好的$imgResizedObj,可以通过临时文件中转的方式,避免重复读取原文件和调整尺寸。

具体实现步骤

1. 一次性保存调整后的图片到临时文件

在循环开始前执行一次即可,无需每次循环重复保存:

# 生成不重复的临时文件路径
$tempImgPath = [System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), "$([guid]::NewGuid()).png")
# 将调整好的Bitmap保存为PNG格式(也可选择JPG等格式)
$imgResizedObj.Save($tempImgPath, [System.Drawing.Imaging.ImageFormat]::Png)

2. 循环中使用临时文件插入图片

每次循环直接调用AddPicture传入临时路径:

$docImg.Selection.InlineShapes.AddPicture($tempImgPath)

3. 完成所有循环后清理临时文件

确保Word不再占用该文件后删除:

Remove-Item $tempImgPath -Force -ErrorAction SilentlyContinue

备选方案:使用剪贴板插入(慎用)

也可以把Bitmap复制到剪贴板再粘贴到Word,但这种方法可能覆盖用户剪贴板内容,且依赖环境对剪贴板的支持:

# 将调整后的图片复制到剪贴板
[System.Windows.Forms.Clipboard]::SetImage($imgResizedObj)
# 在Word当前选中位置粘贴
$docImg.Selection.Paste()

内容的提问来源于stack exchange,提问作者gonzo0815

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:02:06