본문으로 건너뛰기

© 2026 Molayo

HN요약2026. 05. 20. 01:18

Show HN: Markdown을 작은 PDF로 변환하는 2천 줄 규모의 C 언어 CLI, mdpdf

요약

mdpdf는 Markdown 파일을 작은 크기의 PDF로 변환해주는 2,000줄 규모의 경량 C 언어 CLI 도구입니다. 표준 PDF 폰트만을 사용하여 폰트 임베딩 없이 파일 크기를 최소화하며, 다양한 Markdown 문법과 이미지(JPEG/PNG) 렌더링을 지원합니다.

핵심 포인트

  • C11 표준을 사용하는 2,000줄 규모의 가벼운 CLI 도구
  • 표준 폰트(Helvetica, Courier) 사용으로 출력 파일 크기 최적화
  • 제목, 목록, 인용구, 코드 블록 및 이미지(JPEG/PNG) 렌더링 지원
  • zlib 라이브러리에만 의존하여 빌드 및 설치가 간편함
  • 용지 크기 자동 감지 및 사용자 설정 기능 제공

mdpdf

Markdown을 PDF로 변환하는 작은 C 언어 CLI (Command Line Interface)입니다.

  • 표준 PDF 폰트만 사용합니다 (본문용 Helvetica, 코드용 Courier). 폰트 임베딩 (Font embedding)을 하지 않아 출력 파일 크기가 작게 유지됩니다.
  • 용지 크기를 자동으로 감지합니다 (en_US/en_CA는 Letter 사용, 그 외에는 A4). PAPERSIZE 또는 /etc/papersize로 재설정할 수 있습니다.
  • 제목 (Headings), 단락 (Paragraphs), 인라인 굵게/기울임/코드 (Inline bold/italic/code), 구분된 코드 블록 및 들여쓰기된 코드 블록 (Fenced and indented code blocks), 순서 없는 목록 및 순서 있는 목록 (Unordered and ordered lists), 인용구 (Blockquotes), 수평선 (Horizontal rules), 그리고 이미지 (JPEG/PNG)를 렌더링합니다.
  • zlib (PNG용)에만 의존합니다.

빌드 (Building)

make

make 호출 한 번으로 도구를 빌드합니다. C11 지원 표준 라이브러리와 zlib-dev (또는 그에 상응하는 라이브러리)를 갖춘 GCC 또는 Clang이 필요합니다.

시스템 전체에 설치하려면:

sudo make install   # /usr/local/bin/ 에 설치됩니다.

사용법 (Usage)

mdpdf input.md            # input.pdf를 작성합니다
mdpdf input.md output.pdf # 명시적인 출력 경로 지정

지원되는 Markdown (Supported Markdown)

기능예시
ATX 제목# H1###### H6
...

이미지 (Images)

JPEG와 PNG를 지원합니다. `` 내의 경로는 Markdown 파일 디렉토리를 기준으로 상대적으로 해결됩니다.

JPEG 이미지는 직접 임베딩됩니다 (DCTDecode). PNG 이미지는 zlib를 사용하여 디코딩되며, 원시 픽셀은 FlateDecode로 다시 압축됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 HN OpenAI Codex의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0