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

Word邮件合并生成带打开密码的PDF失败问题求助

解决Word邮件合并生成加密PDF的问题

问题原因

Word的SaveAs2方法中,Password参数仅对Word原生格式(如.docx)生效,保存PDF时该参数不会被识别,所以生成的PDF没有加密。要给PDF设置打开密码,需要使用ExportAsFixedFormat方法,该方法支持PDF加密的专用参数。

修改后的VBA代码

替换原代码中保存PDF的部分,改用ExportAsFixedFormat并指定OpenPassword参数:

Set singleDoc = ActiveDocument                                           ' 标记邮件合并生成的当前文档为singleDoc
' 保存带密码的docx文档
singleDoc.SaveAs2 _
    FileName:=masterDoc.MailMerge.DataSource.DataFields("DocFolderPath").Value & Application.PathSeparator & _
        masterDoc.MailMerge.DataSource.DataFields("DocFileName").Value & ".docx", _
    FileFormat:=wdFormatXMLDocument, _
    Password:=masterDoc.MailMerge.DataSource.DataFields("FilePassword").Value  ' 给docx设置打开密码

' 保存带密码的PDF文档
singleDoc.ExportAsFixedFormat _
    OutputFileName:=masterDoc.MailMerge.DataSource.DataFields("PdfFolderPath").Value & Application.PathSeparator & _
        masterDoc.MailMerge.DataSource.DataFields("PdfFileName").Value & ".pdf", _
    ExportFormat:=wdExportFormatPDF, _
    OpenPassword:=masterDoc.MailMerge.DataSource.DataFields("FilePassword").Value  ' 给PDF设置打开密码

singleDoc.Close False                                                    ' 关闭当前文档,准备处理下一条记录

关键说明

  • ExportAsFixedFormat是Word导出PDF/XPS的专用方法,支持OpenPassword(打开密码)和ModifyPassword(修改密码)两个参数,专门用于PDF加密。
  • 确保数据源中的FilePassword字段值正确,密码会直接应用到生成的PDF文件上,打开时会要求输入密码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:13:15