원클릭으로
Process PDF files - extract text, create PDFs, merge documents. Use when user asks to read PDF, create PDF, or work with PDF files.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Process PDF files - extract text, create PDFs, merge documents. Use when user asks to read PDF, create PDF, or work with PDF files.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Perform thorough code reviews with security, performance, and maintainability analysis. Use when user asks to review code, check for bugs, or audit a codebase.
Build MCP (Model Context Protocol) servers that give Claude new capabilities. Use when user wants to create an MCP server, add tools to Claude, or integrate external services.
SOC 직업 분류 기준
| name | |
| description | Process PDF files - extract text, create PDFs, merge documents. Use when user asks to read PDF, create PDF, or work with PDF files. |
You now have expertise in PDF manipulation. Follow these workflows:
Option 1: Quick text extraction (preferred)
# Using pdftotext (poppler-utils)
pdftotext input.pdf - # Output to stdout
pdftotext input.pdf output.txt # Output to file
# If pdftotext not available, try:
npx tsx -e "import { readFile } from 'node:fs/promises'; import pdf from 'pdf-parse'; const data = await pdf(await readFile('input.pdf')); console.log(data.text);"
Option 2: Page-by-page with metadata
import { readFile } from "node:fs/promises";
import pdf from "pdf-parse";
const data = await pdf(await readFile("input.pdf"));
console.log(`Pages: ${data.numpages}`);
console.log(`Metadata: ${JSON.stringify(data.info)}`);
console.log(data.text);
Option 1: From Markdown (recommended)
# Using pandoc
pandoc input.md -o output.pdf
# With custom styling
pandoc input.md -o output.pdf --pdf-engine=xelatex -V geometry:margin=1in
Option 2: Programmatically
import { writeFile } from "node:fs/promises";
import { PDFDocument, StandardFonts } from "pdf-lib";
const doc = await PDFDocument.create();
const page = doc.addPage([612, 792]);
const font = await doc.embedFont(StandardFonts.Helvetica);
page.drawText("Hello, PDF!", { x: 100, y: 750, size: 12, font });
await writeFile("output.pdf", await doc.save());
Option 3: From HTML
# Using wkhtmltopdf
wkhtmltopdf input.html output.pdf
# Or with Playwright
npx playwright pdf input.html output.pdf
import { readFile, writeFile } from "node:fs/promises";
import { PDFDocument } from "pdf-lib";
const merged = await PDFDocument.create();
for (const path of ["file1.pdf", "file2.pdf", "file3.pdf"]) {
const source = await PDFDocument.load(await readFile(path));
const pages = await merged.copyPages(source, source.getPageIndices());
pages.forEach((page) => merged.addPage(page));
}
await writeFile("merged.pdf", await merged.save());
import { readFile, writeFile } from "node:fs/promises";
import { PDFDocument } from "pdf-lib";
const source = await PDFDocument.load(await readFile("input.pdf"));
for (const index of source.getPageIndices()) {
const single = await PDFDocument.create();
const [page] = await single.copyPages(source, [index]);
single.addPage(page);
await writeFile(`page_${index + 1}.pdf`, await single.save());
}
| Task | Library | Install |
|---|---|---|
| Read text | pdf-parse | npm install pdf-parse |
| Read/Write/Merge | pdf-lib | npm install pdf-lib |
| HTML to PDF | Playwright or wkhtmltopdf | npm install playwright / brew install wkhtmltopdf |
| Text extraction | pdftotext | brew install poppler / apt install poppler-utils |
ocrmypdf or tesseract if text extraction returns empty