Community코딩 & 개발github.com

A5 코인 체크리스트 PDF 생성기

인쇄 가능한 A5 필로팩스 바인더용 코인 수집 체크리스트 PDF를 생성합니다. 사용자가 인쇄용 코인 체크리스트, 바인더 인서트, 코인 수집 PDF, A5 코인 목록 등을 요청하거나 기존 PDF를 반복 수정할 때 활성화됩니다.

A5 코인 체크리스트 PDF 생성기란 무엇인가요?

이 스킬은 A5 용지(148mm × 210mm)에 최적화된 인쇄용 코인 수집 체크리스트 PDF를 생성합니다. ReportLab 라이브러리를 사용하며, 6홀 필로팩스 바인더에 들어맞도록 왼쪽 여백을 충분히 확보하고, 그레이스케일 레이저 프린터에서도 선명하게 출력되도록 디자인되었습니다. 칼리토(Carlito, Calibri와 동일한 글꼴 지표) 글꼴을 사용하며, 색상에 의존하지 않고 해칭(빗금) 패턴과 굵기 차이로 수집 여부를 표시합니다. 페이지는 연속적으로 흐르며, 섹션이 작을 경우 같은 페이지에 붙여넣어 종이 낭비를 최소화합니다. Numista 내보내기 파일과 시리즈 마스터 목록을 교차 참조하는 기능도 지원합니다. 사용자는 클로드 AI 환경에서 생성된 PDF를 바로 열어보거나, `pdf2image`로 미리보기 이미지를 확인한 후 전달받을 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cercit/AI-Skills/tree/main/a5-coin

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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

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

문서

A5 코인 체크리스트 PDF 생성기은(는) 무엇을 하나요?

사용 시기

  • 사용자가 인쇄 가능한 코인 수집 체크리스트를 원할 때
  • 사용자가 코인 관련 A5, 필로팩스, 바인더 또는 플래너 페이지를 언급할 때
  • 사용자가 Numista 내보내기 파일을 시리즈 마스터 목록과 교차 참조하려 할 때
  • 사용자가 이전에 생성한 코인 체크리스트 PDF를 반복 수정할 때

페이지 설정

from reportlab.lib.pagesizes import A5
PAGE_W, PAGE_H = A5  # 148mm x 210mm (419.53 x 595.28 pt)

LEFT_M = 18*mm    # 더 넓게 — 6홀 필로팩스 펀치를 피함
RIGHT_M = 6*mm
TOP_M = 9*mm
BOT_M = 8*mm
USABLE_W = PAGE_W - LEFT_M - RIGHT_M  # ~124mm

6홀 펀치 가이드

모든 페이지에 그립니다. 필로팩스 A5 표준 구멍 위치(위쪽 가장자리 기준):

HOLE_POSITIONS_MM = [19, 51, 70, 140, 159, 191]
for h in HOLE_POSITIONS_MM:
    y = PAGE_H - h*mm
    c.setStrokeColor(HexColor("#CCCCCC"))
    c.setLineWidth(0.25)
    c.circle(4.5*mm, y, 2.2*mm, stroke=1, fill=0)

글꼴

Carlito를 사용합니다(Calibri와 호환되는 글꼴 지표, SIL 오픈 폰트 라이선스로 무료). Linux에서는 보통 다음 경로에 있습니다:

/usr/share/fonts/truetype/crosextra/Carlito-Regular.ttf
/usr/share/fonts/truetype/crosextra/Carlito-Bold.ttf
/usr/share/fonts/truetype/crosextra/Carlito-Italic.ttf

Windows나 macOS에서는 Google Fonts에서 Carlito를 다운로드하여 해당 파일을 가리키세요.

세 가지 변형을 모두 등록하세요. Helvetica로 폴백하지 마십시오. 아래 레이아웃은 Calibri 스타일 글꼴 지표에 맞춰 조정되었습니다.

타이포그래피 규칙 (강제 제약)

요소글꼴크기비고
표지 제목Carlito-Bold20pt검은색 배너에 가운데 정렬
표지 부제목Carlito-Bold16pt제목 아래
섹션 헤더Carlito-Bold8.5-9pt검은색 막대 위에 흰색
열 헤더Carlito-Bold7.5pt회색, 구분선 위
본문 텍스트 — 모든 열Carlito / Carlito-Bold11pt이름, 기간, 현재 열에 동일하게 적용
수집 세부 정보 행Carlito-Italic8.5pt회색, 수집된 행 아래
바닥글Carlito6pt페이지 번호 + 체크리스트 이름
액면가 열Carlito9pt오른쪽 정렬, 약어(5Y, 10Y, 1J)

