본문으로 건너뛰기
cccskills
무료GitHub에 공개

pdf-convert

[Document Processing] Use when converting between PDF and Markdown: text PDFs to Markdown (scanned PDFs are reported, not OCR'd), Markdown to styled PDF. --to={markdown|pdf}.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(24)

  • SKILL.md9.7 KB
  • scripts/convert.cjs3.4 KB
  • tests/dispatcher.test.cjs4.3 KB
  • to-markdown/package.json492 B
  • to-markdown/scripts/convert.cjs4.6 KB
  • to-markdown/scripts/lib/converter.cjs4.4 KB
  • to-markdown/scripts/lib/output-handler.cjs1.2 KB
  • to-markdown/scripts/lib/pdf-detector.cjs2.0 KB
  • to-markdown/tests/converter.test.cjs3.6 KB
  • to-markdown/tests/fixtures/temp.txt4 B
  • to-markdown/tests/run-tests.cjs413 B
  • to-markdown/tests/test-framework.cjs3.1 KB
  • to-pdf/assets/default-style.css2.3 KB
  • to-pdf/package.json403 B
  • to-pdf/scripts/convert.cjs5.0 KB
  • to-pdf/scripts/lib/chrome-finder.cjs3.1 KB
  • to-pdf/scripts/lib/config-loader.cjs3.0 KB
  • to-pdf/scripts/lib/converter.cjs3.6 KB
  • to-pdf/scripts/lib/output-handler.cjs2.9 KB
  • to-pdf/tests/chrome-finder.test.cjs2.0 KB
  • to-pdf/tests/converter.test.cjs5.0 KB
  • to-pdf/tests/fixtures/sample.md439 B
  • to-pdf/tests/run-tests.cjs1.1 KB
  • to-pdf/tests/test-framework.cjs3.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Quick Summary

Goal: Convert PDF to Markdown, or Markdown to PDF, through one entry point.

Summary: Select the required direction → probe its dependencies → install only if missing → convert → check JSON status and the output file. Native text extraction and PDF rendering are supported; scanned-PDF OCR is unavailable.

Workflow:

  1. Pick a direction — --to markdown (PDF in, Markdown out) or --to pdf (Markdown in, PDF out)
  2. Check that direction — probe its dependencies; each has its own package.json, so install only missing dependencies for the selected direction
  3. Convert — run scripts/convert.cjs --to <direction> with the direction's own options
  4. Output — the converter returns JSON with the success status and output path

Key Rules:

  • --to is required. There is no default direction — converting the wrong way silently is worse than an error.
  • Every other argument is passed straight to the chosen converter, so each direction keeps its own CLI.
  • Dependencies are per direction: --to markdown never pulls in the PDF renderer, and vice versa.

Be skeptical. Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence percentages (Idea should be more than 80%).

Contents

pdf-convert

Convert PDF files to Markdown (with automatic detection of native text vs scanned documents) and Markdown files to high-quality PDF (with code syntax highlighting and custom CSS).

Directions

FlagConvertsLives inDependencies
--to markdownPDF → Markdownto-markdown/@opendocsg/pdf2md, pdfjs-dist
--to pdfMarkdown → PDFto-pdf/md-to-pdf, gray-matter

Installation Required

Use Node.js >=18 for PDF → Markdown; for Markdown → PDF, use the runtime range in to-pdf/package.json. From the project root, probe the selected consumer's dependencies with createRequire before installing:

node -e "const p=require('node:path'); const r=require('node:module').createRequire(p.resolve('.claude/skills/pdf-convert/to-markdown/package.json')); r.resolve('@opendocsg/pdf2md');"
node -e "const p=require('node:path'); const r=require('node:module').createRequire(p.resolve('.claude/skills/pdf-convert/to-pdf/package.json')); r.resolve('md-to-pdf'); r.resolve('gray-matter');"

Each direction installs separately. Run only the probe and setup for the direction you need; its manifest owns package versions. Install missing dependencies with:

# PDF -> Markdown
cd .claude/skills/pdf-convert/to-markdown
npm install

# Markdown -> PDF
cd .claude/skills/pdf-convert/to-pdf
npm install

ck init (which runs install.sh) handles every skill at once.

Note: --to pdf may download Chromium (~150MB) on first run unless system Chrome is detected. Scanned-PDF OCR is unimplemented. Installing optional OCR packages does not enable it.

Quick Start

# PDF -> Markdown (auto-detects native text vs scanned)
node .claude/skills/pdf-convert/scripts/convert.cjs --to markdown --input ./document.pdf

# PDF -> Markdown with an explicit output path and forced native mode
node .claude/skills/pdf-convert/scripts/convert.cjs --to markdown -i ./doc.pdf -o ./out.md --mode native

# Markdown -> PDF
node .claude/skills/pdf-convert/scripts/convert.cjs --to pdf --input ./README.md

# Markdown -> PDF with custom CSS
node .claude/skills/pdf-convert/scripts/convert.cjs --to pdf -i ./doc.md --css ./my-style.css

--to=markdown and --to markdown are equivalent. A missing or unknown --to prints the valid directions and exits 1.

CLI Options

Dispatcher

OptionDescriptionDefault
--toConversion direction: markdown or pdf(required)

--to markdown (PDF → Markdown)

OptionShortDescriptionDefault
--input-iInput PDF file path(required)
--output-oOutput markdown file path{input}.md
--mode-mConversion mode: auto, native, ocrauto
--help-hShow help message

--to pdf (Markdown → PDF)

OptionShortDescriptionDefault
--input-iInput markdown file path(required)
--output-oOutput PDF file path{input}.pdf
--css-cCustom CSS file pathbuilt-in
--no-highlightDisable syntax highlightingfalse
--help-hShow help message

Run scripts/convert.cjs --to <direction> --help to see a direction's full help.

Features

PDF → Markdown

  • Auto-Detection: determines whether the PDF has native text or needs OCR
  • Native PDFs: fast extraction via @opendocsg/pdf2md
  • Tables: basic table structure preservation
  • No System Dependencies: pure JavaScript

Markdown → PDF

  • Syntax Highlighting: code blocks rendered with highlight.js
  • Custom CSS: override the default stylesheet with your own
  • System Chrome: uses installed Chrome/Chromium when available
  • Frontmatter Support: YAML frontmatter supplies the title and metadata

Both directions work on Windows, macOS and Linux.

Conversion Modes (--to markdown)

Auto (default)

Checks whether the first page has extractable text. Uses native extraction if it does, otherwise reports that the document appears to be scanned.

Native

Fast direct text extraction. Best for PDFs with selectable text.

OCR (scanned PDFs) — unsupported

The converter returns a failure for OCR mode. Report the limitation for scanned documents; native mode is suitable only when the PDF contains selectable text.

Default Styling (--to pdf)

  • Serif body font (Georgia), monospace code font (Consolas/Monaco)
  • 2cm page margins
  • Code block background highlighting
  • Table borders with alternating row colors

Override any of it with --css.

Output

Both directions return JSON on success:

{
    "success": true,
    "input": "/path/to/input.pdf",
    "output": "/path/to/output.md",
    "stats": {
        "pages": 5,
        "mode": "native"
    }
}

--to pdf returns pages instead of stats. On failure both return { "success": false, "error": "..." } and exit 1.

Limitations

  • Complex multi-column layouts may not preserve structure
  • Scanned PDFs cannot be transcribed by this converter
  • Mathematical formulas may not convert perfectly
  • Large documents converted to PDF may need more memory — consider splitting the input

Troubleshooting

Chrome not found (--to pdf): the converter downloads Chromium automatically. Set PUPPETEER_SKIP_DOWNLOAD=1 to prevent that.

Missing dependencies: the error output carries a hint with the exact cd … && npm install command for the direction you invoked.

Font issues: embed fonts via CSS @font-face with base64-encoded fonts for consistent rendering.

Tests

cd .claude/skills/pdf-convert && node tests/dispatcher.test.cjs   # routing and --to validation
cd .claude/skills/pdf-convert/to-markdown && node tests/run-tests.cjs
cd .claude/skills/pdf-convert/to-pdf && node tests/run-tests.cjs

[IMPORTANT] Use TaskCreate to break ALL work into small tasks BEFORE starting. This prevents context loss from long files. Keep task depth proportional to the work.

Closing Reminders

IMPORTANT MUST ATTENTION Goal: Convert PDF to Markdown, or Markdown to PDF, through one entry point — scripts/convert.cjs --to {markdown|pdf}.

MUST ATTENTION Route: select direction → probe dependencies → install only if missing → convert → verify JSON status and the output file. Report unsupported OCR; optional package installation cannot enable it.

IMPORTANT MUST ATTENTION --to is required — never guess the direction for the user IMPORTANT MUST ATTENTION each direction installs its own dependencies; the error hint names the exact directory IMPORTANT MUST ATTENTION break work into small todo tasks using TaskCreate BEFORE starting IMPORTANT MUST ATTENTION search codebase for 3+ similar patterns before creating new code IMPORTANT MUST ATTENTION cite file:line evidence for every claim (confidence >80% to act) IMPORTANT MUST ATTENTION add a final review todo task to verify work quality

[TASK-PLANNING] Before acting, analyze task scope and systematically break it into small todo tasks and sub-tasks using TaskCreate.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

[Documentation] Use when generating, smart-merging or refactoring the root AI context (CLAUDE.md, AGENTS.md) and its Claude/Codex projections. Config file only: project-config.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

duc01226/EasyPlatform122026년 10월 18일 업데이트

[Code Quality] Use when a workflow step or the user asks for AI code or plan review: LLM calls, prompts, agents, RAG, evals and guardrails. --mode={code|plan}; --report-only is read-only.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

duc01226/EasyPlatform122026년 10월 18일 업데이트

[Architecture] Use when a workflow step or the user asks for architecture design, compliance review, scalability grading or whole-project audit via --mode={design|review|scalability|full}.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

duc01226/EasyPlatform122026년 10월 18일 업데이트

[Content] Use when a workflow step or the user asks for product/feature ideation with ranked opportunities and validation tests. --mode={roadmap|scope}.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

duc01226/EasyPlatform122026년 10월 18일 업데이트

[Content] Use when a workflow step or the user asks for business viability: Business Model Canvas, financials, risks and go-to-market recommendation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

duc01226/EasyPlatform122026년 10월 18일 업데이트

[Code Quality] Use when a workflow step or the user asks for a focused code-change review: staged, unstaged, branch diff or simple pull request. --fix-loop fixes and re-reviews. Complex pull request: workflow-review-changes; rationale: why-review.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

duc01226/EasyPlatform122026년 10월 18일 업데이트

duc01226의 스킬 모두 보기

이 스킬의 문제 신고