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

如何定期自动将OneNote分区文件(.one)导出为PDF?

自动将OneNote分区导出为PDF的PowerShell方案

方法1:利用OneNote COM对象实现无交互导出

OneNote提供了COM自动化接口,可直接通过PowerShell调用完成无交互导出,无需手动处理保存对话框。以下是完整实现脚本:

# 初始化OneNote应用COM对象
$oneNote = New-Object -ComObject OneNote.Application

# 获取所有笔记本的层级XML结构
$xmlDoc = New-Object System.Xml.XmlDocument
$oneNote.GetHierarchy([string]::Empty, [Microsoft.Office.Interop.OneNote.HierarchyScope]::hsNotebooks, [ref]$xmlDoc.InnerXml)

# 定位目标分区(替换为你的实际笔记本/分区名称)
$targetNotebook = "个人笔记本"
$targetSection = "工作记录"
$nsManager = New-Object System.Xml.XmlNamespaceManager($xmlDoc.NameTable)
$nsManager.AddNamespace("one", "http://schemas.microsoft.com/office/onenote/2013/onenote")
$sectionNode = $xmlDoc.SelectSingleNode("//one:Notebook[@name='$targetNotebook']//one:Section[@name='$targetSection']", $nsManager)

if ($sectionNode) {
    # 执行PDF导出(替换为你的目标输出路径)
    $outputPath = "D:\Backup\OneNote_Export\工作记录.pdf"
    $oneNote.Publish($sectionNode.ID, $outputPath, [Microsoft.Office.Interop.OneNote.PublishFormat]::pfPDF)
    
    Write-Host "导出成功:$outputPath"
} else {
    Write-Error "未找到指定的OneNote分区,请检查笔记本/分区名称是否正确"
}

# 清理COM对象,避免内存泄漏
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($oneNote) | Out-Null
Remove-Variable oneNote

关键注意点:

  • 运行前确保OneNote已安装,PowerShell建议以管理员权限启动(避免COM权限限制)
  • 需替换脚本中的笔记本名称、分区名称和输出路径为实际值
  • 若无法定位分区,可临时添加$xmlDoc.InnerXml输出完整层级结构,确认名称拼写是否一致

方法2:结合AutoHotkey自动处理保存对话框

如果不想使用COM接口,可通过AutoHotkey编写脚本自动完成对话框操作,配合PowerShell实现自动化:

  1. 编写AutoHotkey脚本(保存为AutoSaveOneNotePDF.ahk):
; 等待OneNote保存对话框出现,超时10秒
WinWait, 保存为, , 10
if ErrorLevel
    ExitApp
; 输入目标保存路径并确认(替换为你的实际路径)
SendInput, D:\Backup\OneNote_Export\工作记录.pdf{Enter}
  1. 在PowerShell中调用:
; 先启动AutoHotkey脚本等待对话框
Start-Process "C:\Program Files\AutoHotkey\AutoHotkey.exe" "C:\Scripts\AutoSaveOneNotePDF.ahk"
; 启动OneNote打印命令
Start-Process "C:\Program Files\Microsoft Office\root\Office16\ONENOTE.EXE" -ArgumentList "/print `"C:\path\to\my_section.one`""

设置定期自动执行

通过Windows任务计划程序将脚本设置为定时任务:

  • 触发器:配置每日/每周等定期执行时间
  • 操作:启动程序,选择pwsh.exe,参数填写-File "C:\Scripts\Your_Export_Script.ps1"
  • 条件:按需勾选"唤醒计算机运行此任务"(适用于关机状态下需自动执行的场景)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:55:54