2009-11-05 7 views
6

PDF 파일의 텍스트 (단어)를 하나의 긴 문자열 또는 문자열 배열로 가져 오는 가장 쉬운 방법은 무엇입니까?PDf에서 문자열로

나는 pdfbox를 시도했지만 저를 위해 작동하지 않습니다.

+1

pdfbox에 대해 작동하지 않았다 무엇? 기존 문제에 대한 대안이나 해결책을 찾고 계십니까? – Catchwa

+0

글쎄, 나는 API가 잘 설계되지 않았고 iText를 간략하게 살펴 봤는데 더 좋은 선택이라고 생각한다. API는 내 필요에 대해 논리적 인 것처럼 보입니다. – Ankur

답변

1

JPedalMultivalentJava에서 텍스트 추출을 제공하거나 당신이 많은 새로운 PDF 파일에 Runtime.exec

2

PDFBox의 barfs, 임베디드 PNG 이미지로 특히를 사용하여 xpdf에 액세스 할 수 있습니다.

나는 PDFTextStream

4

사용 iText를 매우 감명을 받았습니다. 예를 들어 다음 스 니펫은 텍스트를 추출합니다.

 
PdfTextExtractor parser =new PdfTextExtractor(new PdfReader("C:/Text.pdf")); 
parser.getTextFromPage(3); 

0

글쎄, 내가 (이 PDFBox을 기반으로) PDF 원시 텍스트를 추출하기 위해 티카를 사용했다,하지만 난 당신이 (자동 감지 도움이 다른 파일 형식에서 텍스트를 추출 할 수있는 경우에만 티카가 유용하다고 생각 많이).

PDF로만 구문 분석하려면 PDFTextStream 을 추천합니다. 다른 apis (예 : iText 및 PDFBox)보다 구문 분석기가 훨씬 뛰어납니다.

PDFTextStream을 사용하면 구조화 된 텍스트 (페이지 -> 블록 -> 라인 -> textUnits)를 쉽게 얻을 수 있으며 문자 인코딩, 높이, 페이지의 문자 위치 등과 같은 상관 정보를 추출 할 수 있습니다. ..

예 :

public class ExtractTextAllPages { 
    public static void main (String[] args) throws IOException { 
     String pdfFilePath = args[0]; 
     PDFTextStream pdfts = new PDFTextStream(pdfFilePath); 
     StringBuilder text = new StringBuilder(1024); 
     pdfts.pipe(new OutputTarget(text)); 
     pdfts.close(); 
     System.out.printf("The text extracted from %s is:", pdfFilePath); 
     System.out.println(text); 
    } 
}