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