Java에서 PDF 파일을 읽는 방법

click fraud protection
사무실에서 일하는 여성

이미지 크레디트: Pixland/Pixland/게티 이미지

쉽게 사용할 수 있는 라이브러리를 사용하여 Java에서 PDF 파일을 읽는 것은 어렵지 않습니다. PDF 파일을 읽으면 해당 파일의 텍스트를 처리할 수 있는 Java 프로그램을 작성할 수 있습니다. PDF 파일을 읽기 위한 한 가지 옵션은 Apache에서 사용할 수 있는 무료 오픈 소스 PDFBox 라이브러리입니다. Eclipse Java 개발 플랫폼은 이 작업을 더 쉽게 만들고 다운로드할 라이브러리를 관리합니다. 이러한 Java 라이브러리를 사용하려면 Java 프로그래밍에 익숙해야 합니다.

필요한 라이브러리 수집

1 단계

Sun 웹 사이트에서 Java JDK를 다운로드합니다. 이것은 실행하여 시스템에 설치할 수 있는 실행 파일입니다. 버전은 Windows, Mac 및 Linux용으로 제공됩니다. 빨간색 "다운로드" 버튼을 클릭합니다. 메시지가 표시되면 "jdk-6uxx-windows-xxx.exe"라는 파일을 저장합니다. 이 파일을 저장한 다음 두 번 클릭하여 Java 설치 프로그램을 시작합니다.

오늘의 비디오

2 단계

Eclipse 개발 시스템을 다운로드하고 최상위 디렉토리에 압축을 풉니다. "Java 개발자를 위한 Eclipse IDE"를 선택하십시오. "eclipse-java-galileo-SR2-win32.zip" 다운로드가 시작됩니다. 다운로드가 완료된 후 파일을 두 번 클릭하여 압축을 풉니다. Eclipse의 압축을 풀려면 "C:" 루트 디렉토리 위치를 선택하십시오.

3단계

Eclipse zip 파일의 압축을 풀어 방금 생성한 디렉토리에서 "eclipse.exe"를 두 번 클릭하여 Eclipse를 시작합니다. Eclipse 시스템에서 "PrintPdf"라는 프로젝트를 작성하십시오. "파일", "새로 만들기", "자바 프로젝트"를 차례로 선택합니다. 나타나는 대화 상자에 프로젝트 이름 "PrintPdf"를 입력합니다. "소스 및 클래스 파일에 대해 별도의 폴더 만들기"라는 라디오 버튼이 선택되어 있는지 확인합니다. "마침"을 클릭하십시오.

4단계

"PrintPdf" 프로젝트에 "lib" 폴더를 만듭니다. "PrintPdf" 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "새로 만들기"를 선택한 다음 "폴더"를 선택합니다. "lib"라는 이름을 입력하고 "마침"을 클릭합니다.

5단계

Apache 사이트에서 Apache "PDFBox.jar"을 다운로드하고 방금 생성한 lib 디렉토리에 복사합니다. 동일한 웹 페이지에서 "fontbox-nn.jar" 파일과 "jempbox-nn.jar" 파일을 다운로드합니다. 각각의 경우에 해당 jar 파일을 클릭하면 이 파일을 제공할 수 있는 여러 서버 중 하나를 선택할 수 있는 페이지로 이동합니다. 각각을 선택하면 각 jar 파일이 다운로드됩니다. 방금 만든 lib 디렉터리에 각 jar 파일을 복사합니다.

6단계

동일한 방식으로 Apache log4j.jar 패키지를 다운로드하고 log4j.jar 파일을 디렉토리에 복사합니다. Apache PDFBox 라이브러리는 이 Apache 로깅 라이브러리를 사용하므로 이 파일이 있어야 합니다.

7단계

Apache Commons Discovery 패키지를 zip 파일로 다운로드합니다. zip 파일을 두 번 클릭하고 "commons-discovery-nn.jar"을 선택하고 lib 디렉토리에 압축을 풉니다.

8단계

Eclipse에서 "lib" 디렉토리를 클릭하고 "F5"를 누르십시오. 추가한 모든 jar 파일이 표시되는지 확인하십시오.

9단계

PrintPDF 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택합니다. "Java 빌드 경로"를 선택하고 "라이브러리" 탭을 선택합니다. "Add jars"를 클릭하고 방금 생성한 lib 디렉토리로 이동하여 "commons-logging-nn.jar" "fontbox-nn.jar", "jempbox-nn.jar", "log4j-nn.jar"을 추가합니다. ," 및 "pdfbox-nn.jar." "확인"을 클릭하십시오.

PDF를 읽기 위한 코드 작성

1 단계

