thongkorn โพสต์ 2018-9-11 08:05:28

[VB.NET] การเปิดอ่านไฟล์ PDF (Portable Document Format)

http://www.g2gnet.com/webboard/images/vbnet/adobepdf.png

เป็นอีกคำถามที่ถามเข้ามา จะทำฐานข้อมูลจัดเก็บเอกสาร PDF ได้อย่างไร? แต่ก่อนจะไปถึงจุดนั้นเราก็ต้องทำการเปิดไฟล์ PDF ให้ได้ซ่ะก่อนซิขอรับ โดยการใช้ Adobe Acrobat Reader Component เป็นตัวช่วยเปิดไฟล์ PDF ซึ่งถ้าหากเครื่องคอมฯเราไม่มี Adobe Reader ก็ต้องไปดาวน์โหลดฟรีมาติดตั้งก่อนแหละครับ ...

ดาวน์โหลด Adobe Acrobat Reader DC ฟรี ... จากนั้นก็ทำการติดตั้งเข้าไปเลยครับ ...

http://www.g2gnet.com/webboard/images/vbnet/adobecom.png
เรียกใช้งาน Adobe Reader Component ... (จากหมายเลข 1 เราจะเอาไปเข้าในกลุ่มเครื่องมือ หรือ ToolBox ตัวไหนก็เลือกได้ตามใจชอบเอาเองครับ)

http://www.g2gnet.com/webboard/images/vbnet/adobecomdrag.png
จับลาก Component มาวางบนฟอร์ม

มาดูโค้ดง่ายๆกันเถอะ ...
' / ----------------------------------------------------------------
' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
' / eMail : thongkorn@hotmail.com
' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
' / Facebook: https://www.facebook.com/commonindy (Worldwide)
' / Purpose: Open PDF File with VB.NET.
' / Microsoft Visual Basic .NET (2010)
' /
' / This is open source code under @CopyLeft by Thongkorn Tubtimkrob.
' / You can modify and/or distribute without to inform the developer.
' / ----------------------------------------------------------------
Public Class frmReadPDF
    '// Download Adobe Reader DC
    '// https://get.adobe.com/reader/
    Private Sub btnBrowse_Click(sender As System.Object, e As System.EventArgs) Handles btnBrowse.Click
      '// ประกาศใช้งาน Open File Dialog ในแบบ Run Time
      Dim dlgOpenFile As OpenFileDialog = New OpenFileDialog()

      ' / ตั้งค่าการใช้งาน Open File Dialog
      With dlgOpenFile
            .InitialDirectory = MyPath(Application.StartupPath)
            .Title = "เลือกไฟล์ PDF File"
            .Filter = "PDF Files (*.pdf)|*pdf"
            .FilterIndex = 1
            .RestoreDirectory = True
      End With
      ' หากเลือกปุ่ม OK หลังจากการ Browse ...
      If dlgOpenFile.ShowDialog() = DialogResult.OK Then
            txtFileName.Text = dlgOpenFile.FileName
            Me.AxAcroPDF2.LoadFile(dlgOpenFile.FileName)
      End If

    End Sub

    Private Sub frmReadPDF_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
      Me.Dispose()
      Application.Exit()
    End Sub

    ' / --------------------------------------------------------------------------------
    ' / Get my project path
    ' / AppPath = C:\My Project\bin\debug
    ' / Replace "\bin\debug" with "\"
    ' / Return : C:\My Project\
    Function MyPath(ByVal AppPath As String) As String
      '/ MessageBox.Show(AppPath);
      AppPath = AppPath.ToLower()
      '/ Return Value
      MyPath = AppPath.Replace("\bin\debug", "\").Replace("\bin\release", "\").Replace("\bin\x86\debug", "\")
      '// If not found folder then put the \ (BackSlash) at the end.
      If Microsoft.VisualBasic.Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\"
    End Function

End Class
ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010)

my2alee โพสต์ 2019-8-21 16:15:08

VB6 ได้ไหมครับ

thongkorn โพสต์ 2019-8-21 20:12:39

ผมใช้ FoxIt Reader ครับ ดาวน์โหลดได้จากที่นี่ มันจะให้ตัว Viewer แบบ OCX มาให้ใช้งานด้วย โดยเราต้องเลือก Project --> Components (ตามภาพ)
Me.FoxitPhantomOCX1.OpenFile (App.Path & "\test.pdf")

my2alee โพสต์ 2019-8-22 10:10:02

แก้ไขครั้งสุดท้ายโดย my2alee เมื่อ 2019-8-22 10:12

ผมใช้เลือกใช้ Acrobat เพราะว่าทุกเครื่องที่ทำงาน เป็นโปรแกรมสามัญประจำเครื่อง
เลยใช้ตัวนี้ครับ Adobe Acrobat 7.0 Browser Control Type Library 1.0 รันบน Win8 / 7 / xp ได้..แต่พอรันบน Win10 แล้วไม่เวิร์ค ยังหาสาเหตุไม่เจอ

AcroPDF1.src = App.Path & "\DES-1026G_ds.pdf"

thongkorn โพสต์ 2019-8-22 15:23:48

AcroPDF.dll มันมีปัญหากับ Windows 10 ครับ เมื่อใช้ VB6 เอ๋อตลอดกาล

my2alee โพสต์ 2019-8-23 10:03:24

thongkorn ตอบกลับเมื่อ 2019-8-22 15:23
AcroPDF.dll มันมีปัญหากับ Windows 10 ครับ เมื่อใช้ VB6 เอ๋อตลอดกาล

เศรา้เลยครับงานนี้ เขาเร่งจะใช้พอดี อุตส่าห์เขียนอยู่หลายวัน (พอดีเครื่องที่ผมใช้อยู่เป็น win8.1 เห็นรันผ่านเลยคิดว่า Win10 น่าจะใช้ได้)

zxczxc20 โพสต์ 2020-2-20 18:08:37

my2alee ตอบกลับเมื่อ 2019-8-23 10:03
เศรา้เลยครับงานนี้ เขาเร่งจะใช้พอดี อุตส่าห์เขียนอ ...

รบกวนขอแนวทางทำระบบแสกนด้วยครับอาจารย์
หน้า: [1]
ดูในรูปแบบกติ: [VB.NET] การเปิดอ่านไฟล์ PDF (Portable Document Format)