PDF를 텍스트로 변환
3142 단어 Python
또 중도에서 그만두더라도 올리고 나중에 업데이트한다.
대목적
나는 그들로 하여금 정부가 발표한 문장을 좀 배우게 하고 싶다.(대략)
수치만 포함하는 것보다 일본어를 포함하는 것을 읽게 하고, 일본어를 포함하는 형태소 해석 등도 시행할 생각이다.
이번 목표
미리 불러오기
날과 씨
불러올 글 선택
일본은행의 단관과 코너 경기지수 등을 생각했지만 한눈에 숫자가 나열돼 포기했다.일본어가 많은 것 같아요.나는 샘플을 만들어 보고 싶다.
전판 인쇄01.pdf~all_03.pdf 활용
PDF 읽기
다음을 참조하였습니다.
경제 백서
https://qiita.com/korkewriya/items/72de38fc506ab37b4f2d
참고로 하는 사이트를 보면서 해보세요.
한편 PDF는 이번에 다운로드 소스와 같은 폴더에 저장됐다.from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
(略)
오류가 발생했습니다.
ModuleNotFoundError: No module named 'cStringIO'
from cStringIO import StringIO
파이썬 2용 모듈 구조입니다.수정은 다음과 같습니다.
from io import StringIO
계속해.def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
laparams.detect_vertical = True
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
ansStr = ""
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
str = retstr.getvalue()
ansStr = ansStr + str
fp.close()
device.close()
retstr.close()
return ansStr
ansText = convert_pdf_to_txt("all_01.pdf" )
file = open('pdf.txt', 'w')
file.write(ansText)
file.close()
이것도 틀렸어.
UnicodeEncodeError: 'cp932' codec can't encode character '\ufb01' in position 91751: illegal multibyte sequence
91751바이트의 문자는 매우 나쁜 것 같다.
print(ansText[91751:91751])
표시되면 아무것도 없습니다. 그리고 [91750:91753]이면 "/"입니다.
부정확한 글자가 있는 것 같아서 아래 사이트를 참고하여 오류를 피하였습니다.
https://tech.bita.jp/article/18
먼저 바이트 열로 변환합니다. (오류 무시)마지막 네 줄은 로 변경됩니다.ansText = convert_pdf_to_txt("all_01.pdf", )
b = ansText.encode('cp932', 'ignore')
ansText_A = b.decode('cp932')
file = open('pdf.txt', 'w')
file.write(ansText_A)
file.close()
출력할 수 있습니다.
{0} 텍스트}
https://qiita.com/butada/items/33db39ced989c2ebf644
원래의 PDF
Reference
이 문제에 관하여(PDF를 텍스트로 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/soshi8/items/5fb7356bd432b6db743f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
미리 불러오기
날과 씨
불러올 글 선택
일본은행의 단관과 코너 경기지수 등을 생각했지만 한눈에 숫자가 나열돼 포기했다.일본어가 많은 것 같아요.나는 샘플을 만들어 보고 싶다.
전판 인쇄01.pdf~all_03.pdf 활용
PDF 읽기
다음을 참조하였습니다.
경제 백서
https://qiita.com/korkewriya/items/72de38fc506ab37b4f2d
참고로 하는 사이트를 보면서 해보세요.
한편 PDF는 이번에 다운로드 소스와 같은 폴더에 저장됐다.from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
(略)
오류가 발생했습니다.
ModuleNotFoundError: No module named 'cStringIO'
from cStringIO import StringIO
파이썬 2용 모듈 구조입니다.수정은 다음과 같습니다.
from io import StringIO
계속해.def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
laparams.detect_vertical = True
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
ansStr = ""
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
str = retstr.getvalue()
ansStr = ansStr + str
fp.close()
device.close()
retstr.close()
return ansStr
ansText = convert_pdf_to_txt("all_01.pdf" )
file = open('pdf.txt', 'w')
file.write(ansText)
file.close()
이것도 틀렸어.
UnicodeEncodeError: 'cp932' codec can't encode character '\ufb01' in position 91751: illegal multibyte sequence
91751바이트의 문자는 매우 나쁜 것 같다.
print(ansText[91751:91751])
표시되면 아무것도 없습니다. 그리고 [91750:91753]이면 "/"입니다.
부정확한 글자가 있는 것 같아서 아래 사이트를 참고하여 오류를 피하였습니다.
https://tech.bita.jp/article/18
먼저 바이트 열로 변환합니다. (오류 무시)마지막 네 줄은 로 변경됩니다.ansText = convert_pdf_to_txt("all_01.pdf", )
b = ansText.encode('cp932', 'ignore')
ansText_A = b.decode('cp932')
file = open('pdf.txt', 'w')
file.write(ansText_A)
file.close()
출력할 수 있습니다.
{0} 텍스트}
https://qiita.com/butada/items/33db39ced989c2ebf644
원래의 PDF
Reference
이 문제에 관하여(PDF를 텍스트로 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/soshi8/items/5fb7356bd432b6db743f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
(略)
from cStringIO import StringIO
from io import StringIO
def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
laparams.detect_vertical = True
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
ansStr = ""
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
str = retstr.getvalue()
ansStr = ansStr + str
fp.close()
device.close()
retstr.close()
return ansStr
ansText = convert_pdf_to_txt("all_01.pdf" )
file = open('pdf.txt', 'w')
file.write(ansText)
file.close()
ansText = convert_pdf_to_txt("all_01.pdf", )
b = ansText.encode('cp932', 'ignore')
ansText_A = b.decode('cp932')
file = open('pdf.txt', 'w')
file.write(ansText_A)
file.close()
Reference
이 문제에 관하여(PDF를 텍스트로 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/soshi8/items/5fb7356bd432b6db743f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)