문제

PDF 파일을 텍스트로 변환하는 데 가장 적합한 Python 모듈은 무엇입니까?

도움이 되었습니까?

해결책

PDFMiner 를 사용해보세요.PDF 파일에서 HTML, SGML 또는 "Tagged PDF"형식으로 텍스트를 추출 할 수 있습니다.

태그가 지정된 PDF 형식이 가장 깔끔해 보이며 XML 태그를 제거하면 텍스트 만 남습니다.

Python 3 버전은 다음 위치에서 사용할 수 있습니다.

다른 팁

PDFMiner 패키지는 codeape 가 게시되었습니다.

수정 (다시) :

PDFMiner가 20100213 버전에서 다시 업데이트되었습니다.

다음에서 설치 한 버전을 확인할 수 있습니다. 라코 디스

다음은 업데이트 된 버전입니다 (변경 / 추가 한 내용에 대한 의견 포함) : 라코 디스

수정 (다시) :

다음은 pypi , 20100619p1의 최신 버전에 대한 업데이트입니다. 간단히 말해 LTTextItemLTChar로 교체하고 LAParams 인스턴스를 CsvConverter 생성자에 전달했습니다. 라코 디스

수정 (한 번 더) :

버전 20110515 업데이트 (Oeufcoque Penteano 덕분에!) : 라코 디스

이러한 솔루션은 PDFMiner의 최신 버전을 지원하지 않기 때문에 PDFMiner를 사용하여 pdf 텍스트를 반환하는 간단한 솔루션을 작성했습니다.이것은 process_pdf로 가져 오기 오류가 발생하는 사람들에게 효과적입니다. 라코 디스

Python 3에서 작동하는 아래 코드를 참조하세요. 라코 디스

Pdftotext Python에서 호출 할 수있는 오픈 소스 프로그램 (Xpdf의 일부)요청했지만 유용 할 수 있음).나는 문제없이 그것을 사용했습니다.Google이 Google 데스크톱에서 사용한다고 생각합니다.

pyPDF 는 잘 작동합니다 (잘 구성된 PDF로 작업한다고 가정). 텍스트 (공백 포함) 만 원하는 경우 다음을 수행 할 수 있습니다. 라코 디스

또한 메타 데이터, 이미지 데이터 등에 쉽게 액세스 할 수 있습니다.

extractText 코드 메모의 주석 : <인용구>

모든 텍스트 그리기 명령을 그들이 제공되는 순서 콘텐츠 스트림, 텍스트 추출. 이것은 일부 PDF 파일에서 잘 작동합니다. 그러나 다른 사람에게는 좋지 않습니다. 사용 된 발전기. 이것은 ~이 될 것이다 미래에 세련됩니다. 의존하지 마십시오 이로부터 나오는 텍스트의 순서 이 기능은 변경됩니다. 기능이 더욱 정교 해졌습니다.

이게 문제인지 아닌지는 텍스트로 무엇을하는지에 따라 달라집니다 (예 : 순서가 중요하지 않은 경우 괜찮거나 생성기가 표시 될 순서대로 스트림에 텍스트를 추가하는 경우, 괜찮아). 매일 사용하는 pyPdf 추출 코드가 문제없이 있습니다.

pdfminer를 라이브러리로 아주 쉽게 사용할 수도 있습니다.pdf의 콘텐츠 모델에 액세스 할 수 있으며 자신 만의 텍스트 추출을 만들 수 있습니다.아래 코드를 사용하여 pdf 내용을 세미콜론으로 구분 된 텍스트로 변환했습니다.

이 함수는 단순히 y 및 x 좌표에 따라 TextItem 콘텐츠 개체를 정렬하고 ';'로 같은 줄에있는 개체를 구분하여 하나의 텍스트 줄과 동일한 y 좌표를 가진 항목을 출력합니다.문자.

이 방법을 사용하여 다른 도구로는 추가 구문 분석에 적합한 콘텐츠를 추출 할 수없는 pdf에서 텍스트를 추출 할 수있었습니다.내가 시도한 다른 도구로는 pdftotext, ps2ascii 및 온라인 도구 pdftextonline.com이 있습니다.

pdfminer는 PDF 스크래핑을위한 귀중한 도구입니다. 라코 디스

업데이트 :

위의 코드는 이전 버전의 API에 대해 작성되었습니다. 아래 댓글을 참조하세요.

slate 는 라이브러리에서 PDFMiner를 매우 간단하게 사용할 수있는 프로젝트입니다. 라코 디스

파이썬 모듈 내에서 특정 PDF를 일반 텍스트로 변환해야했습니다. PDFMiner 20110515를 사용했습니다.https://github.com/euske/pdfminer/blob/master/tools/pdf2txt.py "rel="noreferrer "> pdf2txt.py 도구이 간단한 스 니펫을 작성했습니다. 라코 디스

pdfminer와 함께 제공되는 pdf2txt.py 코드의 용도 변경;pdf에 대한 경로를 취할 함수를 만들 수 있습니다.선택적으로 outtype (txt | html | xml | tag) 및 pdf2txt { '-o': '/path/to/outfile.txt'...} 명령 줄과 같은 옵션을 선택합니다.기본적으로 다음을 호출 할 수 있습니다. 라코 디스

텍스트 파일이 생성되며 파일 시스템에서 원본 pdf의 형제입니다. 라코 디스

PDFminer는 내가 시도한 pdf 파일의 모든 페이지에 [페이지 1/7 ...] 한 줄을주었습니다.

지금까지 내가 가진 최고의 대답은 pdftoipe 또는 Xpdf를 기반으로하는 C ++ 코드입니다.

내 질문 참조pdftoipe의 출력은 다음과 같습니다.

또한 Python에서도 사용할 수있는 상용 Java 라이브러리 인 PDFTextStream 이 있습니다.

나는 pdftohtml 인수와 함께 -xml를 사용했습니다. subprocess.Popen()로 결과를 읽으면 pdf의 모든 텍스트 스 니펫 의 x 좌표, y 좌표, 너비, 높이 및 글꼴을 얻을 수 있습니다..동일한 오류 메시지가 나오기 때문에 이것이 아마도 'evince'가 사용하는 것이라고 생각합니다.

열 데이터를 처리해야하는 경우 pdf 파일에 적합한 알고리즘을 개발해야하므로 약간 더 복잡해집니다.문제는 PDF 파일을 만드는 프로그램이 실제로 텍스트를 논리적 형식으로 배치하지 않는다는 것입니다.간단한 정렬 알고리즘을 시도해 볼 수 있고 때로는 작동하지만, 생각한 순서대로 배치되지 않는 텍스트 조각 인 '낙하산'과 '잘못'이있을 수 있습니다.그러니 창의력을 발휘해야합니다.

제가 작업하고있는 pdf 파일을 찾는 데 약 5 시간이 걸렸습니다.하지만 지금은 꽤 잘 작동합니다.행운을 빕니다.

오늘 그 솔루션을 찾았습니다.나를 위해 잘 작동합니다.PDF 페이지를 PNG 이미지로 렌더링 할 수도 있습니다. http://www.swftools.org/gfx_tutorial.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top