PDF Skill은(는) 무엇을 하나요?
사용 시점
- PDF 콘텐츠를 읽거나 검토할 때 레이아웃과 시각적 요소가 중요한 경우
- 안정적인 포맷으로 PDF를 프로그래밍 방식으로 생성해야 하는 경우
- 전달 전 최종 렌더링을 검증해야 하는 경우
워크플로우
- 시각적 검토를 선호합니다: PDF 페이지를 PNG로 렌더링하여 검사합니다.
pdftoppm을 사용할 수 있으면 사용합니다.- 사용할 수 없으면 Poppler를 설치하거나 사용자에게 로컬에서 출력을 검토하도록 요청합니다.
- 새 문서를 생성할 때는
reportlab을 사용하여 PDF를 만듭니다. - 텍스트 추출 및 빠른 확인에는
pdfplumber(또는pypdf)를 사용하지만, 레이아웃 정확도는 이에 의존하지 않습니다. - 의미 있는 업데이트 후에는 페이지를 다시 렌더링하여 정렬, 간격, 가독성을 확인합니다.
임시 및 출력 파일 규칙
- 중간 파일은
tmp/pdfs/에 저장하고 작업 완료 후 삭제합니다. - 이 리포지토리에서 작업할 때 최종 아티팩트는
output/pdf/아래에 작성합니다. - 파일 이름은 안정적이고 설명적으로 유지합니다.
의존성 (없으면 설치)
의존성 관리를 위해 uv를 선호합니다.
Python 패키지:
uv pip install reportlab pdfplumber pypdf
uv를 사용할 수 없는 경우:
python3 -m pip install reportlab pdfplumber pypdf
시스템 도구 (렌더링용):
# macOS (Homebrew)
brew install poppler
# Ubuntu/Debian
sudo apt-get install -y poppler-utils
이 환경에서 설치가 불가능한 경우, 누락된 의존성과 로컬 설치 방법을 사용자에게 알려줍니다.
환경
필요한 환경 변수가 없습니다.
렌더링 명령어
pdftoppm -png $INPUT_PDF $OUTPUT_PREFIX
품질 기준
- 세련된 시각적 디자인 유지: 일관된 타이포그래피, 간격, 여백, 섹션 계층 구조.
- 렌더링 문제 방지: 텍스트 잘림, 요소 겹침, 표 깨짐, 검은 사각형, 읽을 수 없는 글리프.
- 차트, 표, 이미지는 선명하고 정렬되어 있으며 명확하게 레이블이 지정되어야 합니다.
- ASCII 하이픈만 사용합니다. U+2011(줄 바꿈 방지 하이픈) 및 기타 유니코드 대시를 사용하지 마십시오.
- 인용 및 참조는 사람이 읽을 수 있어야 합니다. 도구 토큰 또는 플레이스홀더 문자열을 남기지 마십시오.
최종 확인
- 최신 PNG 검사에서 시각적 또는 포맷 결함이 0건인 경우에만 전달합니다.
- 머리글/바닥글, 페이지 번호, 섹션 전환이 깔끔한지 확인합니다.
- 중간 파일을 정리하거나 최종 승인 후 제거합니다.