PDF 인보이스를 하나하나 열어
수작업으로 옮기던 일,
OCR + 파이썬으로 완전 자동화한 방법
PDF 인보이스 폴더 스캔 → 텍스트 자동 추출(또는 OCR 인식) → 품목·날짜·금액 파싱 → 엑셀 자동 저장까지,
수작업 없이 인보이스 데이터 집계와 합계 검증을 자동으로 처리한 실전 기록.
|
2중 인식
텍스트 추출
+ OCR 자동 전환 |
3시트
Summary / Items
/ Verification 자동 생성 |
자동검증
품목 합계 vs
인보이스 총액 대조 |
0번
수동 입력
필요 없음 |
매달 반복되는 인보이스 정리,
PDF를 열고 닫는 일만 수십 번
이 수강생은 해운/물류 업종의 구매 담당자로 매월 공급사 인보이스를 수작업으로 집계하고 사내 시스템에 기표하는 업무를 담당하고 있었습니다.
매달 말이 되면 공급업체로부터 PDF 인보이스가 쏟아지고, 이 수강생은 파일을 하나씩 열어 날짜, 선박명, 품목, 수량, 단가, 합계를 직접 엑셀에 옮겨 적어야 했습니다. 문서마다 형식이 조금씩 다르고, 이미지로 스캔된 PDF는 복사조차 되지 않아 눈으로 읽고 손으로 입력하는 수밖에 없었습니다.
"사람이 일일이 작성하고 확인하는 작업이 필수였습니다.
직접 타이핑하거나 눈으로 검토하니 오타와 실수가 발생해서 곤란한 적도 많았습니다. "
처리해야 할 인보이스 파일이 늘어날수록 작업 시간은 그대로 비례해서 늘었습니다. 파일을 하나씩 열어 내용을 확인하고, 중요한 항목을 빠뜨리지 않았는지 다시 훑어보기도 했습니다. 그리고 이 모든 과정을 매달 처음부터 다시 반복해야 했습니다.
수작업으로 하던 방식
| 단계 | 작업 내용 | 문제점 |
|---|---|---|
| STEP 1 | PDF 파일을 하나씩 열어 내용 확인 | 파일 수가 많을수록 시간 비례 증가 |
| STEP 2 | 날짜·선박명·품목·수량·단가 수동 입력 | 오타·누락 발생 시 검증 불가 |
| STEP 3 | 스캔 이미지 PDF는 눈으로 읽고 직접 타이핑 | 복사 불가로 전량 수작업 필수 |
| STEP 4 | 품목 합계와 인보이스 총액을 눈으로 대조 | 불일치 발견이 늦어 수정 반복 |
⚠️ 텍스트형과 이미지형 PDF가 섞여 있어, 파일마다 처리 방법이 다름
🔁 날짜 표기 방식(YY/MM/DD, YYYY/MM/DD 등)이 공급사마다 달라 입력 오류가 발생
📋 건수가 늘수록 수작업 집계 시간도 비례하게 증가
지정한 폴더에 인보이스 파일을 넣으면
엑셀 보고서가 자동으로 만들어집니다
비개발자도 업무 자동화를 만들 수 있을까? 이 수강생은 교육에서 배운 Python을 활용해, 지정된 폴더 안의 PDF 파일을 자동으로 스캔하고 데이터를 추출해 엑셀로 저장하는 프로그램을 직접 완성했습니다.
핵심 아이디어는 "먼저 텍스트 추출을 시도하고, 안 되면 자동으로 OCR로 전환"하는 2중 인식 구조입니다. 파일 유형을 일일이 확인하지 않아도, 프로그램이 스스로 판단하고 처리합니다.
사용 기술 & 도구
|
PDF 텍스트 추출
pdfplumber + PyMuPDF
텍스트 레이어가 있는 PDF는 직접 추출. 내용이 부족하면 PyMuPDF로 이미지를 렌더링해 OCR에 전달합니다.
|
이미지 문자 인식
EasyOCR
스캔 PDF에서 문자를 인식하는 오픈소스 OCR. y좌표 기반으로 줄을 정렬해 자연스러운 읽기 순서를 복원합니다.
|
|
데이터 파싱
정규식 (re 모듈)
날짜·선박명·항구·세금코드·품목번호·수량·단가·합계를 텍스트에서 패턴으로 자동 추출합니다.
|
집계 & 저장
pandas + XlsxWriter
추출 데이터를 DataFrame으로 정리하고 Summary · Items · Verification 3개 시트로 분리 저장합니다.
|
코드가 어떤 순서로
움직이나요?
PDF 파일 하나가 들어오면 아래 흐름대로 처리가 진행됩니다.
전체 자동화 파이프라인 한눈에 보기 📂 PDF 폴더 자동 스캔 날짜 기반 경로에서 *.pdf 파일 전체 수집 ① 🔍 텍스트 레이어 감지 pdfplumber로 추출 시도 → 충분하면 진행, 아니면 OCR 전환 ② 텍스트형 이미지형(스캔) 📄 텍스트 직접 추출 pdfplumber → 페이지별 텍스트 수집 ③A 🖼 OCR 문자 인식 PyMuPDF 렌더링 → EasyOCR 인식 ③B 합류 📐 줄 정렬 & 텍스트 정리 y좌표 기반 줄 병합 → 자연스러운 읽기 순서 복원 ④ ✂️ 인보이스 필드 파싱 날짜 · 선박명 · 항구 · 세금코드 자동 추출 품목번호 · 제품명 · 수량(L) · 단가 · 소계 파싱 ⑤ ✅ 합계 자동 검증 품목 소계 합산 vs 인보이스 총액 비교 → Match/False 자동 기록 ⑥ 엑셀 3개 시트로 분리 저장 📊 Summary 인보이스별 요약 정보 📦 Items 품목별 상세 내역 🔎 Verification 합계 검증 결과 💾 엑셀 파일 자동 저장 완료 PDF도 텍스트형 / OCR형 폴더로 자동 분류
▲ 위는 자동화 결과물의 예시 화면입니다.
자동화 전과 후,
무엇이 달라졌나요?
| 항목 | Before — 수작업 | After — 자동화 |
|---|---|---|
| 월 소요 시간 | 30시간 | 1시간 |
| PDF 데이터 추출 | 파일 하나씩 열어 눈으로 확인 | 폴더 스캔 후 전체 자동 처리 |
| 이미지형 PDF | 전량 육안 확인 후 수동 입력 | OCR 자동 인식 처리 |
| 날짜 형식 처리 | 공급사마다 다른 형식 수동 변환 | 표준 형식으로 자동 정규화 |
| 세금 코드 판별 | 항구·국가 확인 후 수동 기재 | 국가명 인식 후 자동 코드 부여 |
| 합계 검증 | 별도 수식으로 수동 대조 | Verification 시트에 자동 기록 |
이 사례가 의미 있는 이유
이 자동화의 핵심은 단순히 "PDF를 읽는 것"이 아닙니다. 파일 유형을 스스로 판별하고 다른 처리 경로를 자동으로 선택하는 구조를 만든 것입니다.
실무에서 자동화가 어려운 이유 중 하나는 "예외 상황"입니다. 텍스트형 PDF만 들어온다면 단순하지만, 이미지형이 섞이면 기존 방식이 바로 무너집니다. 이 수강생은 그 예외를 코드 안에서 처리하도록 했습니다.
AI 업무자동화는 단순히 '반복을 없애는 것'이 아니라,
업무를 가장 잘 아는 사람의 시선으로
나만의 견고한 파이프라인을 만드는 것 입니다.
비슷한 다른 업무에도
바로 적용할 수 있습니다
이 자동화 구조는 "PDF에서 정형 데이터를 뽑아 집계하고, 결과를 검증한다"는 패턴을 담고 있습니다. 업종과 문서 종류만 바뀌어도 동일한 방식으로 응용할 수 있습니다.
구매 / 물류 — 거래명세서, 납품확인서, 세금계산서 PDF 자동 집계
회계 / 재무 — 월별 비용 청구서 자동 파싱 및 합계 검증
건설 / 엔지니어링 — 시공 확인서, 자재 발주서, 검사 보고서 자동 수집
유통 / 소매 — 공급사별 발주서·정산서 PDF 자동 비교 및 오차 감지
매일 열어야 하는 파일들이 쌓여 있다면,
그것이 자동화의 시작점입니다.
OCR + 정규식 + 자동 검증 · 비개발자 실전 교육결과사례