본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 20. 13:41

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와 같이 한 줄에 입력된 경우, 파싱 전에 자동으로 분리합니다.

macOSWindowsLinux
SerifPalatinoTimes 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가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0