如何使用VBA打印PDF文件?

      網友投稿 2181 2025-03-31

      如何使用VBA打印PDF文件?


      Q:我想要在VBA中使用代碼來打印指定的PDF文件,如何實現?

      A:在之前的文章中,我們介紹了一個自定義函數ExePath,可以獲取能夠打開指定文件的EXE程序的路徑。這樣,我們就可以使用EXE程序來打開該文件了。因此,下面的代碼先使用ExePath函數獲取PDF文件的可執行程序路徑,然后使用它來打開指定的PDF文件。

      代碼如下:

      如何使用VBA打印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

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何打印備注?(怎么把備注打印出來)
      下一篇:用 Excel 快速從出生日期中獲取職工的星座信息以備禮物(用一生去愛你)
      相關文章
      亚洲mv国产精品mv日本mv| 亚洲AV日韩AV一区二区三曲| 亚洲熟女综合一区二区三区| 亚洲六月丁香六月婷婷蜜芽| 久久亚洲国产精品成人AV秋霞| 国产精品亚洲а∨无码播放| 国产成人高清亚洲| 亚洲区日韩区无码区| 久久久久久亚洲av无码蜜芽| 在线观看亚洲AV每日更新无码| 亚洲国产成人精品激情| 亚洲www在线观看| 中文字幕亚洲男人的天堂网络| 亚洲另类小说图片| 亚洲精品一二三区| 亚洲色偷偷色噜噜狠狠99网| 亚洲日本一线产区和二线产区对比| 77777午夜亚洲| 亚洲人成免费电影| 色偷偷亚洲女人天堂观看欧| 亚洲中文字幕无码av永久| 亚洲色成人四虎在线观看| 亚洲熟伦熟女专区hd高清| 亚洲国产综合在线| 亚洲一区二区久久| 狠狠色伊人亚洲综合网站色 | 亚洲国产小视频精品久久久三级| 风间由美在线亚洲一区| mm1313亚洲精品无码又大又粗| 国产亚洲精品国产福利在线观看| jlzzjlzz亚洲乱熟在线播放| 亚洲中文字幕不卡无码| 国产精品亚洲A∨天堂不卡| 亚洲视频精品在线| 亚洲日韩乱码久久久久久| 国产亚洲sss在线播放| 亚洲AV成人精品一区二区三区| 亚洲欧洲中文日韩久久AV乱码 | 久久精品亚洲男人的天堂| 亚洲区小说区激情区图片区| 久久夜色精品国产嚕嚕亚洲av|