如何使用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
猜你喜欢
- 本文主要研究从字符串开头提取数字的技术:1. 这些数字是连续的2. 这些连续的数字位于字符串的开头3. 想要的结果是将这些连续的数字返回到单
- word/excel中怎么输入直径符号?我们在编写文章的时候,想输入直径符号φ,该怎么输入呢?下面我们就来看看直径符号的两种输入方法,需要的
- 1、打开一个自己已经编辑好的word2010文件。2、找到“插入”,在插入功能区,找到“页码”3、首先找到“设置页码格式”,在对话框里进行有
- 大家好,今天我们小编为大家讲解“如何设置excel2007单元格格式基础教程”首先大家可以使用“设置单元格格式”对话框设置所选单元格内容的格
- 一、单击word菜单栏的“文件——选项”; 二、在弹出来的选项窗口中,选择左侧的“高级”选项; &n
- 方法一:用公式编辑器。以word2007为例,从菜单栏里选择“插入“->“对象” 选择“Microsoft 公式 3.0”就
- 在Word2010中创建包含矩阵的公式的详细步骤第1步,打开Word2010文档窗口,切换到“插入”功能区。在“符号”分组中单击“公式”按钮
- 因为某些需要将Word文档每一页的页眉设置成不相同的,但是页脚保持是一样的,下面小编就来分享具体应该怎么操作吧,欢迎大家来到学习。word设
- 好端端的段落怎么就不能居中了呢?请看小伙伴发来的问题素材效果如下: 然后第一反应是制表位吧。结果一看标尺,标尺上干净如图。奇怪了
- 第1步,打开添加了书签的Word 2010文档窗口,在“开始”功能区的“编辑”分组中单击“查找”下拉三角按钮,并在打开的下拉菜单中选择“高级
- 当我们准备为我们的计算机安装操作系统时,我们一定想知道这些版本在win10操作系统的许多版本中占有多大的内存空间。如果安装了,我们需要留出多
- 我们在使用word进行编辑文字的同时,有时候还需要插入图片,这样方便更好的说明文字的具体内容,那么下面就由小编给大家分享下word中文字环绕
- 如何在Mac的Word 2011中自定义项目符号?微调添加到Word 2011 for Mac文档的项目符号的格式。为此,只需转到Mac版O
- 相信很多朋友在使用word排版的过程中,经常会遇到文字对不齐的问题,这里我们分享一下几种文字对齐的解决方法,很实用的。1、上下文字宽度对齐解
- 在Word 2016中保存文档时如何处理错误?在Word 2016中保存文档需要同时使用Word和Windows操作系统。此过程使出现问题的
- Steam平台是目前全球最大的综合性数字发行平台之一。很多小伙伴遇到使用自己Win10专业版系统的电脑无法打开Steam平台。造成这个问题的
- 单元格批注可以起到对单元格内容进行补充说明的作用,这篇文章通过案例跟大家分享一下单元格批注的添加、格式设置和隐藏办法。应用场景下图表格为第六
- 图文并茂的文档,会给人留下深刻的印象,但是用习惯了word2003,现在使用word2010和word2013还不习惯,比如插入图片后设置图
- Excel2010条件格式怎么使用操作方法1、选中所需要运用条件格式的列或行。 Excel2010条件格式2、在“
- excel宏病毒相信大家早已如雷贯耳,那么有什么好的清楚方法吗?答案是可以的,为此本文搜集整理了一些实用方法,感兴趣的朋友可以参考下,或许对