- Tham gia
- 30/5/06
- Bài viết
- 1,798
- Được thích
- 4,706
- Giới tính
- Nam
Có nhiều cách đọc tập tin pdf, ở đây tôi xin giới thiệu cách đọc tập tin pdf sử dụng công cụ xpdfreader.
http://www.xpdfreader.com/download.html
Trong ví dụ sau tôi sử dụng pdftotext (tức là chuyển pdf sang tập tin text) và sau đó sẽ đưa vào Excel.
1, Đầu tiên các bạn theo link trên tải về, giải nén và copy tập tin pdftotext.exe vào thư mục có chứa tập tin pdf muốn đọc.
2, Thay đổi các thông số ở sheet Setting trong tập tin Excel tôi upload lên cho phù hợp với yêu cầu của mình.
3, Thử chạy bằng việc nhấn vào nút Lấy dữ liệu cũng trong sheet Setting. Kết quả sẽ đưa vào sheet Result.
Code sau:
Trong code ở trên tôi có giải thích.
Hy vọng đây cũng là một ví dụ tham khảo giúp ích cho các bạn.
Lê Văn Duyệt
http://www.xpdfreader.com/download.html
Trong ví dụ sau tôi sử dụng pdftotext (tức là chuyển pdf sang tập tin text) và sau đó sẽ đưa vào Excel.
1, Đầu tiên các bạn theo link trên tải về, giải nén và copy tập tin pdftotext.exe vào thư mục có chứa tập tin pdf muốn đọc.
2, Thay đổi các thông số ở sheet Setting trong tập tin Excel tôi upload lên cho phù hợp với yêu cầu của mình.
3, Thử chạy bằng việc nhấn vào nút Lấy dữ liệu cũng trong sheet Setting. Kết quả sẽ đưa vào sheet Result.
Code sau:
Rich (BB code):
'---------------------------------------------------------------------------------------
' Method : MoFilePdf
' Author : Doit
' Date : 07/04/2019
' Purpose: Nham doc file pdf va dua vao Excel
'
' Tai pdftotext tai http://www.xpdfreader.com/download.html
' Tham khao tai lieu tai http://www.xpdfreader.com/pdftotext-man.html
'---------------------------------------------------------------------------------------
Sub MoFilePdf()
Dim sFolderPath As String, sBatFileName As String, sPdfFileName As String, sTxtFileNamePath As String
Dim sPdfExeFolder As String, sTxtFileName As String, FileNumber As Integer, sData As String
Dim lRow As Long
Dim PID As Variant
Dim wsSetting As Worksheet, wsResult As Worksheet
On Error GoTo MoFilePdf_Error
' Nham tang toc do thuc hien
Application.EnableEvents = False 'Disable Excel Events
Application.ScreenUpdating = False 'Turn Off Screen Updating to eliminate Screen Flicker and to improve speed performance
' Lay ten cac tap tin
'=====================
Set wsSetting = ThisWorkbook.Worksheets("Setting")
Set wsResult = ThisWorkbook.Worksheets("Result")
sFolderPath = wsSetting.Range("E2")
sPdfFileName = wsSetting.Range("E3")
sBatFileName = wsSetting.Range("E4")
sTxtFileName = wsSetting.Range("E5")
sTxtFileNamePath = sFolderPath & "\" & sTxtFileName
sPdfExeFolder = wsSetting.Range("E6")
' Tao tap tin bat
'=================
FileNumber = FreeFile
Open sBatFileName For Output As #FileNumber
' Chuyen ve thu muc tap tin pdftotext.exe
Print #FileNumber, "cd " & sPdfExeFolder
' Lenh ke tiep cho chay chuong trinh pdftotext.exe voi cac tham so thiet lap truoc
' Chu y: su dung Chr(34) cho dau ngoac kep
Print #FileNumber, "pdftotext.exe -layout " & Chr(34) & sPdfFileName & Chr(34) & " " & Chr(34) & sTxtFileName & Chr(34)
' Lenh ke tiep la thoat
Print #FileNumber, "exit"
Close #FileNumber
' Thuc thi batFile
' ================
PID = Shell(sBatFileName, vbNormalFocus)
If Err.Number <> 0 Then
' Neu co loi thi di den bay loi va thong bao
GoTo MoFilePdf_Error
End If
' Tiep tuc dua du lieu ra sheet Result
' =====================================
FileNumber = FreeFile
' Hang dau de xuat du lieu
lRow = 1
wsResult.Cells.Clear ' Xoa du lieu truoc khi xuat ra
Open sTxtFileNamePath For Input As FileNumber
Do While Not EOF(FileNumber)
Line Input #FileNumber, sData
wsResult.Cells(lRow, 1) = sData
lRow = lRow + 1
Loop
Close #FileNumber
' Neu thanh cong thi thong bao
MsgBox "Ban da lay du lieu tu tap tin pdf thanh cong.", vbOKOnly, "Thong bao"
MoFilePdf_Exit:
' Giai phong bien/release memory
Set wsSetting = Nothing
Set wsResult = Nothing
' Tra lai tinh trang ban dau
Application.EnableEvents = True 'Enable Excel Events
Application.ScreenUpdating = True 'Enable Screen Updating
Exit Sub
MoFilePdf_Error:
' vbCrLf la ky tu xuong dong
MsgBox "Loi " & Err.Number & " (" & Err.Description & ")." & vbCrLf & "Vui long kiem tra lai.", vbOKOnly + vbInformation, "Thong bao"
End Sub
Trong code ở trên tôi có giải thích.
Hy vọng đây cũng là một ví dụ tham khảo giúp ích cho các bạn.
Lê Văn Duyệt