一键导入
Process PDF files with Bun-friendly tools: extract text, create PDFs, merge documents, or inspect metadata.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Process PDF files with Bun-friendly tools: extract text, create PDFs, merge documents, or inspect metadata.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Design and build TypeScript/Bun AI agents for any domain. Use when users: (1) ask to create an agent, assistant, or agent harness (2) want to understand agent architecture, tool use, planning, subagents, or skills (3) need a small runnable Bun/TypeScript agent scaffold (4) ask about Claude Code, Cursor, or similar agent internals Keywords: agent, assistant, autonomous, workflow, tool use, orchestration, bun, typescript
Perform thorough TypeScript/Bun code reviews with security, correctness, performance, and maintainability analysis. Use when the user asks to review code, check for bugs, or audit this codebase.
Build MCP (Model Context Protocol) servers with TypeScript and Bun. Use when the user wants to create an MCP server, add tools to Claude/Codex, or integrate external services.
| name | |
| description | Process PDF files with Bun-friendly tools: extract text, create PDFs, merge documents, or inspect metadata. |
Prefer command-line PDF tools when available. For programmatic work, use TypeScript packages installed with Bun.
pdftotext input.pdf -
pdftotext input.pdf output.txt
bun add pdf-parse
import pdf from "pdf-parse";
const data = await pdf(await Bun.file("input.pdf").arrayBuffer());
console.log(`Pages: ${data.numpages}`);
console.log(data.text);
pandoc input.md -o output.pdf
pandoc input.md -o output.pdf --pdf-engine=xelatex -V geometry:margin=1in
bun add pdf-lib
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: 72, y: 720, size: 16, font });
await Bun.write("output.pdf", await doc.save());
import { PDFDocument } from "pdf-lib";
const merged = await PDFDocument.create();
for (const path of ["a.pdf", "b.pdf", "c.pdf"]) {
const source = await PDFDocument.load(await Bun.file(path).arrayBuffer());
const pages = await merged.copyPages(source, source.getPageIndices());
pages.forEach((page) => merged.addPage(page));
}
await Bun.write("merged.pdf", await merged.save());
import { PDFDocument } from "pdf-lib";
const source = await PDFDocument.load(await Bun.file("input.pdf").arrayBuffer());
for (const index of source.getPageIndices()) {
const single = await PDFDocument.create();
const [page] = await single.copyPages(source, [index]);
single.addPage(page);
await Bun.write(`page_${index + 1}.pdf`, await single.save());
}
pdftotext first for plain extraction; it is fast and reliable.pdf-lib for create/merge/split workflows.