"PrintPDF" 프로젝트의 "src" 폴더를 마우스 오른쪽 버튼으로 클릭하고 "새로 만들기"와 "패키지"를 선택합니다. 의미 있는 이름을 사용하여 패키지를 만듭니다. 예를 들어 패키지 이름을 "com.pdf.util"로 지정합니다. "마침"을 클릭하십시오.

2 단계

방금 만든 패키지 이름을 마우스 오른쪽 버튼으로 클릭하고 "새로 만들기"를 선택한 다음 "클래스"를 선택합니다. 라는 클래스를 생성합니다. "PDF텍스트 파서." 시스템에서 생성할 수 있도록 "public static void main..."으로 표시된 확인란을 클릭해야 합니다. "메인" 방법.

3단계

다음 코드를 포함하도록 "PDFTextParser" 클래스의 "main" 메서드를 편집합니다.

public static void main (String args[]){ PDFTextParser pdf = new PDFTextParser("data/javaPDF.pdf") GO //결과 출력 System.out.println (pdf.getParsedText()) GO }

출력하려는 ​​파일은 PDFTextParser("data/JavaPDF.pdf")에 대한 생성자에서 철자됩니다. 명령줄 인수가 될 수도 있습니다.

PDFTextParser pdf = 새로운 PDFTextParser(argv[0])

가다

또는 GUI 인터페이스에서 선택됩니다.

PDFTextParser 클래스의 인스턴스를 만든 다음 "getParsedText" 메서드를 호출합니다.

4단계

생성된 최상위 클래스 라인 "public class PDFTextParser" 바로 아래에 다음 코드를 삽입합니다.

개인 PDFParser 파서 = null GO

// PDF 문서에서 텍스트를 추출합니다. public PDFTextParser(String fileName) { 파일 파일 = 새 파일(fileName)

GO if (!file.isFile()) { System.err.println("File " + fileName + "가 존재하지 않습니다.") GO } //PDF 파서의 인스턴스 설정 시도 { 파서 = 새 PDFParser(새 FileInputStream(파일)) GO } catch(IOException e) { System.err.println("PDF를 열 수 없습니다. 파서. " + e.getMessage()) GO } } // 공개 문자열 getParsedText() { PDDocument pdDoc = null GO COSDocument cosDoc = null;
문자열 parsedText = null; 가다

{ PDFTextStripper pdfStripper = 새로운 PDFTextStripper() 시도

GO parser.parse() GO cosDoc = parser.getDocument() GO pdDoc = 새로운 PDDocument(cosDoc) GO

//모든 페이지 목록 가져오기 List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

가다

//시작 페이지와 끝 페이지의 다른 값을 선택하여 //원하는 모든 페이지를 인쇄할 수 있습니다. pdfStripper.setStartPage (1); //1부터 시작하는 int 길이 = list.size(); //총 페이지 수 pdfStripper.setEndPage(길이); //마지막 페이지 //선택한 페이지의 텍스트 가져오기 parsedText = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println("PDF 문서를 구문 분석하는 동안 예외가 발생했습니다." + e.getMessage()) GO } 마침내 { try { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch(IOException e) { e.printStackTrace() GO } }
구문 분석된 텍스트 반환 GO }

5단계

프로그램을 실행합니다. PDFTextParser 클래스를 마우스 오른쪽 버튼으로 클릭하고 "다음 계정으로 실행"을 클릭한 다음 "Java 프로그램"을 클릭합니다. 프로그램이 실행되고 코드에 입력한 PDF 파일의 텍스트 내용을 인쇄해야 합니다.

Log4j 시작 오류 메시지 억제

1 단계

시작 시 구성 파일을 찾을 수 없을 때 생성되는 Java 로깅 시스템 log4j 오류 메시지를 표시하지 않도록 구성 파일을 생성합니다. PrintPDF 프로젝트의 "src" 폴더를 마우스 오른쪽 버튼으로 클릭하고 "새로 만들기"를 선택한 다음 "파일"을 선택합니다. 파일 이름을 "log4j.properties"로 지정하십시오. Eclipse는 이 새 파일에 대해 빈 화면을 표시합니다.

2 단계

"log4j.properties" 파일을 나타내는 빈 화면에 다음 줄을 붙여넣습니다.

3단계

"log4j.properties" 파일을 저장합니다. 최상위 "src" 디렉토리에 이 파일이 있으면 log4j 시작 메시지와 사소한 로깅 메시지가 표시되지 않습니다. log4j 시스템은 실제 오류만 출력합니다.

PDF 파일에서 텍스트를 추출하는 데 사용할 수 있는 상용 패키지도 많이 있지만 저렴하지는 않습니다.