lovstudio/any2pdf
요약
any2pdf는 AI 코딩 어시스턴트가 Markdown 문서를 출판 품질의 PDF로 변환할 수 있도록 돕는 에이전트 스킬입니다. CJK(한중일) 텍스트 렌더링 오류와 복잡한 LaTeX 설정 문제를 해결하여, 단 한 번의 자연어 명령만으로 전문적인 조판 결과물을 생성합니다.
핵심 포인트
- CJK(한중일) 혼용 텍스트의 줄 바꿈 및 폰트 깨짐 문제를 완벽하게 해결
- LaTeX의 복잡함 없이 단일 Python 파일과 reportlab 의존성만으로 동작
- 디자인 스타일, 속표지, 워터마크 등을 결정하는 대화형 워크플로우 제공
- Obsidian callouts, 수식, 이모지 등 풍부한 Markdown 요소를 지원
- Claude Code, Cursor, Copilot 등 다양한 AI 코딩 도구와 호환
AI 어시스턴트에게 "转PDF"라고 말하면 출판 품질의 문서를 얻을 수 있습니다. 설정도, 템플릿도, LaTeX도 필요 없습니다.
AI 코딩 어시스턴트(Claude Code, Cursor, Copilot, Gemini CLI 등)에게 단 한 번의 자연어 요청만으로 Markdown을 전문적으로 조판된 PDF로 변환할 수 있는 능력을 부여하는 에이전트 스킬(Agent skill)입니다.
기존의 모든 Markdown-to-PDF 도구들은 다음 두 가지 함정 중 하나에 빠집니다:
너무 단순함— Pandoc/wkhtmltopdf는 영어에 대해서는 괜찮은 결과물을 만들어내지만, CJK(한중일) 혼용 텍스트는 폰트 오류, 줄 바꿈 깨짐, "Claude Code"가 줄 사이에 분리됨, 年月日이 □□□로 렌더링되는 등 엉망이 됩니다.
너무 복잡함— LaTeX는 아름다운 결과물을 만들어내지만 4GB 용량의 TeX 배포판과 난해한 구문이 필요하며, 모든 CJK 예외 상황에서 오류가 발생합니다. 어떤 AI 어시스턴트도 이를 안정적으로 제어할 수 없습니다.
any2pdf는 최적의 지점에 있습니다: 단 하나의 Python 파일, 하나의 의존성(reportlab), 설정 제로 — 그리고 실제 200페이지 분량의 중국어 기술 보고서를 작성하며 겪은 모든 CJK/Latin 예외 상황을 처리합니다.
이 스킬은 AI 어시스턴트에게 단순한 CLI 명령이 아닌 **대화형 워크플로우 (Interactive workflow)**를 학습시킵니다:
사용자: "把这个报告转成PDF" (이 보고서를 PDF로 변환해줘)
에이전트: 디자인 스타일, 속표지, 워터마크, 뒷표지에 대해 질문함
에이전트: 사용자의 모든 선택 사항을 반영하여 변환을 실행함
사용자의 한 문장 → 브랜드화된 완벽한 문서.
이 코드베이스의 모든 수정 사항은 실제 보고서에서 발생한 실제 렌더링 버그로부터 비롯되었습니다:
혼용 텍스트 줄 바꿈 (Mixed text wrapping): "Chaofan Shou"가 줄 중간에서 분리되지 않으며, 중국어 텍스트는 글자 경계에서 자연스럽게 끊깁니다.
Canvas CJK: "2026年4月1日"과 같은 날짜가 표지, 헤더, 푸터 등 모든 곳에서 올바르게 렌더링됩니다.
도서 품질의 폰트 (Book-quality fonts): Arial + 대체 폰트가 아닌, Palatino + 宋体 (macOS), Times + SimSun (Windows) 조합을 사용합니다.
풍부한 Markdown 블록 (Rich Markdown blocks): Obsidian callouts, 인라인 이미지, 이모지, 그리고 LaTeX 스타일의 수식이 사라지지 않고 렌더링됩니다.
병합된 헤딩 복구 (Merged heading recovery): # Part## Chapter와 같이 한 줄에 입력된 경우, 파싱 전에 자동으로 분리합니다.
| macOS | Windows | Linux |
|---|---|---|
| Serif | Palatino | Times New Roman |
| ... | pip install reportlab | |
pip install reportlab |
폰트는 시스템 경로에서 자동으로 검색됩니다. 폰트가 누락되었나요? 사용 중인 OS에 맞는 정확한 설치 명령어가 포함된 유용한 오류 메시지를 제공합니다.
Ubuntu/Debian에서는 다음과 같이 설치하는 것이 가장 포괄적인 설정입니다:
sudo apt install fonts-dejavu-core fonts-liberation fonts-freefont-ttf fonts-noto fonts-noto-cjk fonts-noto-color-emoji
npx skills add lovstudio/any2pdf -g -y
Claude Code, Cursor, GitHub Copilot, Gemini CLI, Codex, Cline, Warp 등 25개 이상의 AI 에이전트와 함께 사용할 수 있습니다.
클래식한 LaTeX 스타일부터 현대적인 미니멀리즘까지 10가지 내장 테마를 제공합니다. 클릭하여 미리보기를 확인하세요.
표지 (Cover page): 제목, 부제목, 저자, 버전, 통계 라인 포함
클릭 가능한 목차 (Clickable table of contents): PDF 북마크 사이드바 포함
속표지 (Frontispiece): 표지 뒤에 오는 전체 페이지 이미지 (AI 생성 또는 로컬 이미지)
러닝 헤더 (Running headers): 페이지 지연 없이 안정적인 보고서/문서 제목 유지
러닝 푸터 (Running footers): 저자/브랜드, 페이지 번호, 날짜
워터마크 (Watermark): 모든 콘텐츠 페이지에 대각선으로 표시되는 흐릿한 텍스트
뒷표지 (Back cover): 배너 이미지 또는 텍스트 브랜딩 (QR 코드, 명함)
10가지 디자인 테마 (10 design themes): 따뜻한 학술적 스타일부터 수묵화 미니멀리즘까지
Markdown 이미지 (Markdown images): 로컬 및 원격 이미지를 지원하며, 실패 시 우아한 대체 텍스트 제공
Obsidian 콜아웃 (Obsidian callouts): > [!NOTE], 경고(warnings), 팁(tips), 인용(quotes) 및 관련 콜아웃 유형 지원
LaTeX 스타일 수식 (LaTeX-style formulas): 인라인 $ ... $ 및 디스플레이 $$ ... $$ / \[ ... \] 지원; 렌더링된 수학 이미지를 위해 matplotlib 설치 권장
이모지 폴백 (Emoji fallback): 온라인 상태일 때는 Twemoji 이미지 렌더링, 사용 가능한 경우 로컬 이모지 폰트로 폴백
YAML 프론트매터 (YAML frontmatter): Markdown 파일 내부에서 제목, 테마, 워터마크, 표지, 목차(TOC) 및 기타 옵션 설정 가능
문서 옵션을 프론트매터에 유지하면 소스 파일의 재현성(reproducibility)을 유지할 수 있습니다:
---
title: My Report
author: Author Name
...
pip install reportlab
# 선택 사항, 스타일이 적용된 대체 텍스트 대신 렌더링된 수식 이미지를 사용하려면:
pip install matplotlib
...
20개 이상의 전체 인자(argument) 참조를 보려면 SKILL.md를 확인하세요.
MIT
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기