Communitygithub.com

PDF Skill

PDF 파일을 읽거나 생성할 때 시각적 레이아웃과 렌더링 품질을 보장하는 오픈소스 에이전트 스킬입니다.

PDF Skill란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Cursor, Codex 등)가 PDF 파일을 신뢰성 있게 읽고, 생성하며, 최종 렌더링 품질을 검증할 수 있도록 지원합니다. 시각적 검토를 위해 `pdftoppm`을 사용하여 PDF 페이지를 PNG로 변환하고, 새로운 문서 생성 시 `reportlab`을 활용합니다. 텍스트 추출이나 빠른 검사에는 `pdfplumber`나 `pypdf`를 사용하지만 레이아웃 정확도는 보장하지 않습니다. 모든 업데이트 후에는 페이지를 다시 렌더링하여 정렬, 간격, 가독성을 확인하며, 최종 PNG 검사에서 시각적 결함이 없을 때만 결과물을 전달합니다. macOS와 Ubuntu에서 필요한 시스템 도구(poppler)를 설치하는 방법을 안내하고, `uv` 또는 `pip`를 통해 Python 패키지를 관리합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add ailessonio/open-source-skills

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

PDF Skill은(는) 무엇을 하나요?

사용 시점

  • PDF 콘텐츠를 읽거나 검토할 때 레이아웃과 시각적 요소가 중요한 경우
  • 안정적인 포맷으로 PDF를 프로그래밍 방식으로 생성해야 하는 경우
  • 전달 전 최종 렌더링을 검증해야 하는 경우

워크플로우

  1. 시각적 검토를 선호합니다: PDF 페이지를 PNG로 렌더링하여 검사합니다.
    • pdftoppm을 사용할 수 있으면 사용합니다.
    • 사용할 수 없으면 Poppler를 설치하거나 사용자에게 로컬에서 출력을 검토하도록 요청합니다.
  2. 새 문서를 생성할 때는 reportlab을 사용하여 PDF를 만듭니다.
  3. 텍스트 추출 및 빠른 확인에는 pdfplumber(또는 pypdf)를 사용하지만, 레이아웃 정확도는 이에 의존하지 않습니다.
  4. 의미 있는 업데이트 후에는 페이지를 다시 렌더링하여 정렬, 간격, 가독성을 확인합니다.

임시 및 출력 파일 규칙

  • 중간 파일은 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건인 경우에만 전달합니다.
  • 머리글/바닥글, 페이지 번호, 섹션 전환이 깔끔한지 확인합니다.
  • 중간 파일을 정리하거나 최종 승인 후 제거합니다.

관련 스킬