一键导入
Use this skill when you need to extract text, tables, or metadata from PDFs, merge/split documents, add annotations, or create new PDFs programmatically.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use this skill when you need to extract text, tables, or metadata from PDFs, merge/split documents, add annotations, or create new PDFs programmatically.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Notion CLI tool for managing pages, databases, and content. Use when working with Notion data, creating/updating pages, querying databases, or syncing content.
ISO/IEC/IEEE 15288に基づき、ヒアリング資料から要求ドキュメント(1〜7)を順次生成します。既存ドキュメントがあれば差分更新します。
agent-browser CLIを使ってローカルアプリのUIをテストする。
GitHub Issueを作成する前に、BDD形式で要件を整理します:
- 未コミットの変更やunpushの状態があれば、Skill ツールを使って `/ok` コマンドを先に呼び出してください
Clarify ambiguities in plans with structured questions
| name | |
| description | Use this skill when you need to extract text, tables, or metadata from PDFs, merge/split documents, add annotations, or create new PDFs programmatically. |
PDFからテキスト・表・メタデータを抽出し、結合・注釈・変換を行う。
pip install pypdf pdfplumber reportlab
brew install poppler # pdftotext, pdftoppm含む
brew install qpdf
pdfplumberでレイアウト保持:
import pdfplumber
with pdfplumber.open("input.pdf") as pdf:
for page in pdf.pages:
text = page.extract_text()
print(text)
CLIでテキスト抽出:
pdftotext -layout input.pdf output.txt
import pdfplumber
import pandas as pd
with pdfplumber.open("input.pdf") as pdf:
page = pdf.pages[0]
table = page.extract_table()
df = pd.DataFrame(table[1:], columns=table[0])
df.to_excel("output.xlsx", index=False)
pypdfで結合:
from pypdf import PdfWriter
merger = PdfWriter()
for pdf_file in ["file1.pdf", "file2.pdf", "file3.pdf"]:
merger.append(pdf_file)
merger.write("merged.pdf")
merger.close()
qpdfで結合:
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf
from pypdf import PdfReader, PdfWriter
reader = PdfReader("input.pdf")
for i, page in enumerate(reader.pages):
writer = PdfWriter()
writer.add_page(page)
with open(f"page_{i+1}.pdf", "wb") as f:
writer.write(f)
from pypdf import PdfReader
reader = PdfReader("input.pdf")
metadata = reader.metadata
print(f"Title: {metadata.title}")
print(f"Author: {metadata.author}")
print(f"Pages: {len(reader.pages)}")
from pypdf import PdfReader, PdfWriter
reader = PdfReader("input.pdf")
writer = PdfWriter()
for page in reader.pages:
page.rotate(90) # 90度回転
writer.add_page(page)
with open("rotated.pdf", "wb") as f:
writer.write(f)
# 各ページをPNG画像として抽出
pdftoppm -png input.pdf output
# → output-1.png, output-2.png, ...
qpdf --encrypt user-password owner-password 256 -- input.pdf encrypted.pdf
スキャンされたPDFの場合、OCRが必要:
brew install tesseract
pip install pytesseract pdf2image
# Python
from pdf2image import convert_from_path
import pytesseract
images = convert_from_path("scanned.pdf")
text = ""
for img in images:
text += pytesseract.image_to_string(img, lang='jpn')
print(text)
from pypdf import PdfReader, PdfWriter
from pypdf.generic import Transformation
reader = PdfReader("input.pdf")
watermark = PdfReader("watermark.pdf")
writer = PdfWriter()
for page in reader.pages:
page.merge_page(watermark.pages[0])
writer.add_page(page)
with open("watermarked.pdf", "wb") as f:
writer.write(f)
→ pdfplumberのextract_text(layout=True)を試す
→ table_settingsパラメータを調整
→ OCRの場合はlang='jpn'を指定、フォント埋め込み確認