파이톤을 통해 PDF로부터 양식(camelot) - 사회보험료를 받기 위한 표준 월급 -
1. 오프닝
이번 봄에 나는 새로운 사회인이 되었다.곧 다가올 월급날이 무척 기대된다.
월급에 신경을 쓰면 수입에도 신경을 쓴다.
실제 손이 예상보다 조금 적으면 좀 슬프다.
그런 이유로 정확한 계산 기법을 통해 마음의 평온을 유지하고 싶다.
그렇다면 소득을 산정하기 위해서는 사회보험료와 세액을 지급해야 한다.
이 중 사회보험료는 월 소득을 표준보수 월액으로 전환하고 그 값의 보험료율을 곱해 계산한다.
이 글에서는 파이톤을 통해 PDF로부터 표를 받아 사회보험료 산정에 필요한 표준보수 월액을 받는 것을 목표로 한다.
2. 라이브러리 설치
파이톤이 PDF에서 표를 얻는 방법으로 대충 조사해 보니 두 가지가 있는 것 같다.
Tabuler-py 라이브러리나camelot 라이브러리를 사용하는 방법.
타블러-py의 라이브러리 내용은 자바로 작성되기 때문에 PC에 자바 환경이 없으면 작동할 수 없습니다.
복잡한 프로그래밍 환경을 만들고 싶지 않아 자바 환경을 만드는 것을 포기하고 타블러-py를 사용하기로 했고, 이번에는 캐럿 프로그램 라이브러리를 사용했다.
camelot 라이브러리 자체가...pip install camelot-py[cv]
를 참고하십시오.
다만 이 라이브러리의 사용은 Ghostscript가 필요하기 때문에 설치하세요.
For Windows : https://www.ghostscript.com/download/gsdnld.html
For macOS : brew install tcl-tk ghostscript
3. PDF에서 테이블 가져오기
그럼, 실제 캐럿을 사용해서 PDF에서 표를 받아보세요.
이번에는 후생연금 보험료로 산정된 표준보수 월액을 조사하기 위해일본 양로금 기구가 제출한 보험료 금액표를 표본으로 삼았다.import camelot
table_nenkin = camelot.read_pdf('nenkinR3.pdf') #TableList
table_nenkin[0].df
nenkinR3.PDF.pdf의 이름으로 저장,camelot.read_pdf에게 건네주고
PDF의 모든 테이블은 데이터 프레임으로 가져와지고 페이지 위의 테이블부터 목록에 차례로 저장됩니다.
이 PDF에는 테이블이 하나만 있습니다.nenkin[0].df를 통해 목표 표를 데이터 프레임으로 얻을 수 있습니다.
이 테이블을 Jupter 환경에 표시하려면 다음 그림과 같이 표시해야 합니다.
간단하네요!!
표 수령이 완료되어 당초의 목적에 따라 표준 보수 월액 취득에 적용됩니다.
다음 코드와 실행 결과입니다.import re
month_salary = 238000 # your salary
for i in range(3,35):
if i == 34:
standard_month_salary = int(re.sub(r"\D", "", table_nenkin[0].df[1][i]))
break
s = table_nenkin[0].df[2][i]
Range = s.split('\n')
Range_H = int(re.sub(r"\D", "", Range[2]))
if Range_H >= month_salary:
standard_month_salary = int(re.sub(r"\D", "", table_nenkin[0].df[1][i]))
break
print('標準報酬月額(円):', standard_month_salary)
標準報酬月額(円): 240000
4. 마지막
사회 상식을 배우면서 파이톤을 이용해 PDF에서 표를 얻는 방법을 조사했다.camelot 사용이 편리해서 좋은 것 같아요.
Reference
이 문제에 관하여(파이톤을 통해 PDF로부터 양식(camelot) - 사회보험료를 받기 위한 표준 월급 -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/warper/items/e3933480000069f1b3ab
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
파이톤이 PDF에서 표를 얻는 방법으로 대충 조사해 보니 두 가지가 있는 것 같다.
Tabuler-py 라이브러리나camelot 라이브러리를 사용하는 방법.
타블러-py의 라이브러리 내용은 자바로 작성되기 때문에 PC에 자바 환경이 없으면 작동할 수 없습니다.
복잡한 프로그래밍 환경을 만들고 싶지 않아 자바 환경을 만드는 것을 포기하고 타블러-py를 사용하기로 했고, 이번에는 캐럿 프로그램 라이브러리를 사용했다.
camelot 라이브러리 자체가...
pip install camelot-py[cv]
를 참고하십시오.다만 이 라이브러리의 사용은 Ghostscript가 필요하기 때문에 설치하세요.
For Windows : https://www.ghostscript.com/download/gsdnld.html
For macOS : brew install tcl-tk ghostscript
3. PDF에서 테이블 가져오기
그럼, 실제 캐럿을 사용해서 PDF에서 표를 받아보세요.
이번에는 후생연금 보험료로 산정된 표준보수 월액을 조사하기 위해일본 양로금 기구가 제출한 보험료 금액표를 표본으로 삼았다.import camelot
table_nenkin = camelot.read_pdf('nenkinR3.pdf') #TableList
table_nenkin[0].df
nenkinR3.PDF.pdf의 이름으로 저장,camelot.read_pdf에게 건네주고
PDF의 모든 테이블은 데이터 프레임으로 가져와지고 페이지 위의 테이블부터 목록에 차례로 저장됩니다.
이 PDF에는 테이블이 하나만 있습니다.nenkin[0].df를 통해 목표 표를 데이터 프레임으로 얻을 수 있습니다.
이 테이블을 Jupter 환경에 표시하려면 다음 그림과 같이 표시해야 합니다.
간단하네요!!
표 수령이 완료되어 당초의 목적에 따라 표준 보수 월액 취득에 적용됩니다.
다음 코드와 실행 결과입니다.import re
month_salary = 238000 # your salary
for i in range(3,35):
if i == 34:
standard_month_salary = int(re.sub(r"\D", "", table_nenkin[0].df[1][i]))
break
s = table_nenkin[0].df[2][i]
Range = s.split('\n')
Range_H = int(re.sub(r"\D", "", Range[2]))
if Range_H >= month_salary:
standard_month_salary = int(re.sub(r"\D", "", table_nenkin[0].df[1][i]))
break
print('標準報酬月額(円):', standard_month_salary)
標準報酬月額(円): 240000
4. 마지막
사회 상식을 배우면서 파이톤을 이용해 PDF에서 표를 얻는 방법을 조사했다.camelot 사용이 편리해서 좋은 것 같아요.
Reference
이 문제에 관하여(파이톤을 통해 PDF로부터 양식(camelot) - 사회보험료를 받기 위한 표준 월급 -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/warper/items/e3933480000069f1b3ab
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import camelot
table_nenkin = camelot.read_pdf('nenkinR3.pdf') #TableList
table_nenkin[0].df
import re
month_salary = 238000 # your salary
for i in range(3,35):
if i == 34:
standard_month_salary = int(re.sub(r"\D", "", table_nenkin[0].df[1][i]))
break
s = table_nenkin[0].df[2][i]
Range = s.split('\n')
Range_H = int(re.sub(r"\D", "", Range[2]))
if Range_H >= month_salary:
standard_month_salary = int(re.sub(r"\D", "", table_nenkin[0].df[1][i]))
break
print('標準報酬月額(円):', standard_month_salary)
標準報酬月額(円): 240000
사회 상식을 배우면서 파이톤을 이용해 PDF에서 표를 얻는 방법을 조사했다.camelot 사용이 편리해서 좋은 것 같아요.
Reference
이 문제에 관하여(파이톤을 통해 PDF로부터 양식(camelot) - 사회보험료를 받기 위한 표준 월급 -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/warper/items/e3933480000069f1b3ab텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)