月夜克星 发表于 2023-8-26 18:05

PowerShell脚本一键导出Visio源文件为指定dpi的TIF格式图片

# 需求背景

一些书籍,文章排版经常要求导出各种清晰度TIF格式文件,看起来很简单,但是如果你的文章中引用了上百张图片,那么一个个打开Visio源文件再另存为,选择保存位置,格式,导出选项便成为了一项十分无聊的工作。其实Visio提供了Com接口以便编程交互操作,下面这个PowerShell脚本可以帮助你完成这个无聊的机械工作。



# PowerShell代码

```powershell
# 设置变量
$visioFilesPath = (Get-Location).Path# 当前运行目录
$outputPath = (Get-Location).Path   # 当前目录
$dpi = 600                            # 图片的 DPI
$outputFormat = "tif"               #输出格式扩展名

# 创建输出目录
New-Item -ItemType Directory -Force -Path $outputPath | Out-Null

# 创建 Visio 应用程序对象
$visioApp = New-Object -ComObject Visio.Application

# 设置 Visio 应用程序的 DPI
$settings = $visioApp.Settings
$settings.SetRasterExportResolution(3,600,600,0)
$settings.SetRasterExportSize(2)
# 导出 Visio 文件的第一页为图片
$visioFiles = Get-ChildItem -Path $visioFilesPath -Filter "*.vsd*" -File
foreach ($file in $visioFiles) {
    $document = $visioApp.Documents.Open($file.FullName)
    $pages = $document.Pages
    $page = $pages.Item(1)# 获取第一页
    $page.Export("$outputPath\$($file.BaseName).$outputFormat")# 导出为图像文件
    $document.Close()
}

# 退出 Visio 应用程序
$visioApp.Quit()

# 打印完成消息
Write-Host "图片导出完成!"
```

# 使用方法

对上述文件中设置变量部分进行适当修改后保存为.ps1文件,然后在Powershell中运行即可。

上述脚本在Visio LTSC 2021版本测试通过。

Guangnianyinan 发表于 2023-8-28 07:18

赞,优秀

bestwars 发表于 2023-9-8 19:13

优秀,感谢楼主分享

jike0805 发表于 2023-9-20 21:27

厉害,很实用的代码
页: [1]
查看完整版本: PowerShell脚本一键导出Visio源文件为指定dpi的TIF格式图片