- Tham gia
 - 30/5/06
 
- Bài viết
 - 1,798
 
- Được thích
 - 4,707
 
- 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
	
	  







			




