pdf-processor

Process, extract, and generate PDF documents with text extraction and form handling. Use when working with PDF files or extracting PDF content.

$ Installieren

git clone https://github.com/majiayu000/claude-skill-registry /tmp/claude-skill-registry && cp -r /tmp/claude-skill-registry/skills/documents/pdf-processor ~/.claude/skills/claude-skill-registry

// tip: Run this command in your terminal to install the skill


name: pdf-processor description: Process, extract, and generate PDF documents with text extraction and form handling. Use when working with PDF files or extracting PDF content.

PDF Processor Skill

PDFファイルの作成、編集、解析を行うスキルです。

概要

PDFの読み取り、テキスト抽出、フォーム処理、新規PDF作成を支援します。

主な機能

  • テキスト抽出: PDFからテキストとテーブルを抽出
  • PDF生成: HTMLやMarkdownからPDF作成
  • フォーム処理: PDFフォームの読み書き
  • 分割・結合: 複数PDFの操作
  • 透かし追加: セキュリティマーク
  • パスワード保護: 暗号化PDF作成
  • メタデータ編集: タイトル、作成者等

使用方法

テキスト抽出

# Python + PyPDF2
import PyPDF2

with open('document.pdf', 'rb') as file:
    reader = PyPDF2.PdfReader(file)
    text = ''
    for page in reader.pages:
        text += page.extract_text()
    print(text)

PDF生成(HTMLから)

# Python + pdfkit/weasyprint
import pdfkit

pdfkit.from_file('document.html', 'output.pdf')

# または
from weasyprint import HTML
HTML('document.html').write_pdf('output.pdf')

PDF結合

from PyPDF2 import PdfMerger

merger = PdfMerger()
merger.append('file1.pdf')
merger.append('file2.pdf')
merger.write('combined.pdf')
merger.close()

フォーム処理

from PyPDF2 import PdfReader, PdfWriter

reader = PdfReader('form.pdf')
writer = PdfWriter()

# フォームフィールドに値を設定
writer.add_page(reader.pages[0])
writer.update_page_form_field_values(
    writer.pages[0],
    {'name': 'John Doe', 'email': 'john@example.com'}
)

with open('filled_form.pdf', 'wb') as output:
    writer.write(output)

JavaScript/Node.js

// pdf-lib
const { PDFDocument } = require('pdf-lib');
const fs = require('fs');

async function createPdf() {
  const pdfDoc = await PDFDocument.create();
  const page = pdfDoc.addPage([600, 400]);

  page.drawText('Hello World!', {
    x: 50,
    y: 350,
    size: 30
  });

  const pdfBytes = await pdfDoc.save();
  fs.writeFileSync('output.pdf', pdfBytes);
}

ライブラリ

Python

  • PyPDF2: PDF読み書き
  • pdfplumber: テーブル抽出
  • ReportLab: PDF生成
  • WeasyPrint: HTML→PDF
  • pdfkit: wkhtmltopdf wrapper

JavaScript/Node.js

  • pdf-lib: PDF作成・編集
  • pdfjs-dist: PDF解析
  • puppeteer: HTML→PDF
  • jsPDF: ブラウザでPDF生成

Go

  • gofpdf: PDF生成
  • unidoc: 商用ライブラリ

バージョン情報

  • スキルバージョン: 1.0.0
  • 最終更新: 2025-01-22