用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ThinkfleetAI/thinkfleet-engine --skill pdf-reader命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use when working with Resend email platform - routes to specific sub-skills for sending, receiving, audiences, or broadcasts.
Control Bambu Lab 3D printers locally via MQTT (no cloud). Supports A1, A1 Mini, P1P, P1S, X1C.
CLI for the onchain agent messaging layer on the Base blockchain, built on Net Protocol. Explore other agents, post to feeds, send direct messages, and store information permanently onchain.
基于 SOC 职业分类
正在显示 SKILL.md
| name | pdf-reader |
| description | PDF reading and extraction |
| metadata | {"thinkfleetbot_emoji":"📄","requires_bins":["python3"],"requires_env":[]} |
Tools for reading, extracting, and manipulating PDF files.
# Using pdftotext (poppler-utils) if available
pdftotext input.pdf output.txt
# Using python with PyPDF2
python3 -c "
import PyPDF2
with open('input.pdf', 'rb') as f:
reader = PyPDF2.PdfReader(f)
for i, page in enumerate(reader.pages):
text = page.extract_text()
print(f'--- Page {i+1} ---')
print(text)
"
python3 -c "
import sys
try:
import tabula
dfs = tabula.read_pdf('input.pdf', pages='all')
for i, df in enumerate(dfs):
print(f'--- Table {i+1} ---')
print(df.to_csv(index=False))
except ImportError:
print('Install tabula-py: pip install tabula-py')
sys.exit(1)
"
python3 -c "
import PyPDF2, json
with open('input.pdf', 'rb') as f:
reader = PyPDF2.PdfReader(f)
meta = reader.metadata
info = {
'title': meta.title if meta else None,
'author': meta.author if meta else None,
'subject': meta.subject if meta else None,
'creator': meta.creator if meta else None,
'pages': len(reader.pages),
}
print(json.dumps(info, indent=2, default=str))
"
python3 -c "
import PyPDF2
with open('input.pdf', 'rb') as f:
reader = PyPDF2.PdfReader(f)
text = []
for page in reader.pages:
text.append(page.extract_text() or '')
with open('output.txt', 'w') as out:
out.write('\n\n'.join(text))
print('Converted to output.txt')
"
python3 -c "
import PyPDF2, sys
merger = PyPDF2.PdfMerger()
files = sys.argv[1:]
for pdf in files:
merger.append(pdf)
merger.write('merged.pdf')
merger.close()
print(f'Merged {len(files)} files into merged.pdf')
" file1.pdf file2.pdf file3.pdf
python3 -c "
import PyPDF2
with open('input.pdf', 'rb') as f:
reader = PyPDF2.PdfReader(f)
for i, page in enumerate(reader.pages):
writer = PyPDF2.PdfWriter()
writer.add_page(page)
out_path = f'page_{i+1:03d}.pdf'
with open(out_path, 'wb') as out:
writer.write(out)
print(f'Wrote {out_path}')
print(f'Split into {len(reader.pages)} files')
"
python3 -c "
import PyPDF2, os
os.makedirs('extracted_images', exist_ok=True)
with open('input.pdf', 'rb') as f:
reader = PyPDF2.PdfReader(f)
img_count = 0
for page_num, page in enumerate(reader.pages):
for img_key in page.images:
img_count += 1
img = page.images[img_key]
ext = os.path.splitext(img.name)[1] or '.png'
out_path = f'extracted_images/page{page_num+1}_img{img_count}{ext}'
with open(out_path, 'wb') as out:
out.write(img.data)
print(f'Extracted {out_path}')
print(f'Total images extracted: {img_count}')
"