pdf-processor
Process, extract, and generate PDF documents with text extraction and form handling. Use when working with PDF files or extracting PDF content.
When & Why to Use This Skill
The PDF Processor skill is a comprehensive tool for managing PDF documents, enabling users to extract text and tables, generate PDFs from HTML/Markdown, handle form fields, and perform advanced operations like merging, splitting, and encryption. It streamlines document workflows by automating complex PDF tasks across various programming environments, making it essential for developers and businesses handling high volumes of digital documentation.
Use Cases
- Automated Data Extraction: Extracting text, tables, and metadata from invoices, receipts, or research papers for data analysis.
- Dynamic Document Generation: Programmatically creating professional PDF reports, certificates, or contracts from HTML or Markdown templates.
- Form Automation: Filling out PDF forms automatically or extracting user-submitted data from completed PDF forms.
- Document Security & Compliance: Protecting sensitive information by adding watermarks, password encryption, and managing document permissions.
- File Management & Organization: Merging multiple PDF files into a single document or splitting large documents into smaller, manageable pages.
| 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