728x90
반응형
from io import StringIO
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfparser import PDFParser
def read_pdf(filename):
output_string = StringIO()
with open(filename, 'rb') as f:
parser = PDFParser(f)
doc = PDFDocument(parser)
rsrcmgr = PDFResourceManager()
device = TextConverter(rsrcmgr, output_string, laparams=LAParams())
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.create_pages(doc):
interpreter.process_page(page)
return str(output_string.getvalue())
# "1.pdf" 파일을 불러옵니다.
txt = read_pdf("C:\Users\user\Desktop\VSCode(python)\(CODE)PDF,OCR\pdf_raw\1.pdf")
# "성명/소속"이 있는 열번호를 출력합니다.
print(txt.find("성명/소속"))
# "성명/소속"이 있는 열번호 136열 근방(100~200열)을 출력합니다.
print(txt[100:200])
# 해당 위치(100~200열)에서 ":"을 기준으로 부분을 나누며, 구분기호 ":"을 "---"로 출력합니다.
for part in txt[100:200].split(":"):
print(part)
print("--------------------")
# 해당위치(100~200열)에서 "---"로 구분된 부분 중 "성명/소속"이 위치하는 [1]번째 요소를
# 인식하여 strip으로 양쪽 공백을 제거, "/" 문자를 "_"로 대체, "2. 임용기간" 문자를 ""공백으로 대체하여 출력합니다.
print(txt[100:200].split(":")[1].strip().replace(" / ","_").replace("2. 임용기간",""))
728x90
반응형
'직장인' 카테고리의 다른 글
[회사원] 업무 코딩기록 - (PDrwF)File Slicing(1EA) (0) | 2024.12.20 |
---|---|
[회사원] 업무 코딩기록 - (PDFMiner)Sorting_FIle Rename (7) | 2024.12.20 |
[회사원] 업무 코딩기록 - (PDFMiner)Read_Find(생년월일)열 (0) | 2024.12.20 |
[회사원] 업무 코딩기록 - (pdfminer)Read to txt (2) | 2024.12.20 |
[회사원] 업무 코딩기록 - (Pandas)Vlookup (0) | 2024.12.20 |