スキル一覧に戻る
mway

pdf

by mway

4🍴 0📅 2026年1月22日
GitHubで見るManusで実行

SKILL.md


name: pdf description: Use when extracting, creating, merging, splitting, or analyzing PDFs, or when filling PDF forms programmatically. allowed-tools: ["shell", "read_file", "write_file"] metadata: short-description: PDF processing and form handling

PDF Processing Guide

Preflight

  • Prefer Python libraries if available (pypdf, pdfplumber, reportlab).
  • If libraries are missing, fall back to CLI tools (pdftotext, qpdf, pdftk).
  • For forms, read forms.md first.

Overview

This guide covers essential PDF operations. This skill includes reference.md and forms.md in the same directory for advanced features and form handling.

Quick Start

from pypdf import PdfReader, PdfWriter

# Read a PDF
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

# Extract text
text = ""
for page in reader.pages:
    text += page.extract_text()

Python Libraries

pypdf - Basic Operations

Merge PDFs

from pypdf import PdfWriter, PdfReader

writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
    reader = PdfReader(pdf_file)
    for page in reader.pages:
        writer.add_page(page)

with open("merged.pdf", "wb") as output:
    writer.write(output)

Split PDF

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 output:
        writer.write(output)

pdfplumber - Text and Table Extraction

import pdfplumber

with pdfplumber.open("document.pdf") as pdf:
    for page in pdf.pages:
        text = page.extract_text()
        print(text)

reportlab - Create PDFs

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

c = canvas.Canvas("hello.pdf", pagesize=letter)
width, height = letter
c.drawString(100, height - 100, "Hello World!")
c.save()

Command-Line Tools

pdftotext

pdftotext input.pdf output.txt
pdftotext -layout input.pdf output.txt

qpdf

qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf
qpdf input.pdf --pages . 1-5 -- pages1-5.pdf
qpdf input.pdf output.pdf --rotate=+90:1

Quick Reference

TaskBest ToolCommand/Code
Merge PDFspypdfwriter.add_page(page)
Split PDFspypdfOne page per file
Extract textpdfplumberpage.extract_text()
Create PDFsreportlabCanvas or Platypus
Command line mergeqpdfqpdf --empty --pages ...
Fill PDF formspypdf / pdf-libSee forms.md

Next Steps

  • For advanced usage, see reference.md
  • For forms, follow forms.md

Arguments

Target: ${ARGUMENTS}

スコア

総合スコア

40/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です