PDF파일을 OCR로 인식 시키려면 네이버 OCR은 1장씩만 지원됩니다. 그래서 PDF파일 자르기 프로그램을 찾았으나, 역시, 전부 복잡합니다.
그래서 답답해서 만든 pdf 파일자르기를 엑셀로 만들었습니다. 제가 만든건 아니고, 역시나 엑셀 고수분들께서 미리 만들어 놓은 코드를 조합했습니다.
1. PDF페이지를 엑셀에서 읽어오기
2. 1페이지 단위로 PDF파일을 쪼개기(PDFtk이용)
PDFtk를 사용하기 위해서는 shell명령을 사용해야 합니다. 하지만, 아크로벳리더가 설치 안되어 있으면 shell 명령 안됩니다.
이때는 디버그 프린트 텍스트를 cmd에 붙여 넣으면 됩니다.
아니면, 아크로벳리더를 설치하고 다시 실행하면 PDF파일 쪼개기 잘 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | '답답해서 만든 pdf 파일자르기 - ' 아크로벳리더가 설치 안되어 있으면 shell 명령 안됨. ' 디버그 프린트 텍스트를 cmd에 붙여 넣으면 됩니다. Sub Extracting_Pdf_Using_PdfTk_Server() Dim i_folder As String: i_folder = "C:\temp\" '이곳에 폴더이름을 넣으세요/ Dim i_pdf_file: i_pdf_file = "KCI_FI002869020.pdf" '이곳은 파일이름을 넣으세요 Dim i_object As Object: Set i_object = CreateObject("WScript.Shell") Dim I, j As Long Dim i_str As String Dim i_all_page As Integer Dim xFileNum As Long Dim xStr As String Dim RegExp As Object Set RegExp = CreateObject("VBscript.RegExp") RegExp.Global = True RegExp.Pattern = "/Type\s*/Page[^s]" xFileNum = FreeFile Open (i_folder & i_pdf_file) For Binary As #xFileNum xStr = Space(LOF(xFileNum)) Get xFileNum, , xStr Close xFileNum i_all_page = RegExp.Execute(xStr).Count For I = 1 To i_all_page i_str = "cmd /c PDFtk " & i_folder & i_pdf_file & " cat " & I & " output " & i_folder & Left(i_pdf_file, Len(i_pdf_file) - 3) & "_" & Format(I, "000") & ".pdf" Debug.Print i_str i_object.Run i_str, 0, True Next End Sub | cs |