스킬

pdf: Python으로 PDF 파일 다루기

사용자가 PDF를 언급하거나 PDF 산출을 요청할 때 사용한다. 먼저 pypdf로 로컬 파일을 읽기 전용으로 열어 페이지 수를 확인하고, 양식 작성은 FORMS.md로 전환한다.

Official source · pdf

Install

from pypdf import PdfReader, PdfWriter

누구에게 맞나

사용자가 .pdf 파일을 언급하거나 PDF 산출을 요청하면 이 pdf 가이드를 사용한다. 텍스트/표 읽기 또는 추출, 병합, 분할, 회전, 워터마크, 새로 만들기, 양식 작성, 암호화/복호화, 이미지 추출, 그리고 스캔본 OCR로 검색 가능하게 만드는 작업을 다룬다. 특정 리더의 대체재가 아니며, 이름 없는 상용 서비스를 대신 골라 주지도 않는다.

더 알맞은 전제는 이러한 기본 작업을 Python 라이브러리와 명령줄 도구로 할 준비가 되어 있다는 것이다. 자료는 고급 기능, JavaScript 라이브러리, 더 세밀한 예는 REFERENCE.md를 보라고 하므로 이 입문 설명을 완전한 매뉴얼로 여기지 말 것. 자료는 사용 가능한 에이전트 제품 목록을 주지 않으며, Python이나 JavaScript를 서로 배타적인 유일한 런타임으로 이해해서도 안 된다. 공식 설명 페이지는

https://raw.githubusercontent.com/anthropics/skills/main/skills/pdf/SKILL.md

3분 안에 첫 시도 끝내기

권장하는 첫 경로는 자료에 있는 pypdf 읽기 예제이며, 다른 설치기를 새로 만드는 것이 아니다. 전제: 이 머신에 이미 Python이 있고 from pypdf import PdfReader, PdfWriter를 실행할 수 있어야 한다. 가져오기에 실패하면 가져오기 오류에서 멈추고 PDF를 다시 쓰지 말 것.

저위험 첫 시도: 이미 있는 로컬 document.pdf를 준비한다. 파일이 있는지 확인한 뒤 읽기 전용으로 열고 페이지 수를 출력한다:

from pypdf import PdfReader, PdfWriter
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

성공 신호: 터미널이 Pages: 뒤에 숫자를 출력한다. 이는 읽기이며 병합, 암호화, 덮어쓰기가 아니다. 파일이 없으면 열기 실패에서 멈추고, 이름 없는 PDF를 새로 만들거나 다운로드하지 말 것. PdfWriter는 같은 줄에서 가져오지만 첫 시도에서는 디스크 쓰기를 호출하지 말 것.

사용 사례

사례 1: 로컬 PDF의 페이지 수를 확인하고 이를 이후 추출의 출발점으로 삼는다. 작업은 위의 PdfReader("document.pdf")와 len(reader.pages)이다. 자료는 읽기와 텍스트/표 추출을 능력으로 나열하지만, 발췌가 완전히 적은 것은 페이지 수 출력뿐이므로 첫 완료 기준은 페이지 수를 얻는 것이다. 텍스트도 필요하면 같은 페이지로 돌아가 해당 호출을 찾아야 하며, 페이지 수 출력을 전문 추출 완료로 쓰면 안 된다.

사례 2: PDF 양식을 작성해야 한다. 자료는 이렇게 적는다: If you need to fill out a PDF form, read FORMS.md and follow its instructions. 따라서 이 경로의 첫 단계는 FORMS.md를 열고 그 단계를 따르는 것이며, 이 페이지에서 양식 필드나 저장 명령을 발명하는 것이 아니다. 완료 기준은 FORMS.md에 따라 시작한 것이며, 양식이 이미 제출되었다고 가정하는 것이 아니다. 실제 목표가 스캔본 OCR이라면 자료는 따로 pip install pytesseract pdf2image와 convert_from_path를 준다. 이는 추가 의존성이 필요한 다른 경로이므로 양식 작성과 한 단계로 섞지 말 것.

사용 경계

기본 작업은 Python 라이브러리와 명령줄 도구를 대상으로 한다. 고급 내용, JavaScript, 상세 예는 REFERENCE.md를 가리키며 이 페이지에서는 펼치지 않는다. OCR에는 pytesseract와 pdf2image가 필요하며 먼저 페이지를 이미지로 변환한다. 양식 작성은 반드시 FORMS.md를 따른다.

자료는 GUI 설치 패키지나 클라이언트 목록을 주지 않는다. 병합, 분할, 회전, 워터마크, 암호화, 이미지 추출은 능력으로 지목되지만 발췌는 해당 작업의 완전한 명령을 주지 않으므로 이미 복사 가능한 단계로 쓰면 안 된다. 디스크 쓰기, 암호화, 또는 원본 덮어쓰기 전에 대상 경로와 부작용을 확인한 뒤 실행한다.