在VBA中调用Adobe Acrobat或Reader的命令行工具,实现PDF自动打印 (‾◡◝)

在VBA(Visual Basic for Applications)中自动打印PDF文件通常不直接支持,因为VBA本身是针对Microsoft Office应用程序(如Excel、Word和PowerPoint等)的编程语言,并不直接处理PDF文件。但是,你可以通过调用Adobe Acrobat或Reader的命令行工具间接实现自动打印PDF文件的功能。

一、操作步骤

首先需要为你的电脑安装Adobe Acrobat或Reader,你可以使用它们的命令行工具(如AcroRd32.exe)来打印PDF文件。其次需要Acrobat或Reader的安装路径(可能因版本和安装位置而异)。最后编写VBA代码调用命令行。

vbnet 复制代码
Sub PrintPDF()
    '自动打印单个PDF文件
    
    Const Path_Pdf As String = "C:\Users\Desktop\test.pdf"
    Const Adobe_exe As String = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
    Const Printer_Name As String = "Print Driver"
    Dim shellCommand As String
    
    shellCommand = Adobe_exe & " /p /h " & Path_Pdf
    Shell shellCommand, vbHide
    
End Sub


'选择打印机 /t
'shellCommand = Adobe_exe & " /p /h /t "& Printer_Name & Path_Pdf
vbnet 复制代码
Sub BatchPrintPDF()
    '批量打印PDF文件
    
    Const Path_Pdf As String = "C:\Users\Desktop\test"
    Const Adobe_exe As String = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
    Dim shellCommand As String

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Folder = fso.GetFolder(Path_Pdf)

    For Each file In Folder.Files
       shellCommand = Adobe_exe & " /p /h " & file
       Shell shellCommand, vbHide
    Next file
    
End Sub
相关推荐
诸葛大钢铁3 小时前
PDF无法编辑?移除PDF权限的两种方法
经验分享·pdf·pdf权限限制·pdf无法编辑
Felicia-侧听4 小时前
PDF不能打印怎么办?在线解决PDF限制的两个方法
pdf·浏览器·限制打印·限制复制
敲代码娶不了六花4 小时前
Microsoft Print to PDF | Edge打印导出的pdf文件为0kb | 文件异常
pdf
程序员阿明4 小时前
spring boot3识别PDF图纸
java·spring boot·后端·pdf
其实秋天的枫5 小时前
【26年最新】英语六级2015-2025年12月历年真题及答案PDF+六级核心词汇
经验分享·pdf
一晌小贪欢5 小时前
PyQt5 开发一个 PDF 批量合并工具
开发语言·qt·pdf
Metaphor6926 小时前
使用 Python 将 PowerPoint 转换为 PDF
python·pdf·powerpoint
优化控制仿真模型8 小时前
【考研408】考研计算机408统考历年真题及答案解析PDF电子版(2009-2026年)
经验分享·pdf
weitingfu8 小时前
Excel VBA 入门到精通(十):实战项目——自动化报表系统开发
ai·信息可视化·自动化·excel·vba·office·报表系统
一位代码8 小时前
python | PyPDF2 实现 pdf 的拆分与合并
pdf