กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
464 1
URL.หัวข้อ /
URL
printing .pdf from vba
ถามไว้ที่
http://board.quicktechusa.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=1;t=002037
ดังนี้
Does anyone know of a way to print an adobe acrobat .pdf file from vba???? thanks.
ผมได้ตอบเขาไป โดยให้ใส่ Adobe Acrobat ActiveX ลงในฟอร์ม แล้วจะทำให้สามารถดูไฟล์ pdf และก็สั่งปริ้นท์ออกเครื่อง printer ได้ดังนี้
Public Function PrintPDFFile(strPDF As String) As Boolean
Me.pdf.src = strPDF
Me.pdf.printAll
PrintPDF = False
End Function
แต่เขาได้ติดต่อกลับทาง Email ว่าคลิกพิมพ์ได้ครั้งเดียว พอคลิกพิมพ์ครั้งที่ 2 มัน Error
ผมเลยมานึกถึงฟังก์ชัน API ที่ใช้ในการเปิดไฟล์ต่างๆ (ที่ได้ลงทะเบียนไว้ในเครื่องคอมฯ) ที่เคยยกตัวอย่างไว้ที่
http://agserver.kku.ac.th/basiceng/webboard/Question.asp?GID=259
คือถ้าเปลี่ยนจาก "Play" มาเป็น "Print" มันจะพิมพ์ไฟล์เป้าหมายนั้นออก Printer ให้เราเอง
โค้ดที่เปลี่ยนไปมีดังนี้ครับ
Declare Function ShellExecute 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
Global Const SW_SHOWNORMAL = 1
Function PrintDoc(DocName As String)
On Error GoTo StartDoc_Error
StartDoc = ShellExecute(Application.hWndAccessApp, "Print", DocName, _
"", "C:\", SW_SHOWNORMAL)
Exit Function
StartDoc_Error:
MsgBox "Error: " & Err & " " & Error
Exit Function
End Function
ทดสอบการใช้งาน ให้พิมพ์ PrintDoc("c:\test.doc") ในช่อง Debug Window (Intermediate) แล้วกด Enter ครับ *** Edited by Supap Chaiya *** 29/1/2547 15:42:18
http://board.quicktechusa.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=1;t=002037
ดังนี้
Does anyone know of a way to print an adobe acrobat .pdf file from vba???? thanks.
ผมได้ตอบเขาไป โดยให้ใส่ Adobe Acrobat ActiveX ลงในฟอร์ม แล้วจะทำให้สามารถดูไฟล์ pdf และก็สั่งปริ้นท์ออกเครื่อง printer ได้ดังนี้
Public Function PrintPDFFile(strPDF As String) As Boolean
Me.pdf.src = strPDF
Me.pdf.printAll
PrintPDF = False
End Function
แต่เขาได้ติดต่อกลับทาง Email ว่าคลิกพิมพ์ได้ครั้งเดียว พอคลิกพิมพ์ครั้งที่ 2 มัน Error
ผมเลยมานึกถึงฟังก์ชัน API ที่ใช้ในการเปิดไฟล์ต่างๆ (ที่ได้ลงทะเบียนไว้ในเครื่องคอมฯ) ที่เคยยกตัวอย่างไว้ที่
http://agserver.kku.ac.th/basiceng/webboard/Question.asp?GID=259
คือถ้าเปลี่ยนจาก "Play" มาเป็น "Print" มันจะพิมพ์ไฟล์เป้าหมายนั้นออก Printer ให้เราเอง
โค้ดที่เปลี่ยนไปมีดังนี้ครับ
Declare Function ShellExecute 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
Global Const SW_SHOWNORMAL = 1
Function PrintDoc(DocName As String)
On Error GoTo StartDoc_Error
StartDoc = ShellExecute(Application.hWndAccessApp, "Print", DocName, _
"", "C:\", SW_SHOWNORMAL)
Exit Function
StartDoc_Error:
MsgBox "Error: " & Err & " " & Error
Exit Function
End Function
ทดสอบการใช้งาน ให้พิมพ์ PrintDoc("c:\test.doc") ในช่อง Debug Window (Intermediate) แล้วกด Enter ครับ *** Edited by Supap Chaiya *** 29/1/2547 15:42:18
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R06516
Time: 0.1501s