printing .pdf from vba
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 343   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

1 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R06516
   
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0799s