중요: 이름, 기간, 현재 열은 모두 같은 글꼴 크기(11pt)를 유지하세요. 크기가 섞이면 인쇄된 페이지에서 프로페셔널하지 않게 보입니다.

행 레이아웃

ROW_H = 16-18      # pt — 줄 사이 충분한 간격
SEC_H = 17          # 섹션 헤더 막대 높이
COL_H = 13          # 열 헤더 높이
COLLECTED_EXTRA = 11 # 수집된 행의 세부 정보 줄을 위한 추가 높이
  • 각 행 아래에 미세한 구분선(0.2pt, #DDDDDD)을 그립니다.
  • 행 배경을 번갈아 표시: 짝수 행마다 #EBEBEB 채움
  • 수집된 행: 굵은 글꼴 + 체크박스에 체크 표시

열 위치 (LEFT_M 기준)

COL_CK = 0          # 체크박스
COL_YR = 11         # 연도
COL_NM = 36         # 코인 이름 (기본 열)
# 오른쪽 열 — 기간 텍스트와 겹치지 않도록 오른쪽으로 밀기
COL_ERA = 84*mm     # 시대 표시(B/P/N) 또는 액면가
COL_NOW = 89*mm     # 현재 상태 / 보조 정보

핵심 교훈: "300 BCE-1279"와 같은 기간/날짜 문자열은 11pt에서 약 28mm 너비입니다. 시대 표시와 NOW 열은 겹침을 피하기 위해 반드시 84mm 이후에 시작해야 합니다. 이는 여러 번 수정을 거쳐 해결된 문제입니다.

그레이스케일 디자인 (필수)

그레이스케일 레이저 프린터용으로 설계되었습니다. 의미 전달에 색상에 절대 의존하지 마십시오.

시각적 요소그레이스케일 방식
수집된 행 강조대각선 빗금 패턴(색상 채움 아님)
섹션 헤더검은색 막대 위에 흰색 텍스트
번갈아 표시되는 행#EBEBEB vs 흰색
시대 표시텍스트 문자(B/P/N), 색상 점 아님
수집된 조폐국 표시굵은 글꼴 vs 보통 글꼴(색상 아님)
체크박스유니코드가 아닌 선으로 그린 체크 표시

빗금 구현:

def hatch(c, x, y, w, h):
    c.saveState()
    p = c.beginPath(); p.rect(x, y, w, h)
    c.clipPath(p, stroke=0)
    c.setStrokeColor(HexColor("#CCCCCC"))
    c.setLineWidth(0.35)
    for i in range(-int(h), int(w+h), 5):
        c.line(x+i, y, x+i+h, y+h)
    c.restoreState()

체크 표시 (X도 유니코드도 아님):

c.setStrokeColor(BLK); c.setLineWidth(1.2)
cx = LEFT_M + COL_CK + 1; cy = ty - 1
c.line(cx+2, cy+4, cx+4, cy+1.5)
c.line(cx+4, cy+1.5, cx+8, cy+7.5)

페이지 흐름 (연속)

각 섹션에 별도 페이지를 할당하지 마십시오. 섹션은 연속적으로 흐릅니다. 작은 섹션(3-5개 항목)은 이전 섹션의 꼬리 부분과 같은 페이지에 배치해야 합니다.

# 고아 방지: 섹션 헤더는 헤더 + 열 헤더 + 최소 1행이 필요함
if item_type == 'section_header':
    needed = h + COL_H + 2 + ROW_H + 4
    if y - needed < BOT_M:
        y = new_page(c)

표지 페이지 구조

  1. 제목(20pt)과 부제목(16pt)이 있는 검은색 배너
  2. 배너 아래 부제목 줄 (12pt, 회색)
  3. 가로선
  4. 통계 상자(#EBEBEB 채움): "총계: X 보유: Y 필요: Z" (14pt 굵게)
  5. 커버리지 백분율 (11pt, 회색)
  6. 수집가 이름 (14pt 굵게) + Numista 핸들 (11pt)
  7. 범례 섹션 (해당하는 경우)
  8. 개수가 오른쪽 정렬된 시리즈 요약

포함하지 말아야 할 것

  • 별도의 빈 메모 페이지 (종이 낭비)
  • 색상에 의존하는 요소
  • 유니코드 체크 표시 또는 특수 문자 (글꼴 적용 범위 문제)
  • 모든 요소에 대해 7pt 미만의 글꼴 크기
  • 문서 내 어디든 1페이지 이상의 여백

출력

사용자가 열 수 있는 위치에 PDF를 저장합니다(claude.ai: /mnt/user-data/outputs/ 폴더에 저장하고 present_files 호출; Claude Code: 작업 폴더). 전달하기 전에 pdf2image로 페이지를 렌더링하여 시각적 품질을 확인하세요.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