如何使用VBA打印PDF文件?
发布时间:2023-09-06 22:41:26
Q:我想要在VBA中使用代码来打印指定的PDF文件,如何实现?
A:在之前的文章中,我们介绍了一个自定义函数ExePath,可以获取能够打开指定文件的EXE程序的路径。这样,我们就可以使用EXE程序来打开该文件了。因此,下面的代码先使用ExePath函数获取PDF文件的可执行程序路径,然后使用它来打开指定的PDF文件。
代码如下:
DeclareFunction FindExecutable Lib “shell32.dll” Alias “FindExecutableA” _
(ByVal lpFileAs String, ByVal lpDirectory As String, ByVal lpResult As String) As Long
Sub Test_PrintPDF()
Dim strFileName As String
strFileName = “D:\test.pdf”
PrintPDf strFileName
End Sub
Sub PrintPDf(fnAs String)
Dim pdfEXE As String
Dim q As String
pdfEXE = ExePath(fn)
If pdfEXE = “” Then
MsgBox “没有找到pdf相关的EXE程序.”,vbCritical, “Macro Ending”
Exit Sub
End If
q = “”””
Shell q & pdfEXE & q & ” /s/o /h /t ” & q & fn & q, vbHide
End Sub
Function ExePath(lpFile As String) As String
Dim lpDirectory As String
Dim strExePath As String
Dim lrc As Long
lpDirectory = “\”
strExePath = Space(255)
lrc = FindExecutable(lpFile, lpDirectory,strExePath)
strExePath = Left$(strExePath,InStr(strExePath, Chr$(0)) – 1)
ExePath = strExePath
End Function
代码中:
1.使用变量strFileName指定了所要打印的PDF文件的完整路径名。
2.对于AcroRd32.exe,传递给Shell命令的参数如下:
/n-启动一个新的Reader实例,即使该实例已经打开
/s-不显示启动界面
/o-不显示打开文件对话框
/h-以最小化窗口打开
/p
/t
3.确保使用双引号将EXE完整的路径和PDF文件完整路径名括起来。
还有一段更简单一些的代码可以实现:
Declare FunctionapiShellExecute Lib “shell32.dll” Alias “ShellExecuteA” ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long
Public Sub PrintFile(ByVal strPathAndFilename As String)
Call apiShellExecute(Application.hwnd,”print”, strPathAndFilename, vbNullString, vbNullString, 0)
End Sub
Sub test()
PrintFile (“D:\test.pdf”)
End Sub


猜你喜欢
- 有用户问小编:我使用的win7 64位旗舰版系统,最近在运行regsvr32.exe的时候会提示“模块atiacmxx.dll可能与您正在运
- 电脑使用时间长了垃圾堆积过多难免会变卡,导致电脑卡的原因还有很多,比如中毒、硬件配置低等等。那就有用户问了重装系统可以改善这个情况吗?电脑特
- PPT幻灯片正在放映时怎么使用画笔标记?正在播放课件,发现有重点的地方,想随手标记一下,该怎么使用ppt中的画笔工具呢?下面我们来看看ppt
- Excel中经常需要为有日期的序列填充日期,日期向下填充具体该如何操作呢?接下来是小编为大家带来的excel表格日期向下填充的方法,供大家参
- Win10电脑安装不了360安全卫士怎么办?有用户想要在自己的电脑上安装360安全卫士这个软件的时候,发现软件的安装进程出现了失败的情况。遇
- 每当电脑意外断电或者非法关机时,下次再开机系统会自动检测并修复硬盘,有什么方法能让系统每次开机都能自检并修复硬盘呢?疑惑的朋友可以看看下文用
- win10字体模糊发虚不清晰的解决方法?有的用户系统使用久了就容易出现问题,在win10系统中更是经常发现,比如系统桌面字体模糊不清晰,那要
- win10作为新系统,很多用户都已经安装了win10正式版,不过最近不少朋友反映自己安装了win10后系统盘变得过于拥挤了,导致运行系统的速
- 要知道IIS其实是Windows10自带的功能,一般情况下看不到,需要用户自己手动启用功能以后才能看到和使用,那么Win10怎样正确安装II
- 相信大家都知道,电脑中下载的软件总会有恶意软件强行修改IE主页,并且强行锁定,让我们无法修改主页,最近就有Win7用户反映Win7 IE主页
- 哪个游戏平台比较好?现在市面上的游戏平台很多,但是很多用户不知道哪个游戏平台比较好,这里小编为大家整理了比较受欢迎的十大游戏平台,感兴趣的快
- ppt2013怎么另存为视频?相信很多人不知道ppt可以导出为视频,更别说能知道怎么到处,下面小编就为大家介绍下ppt2013另存为视频方法
- 怎么启动和关闭MySQL?许多用户在编程的时候都会使用到sql数据库,而在使用的过程中通过命令行去控制数据库的开启和关闭会非常的方便,但是有
- Sketch49 正式发布了,在新的版本中加入了期待已久的 Link(链接) 功能,目前仅支持点击跳转指定页面。关于
- excel是我们常用的办公软件,那么Excel如何设置横向打印?下面小编带来将纸张设置成横向打印的方法,希望对大家有所帮助excel是我们常
- 在使用win10的过程中,有的用户担心误碰机箱面板电源键而导致电脑直接关机,那么我们可以将机箱面板电源键屏蔽掉,这样就能够避免按电源键关机了
- 很多用户升级了Win11想体验一下新系统的功能与操作,结果发现使用起来非常的不顺手,想要将系统退回Win10系统,那有没有办法可以退回Win
- 很多用户都不是很习惯Win10的默认edge浏览器,想切换成ie,但是不清楚如何对此进行转换?没关系,下面小编就给大家带来关于浏览器edge
- wps表格怎么保存为Excel?对于新手来说熟练运用wps表格还是有一定难度,怎么办?下面小编马上就告诉大家wps表格保存为Excel的方法
- 有win7用户在电脑中右键点击计算机管理的时候,系统将弹出该文件没有相关程序来执行该操作的信息。无法打开管理系统,只能打开控制面板,这使用户