2009-11-10 2 views
1

PDF 파일을 열고 텍스트 파일에 내용을 쓰면 텍스트 파일의 내용이 엉망입니다. 인코딩 때문인 것 같아. 내가 이해 한 바로는 JVM이 기본 문자 집합을 Cp1252 (Windows XP에서 실행 중이기 때문에)으로 설정합니다. 나는 기본 문자 집합을 변경했습니다하지만 결과 (System.setProperty("file.encoding", "ISO-8859-1");)와자바 : PDF를 텍스트 파일에 쓰는 방법?

  • 나는 iText를 사용하려고했지만, 결과의 컨텐츠는 발음 구별 부호

어떤 아이디어를 가지고 일부 문자가 누락?

답변

4

iText가 모든 문자를 올바르게 읽지 않는 이유는 글꼴에 사용 된 인코딩 때문일 수 있습니다. 글꼴을 다음과 같이 선언 할 수 있습니다.

BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED); 

여기서 BaseFont.CP1252는 사용되는 인코딩입니다. 일부 글꼴은 모든 유형의 인코딩을 지원하지 않습니다.

+0

U 매우 제안, 문제 제안의 일부를 해결할 U 제안 : 덕분에 – Stephan

0

PDF는 이진 파일이므로 텍스트 파일로 읽을 수 없습니다. PDF 내용을 읽으려면 타사 라이브러리를 사냥해야합니다.

+0

ur 답장을 보내 주셔서 감사합니다 ... IText를 사용하려고했지만 결과로 나온 내용에 분음 부호가있는 일부 문자가 누락되었습니다. 아이디어가 있으십니까? 덕분에 – Stephan

1

는 iText를 처음부터 PDF를 만들기위한 API이다, 그러나 읽고 기존 파일을 편집 할 수 inorder를, 당신은 당신이 JavaPDF을 시도 할 수있는 다음과 같은 링크 http://www.lowagie.com/iText/

+0

나는 IText를 사용하려고했지만 결과적인 내용에 발음 구별이있는 문자가 누락되었습니다. 아이디어가 있습니까? 덕분에 – Stephan

2

볼 수 있습니다. 그것은 당신이 일을 할 수있는 API를 가지고 있습니다. PDFReader 클래스에서 extractTextFromPage(int pageIndex) 메서드를 호출 할 수 있습니다.

1

특수 패키지를 사용해야합니다. 내가 사용한 두 가지는 pdftotext (http://en.wikipedia.org/wiki/Pdftotext)와 PDFBox (http://incubator.apache.org/pdfbox/)입니다. 꾸러미가있는 경우에도 PDF 작성 도구의 품질이 낮고 불량 PDF가 생성되므로 항상 성공을 보장 할 수는 없습니다.

+0

UR 제안을 주셔서 감사합니다 나는 그것을 시도합니다 – Stephan

2

iText 도우미 클래스 PdfTextExtractor를 사용하면 정상적으로 작동합니다. 그냥 파일을 디스크에 기록 할 때 올바른 인코딩을 사용하고 있는지 확인하십시오

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file),"ISO-8859-1")); 
+0

UR 응답에 대한 U 감사합니다 그것은 훨씬 쉽게 내 작품을 만들었지 만 여전히 내 문제를 해결하지 못했습니다 일부 구별 부호 문제 – Stephan

1

우리 PDFTextStream 도서관 종합 구별하지에 대한 지원뿐만 아니라, 중국어, 일본어를 포함하여 유니 코드 표준에 정의 된 모든 문자 집합을 (제공, 수평 및 수직 쓰기 모드 모두에서 한국어 문자). 다른 도구가없는 곳에서는 분음 기호를 올바르게 추출 할 수 있습니다.

문자를 텍스트로 추출 할 때 Acrobat과 같은 PDF 판독기에서 표시 할 때와 동일하지 않은 경우가 있습니다. 대개이 경우 문제의 텍스트가 이미지 기반 글꼴 (텍스트로 직접 변환되지 않으며 적절한 악센트 부호가있는 문자를 유도하기 위해 OCR 프로세스가 필요함).