PDF operations: merge, split, rotate, watermark, extract text/tables, create PDFs, OCR, fill forms, encrypt/decrypt.
Skill by openxjarvis
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/openxjarvis-pdf
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/pdf
What's inside
- Skill name
pdf- Description
- PDF operations: merge, split, rotate, watermark, extract text/tables, create PDFs, OCR, fill forms, encrypt/decrypt. Use when any .pdf file is involved as input or output.
- License
- MIT
- Instructions
- 310 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (12)
- LICENSE.txt
- SKILL.md
- forms.md
- reference.md
- check_bounding_boxes.py · scripts/
- check_fillable_fields.py · scripts/
- convert_pdf_to_images.py · scripts/
- create_validation_image.py · scripts/
- extract_form_field_info.py · scripts/
- extract_form_structure.py · scripts/
- fill_fillable_fields.py · scripts/
- fill_pdf_form_with_annotations.py · scripts/
SKILL.md (first lines)
# PDF Processing Guide
## Overview
This guide covers essential PDF processing operations using Python libraries and command-line tools. For advanced features, JavaScript libraries, and detailed examples, see REFERENCE.md. If you need to fill out a PDF form, read FORMS.md and follow its instructions.
## Quick Start
```python
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
```python
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
```python
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)
```
#### Extract Metadata
```python
reader = PdfReader("document.pdf")
meta = reader.metadata
print(f"Title: {meta.title}")
print(f"Author: {meta.author}")
print(f"Subject: {meta.subject}")
print(f"Creator: {meta.creator}")
```
#### Rotate Pages
```python
reader = PdfReader("input.pdf")
writer = PdfWriter()
page = reader.pages[0]
page.rotate(90) # Rotate 90 degrees clockwise
writer.add_page(page)
with open("rotated.pdf", "wb") as output:
writer.write(output)
```
### pdfplumber - Text and Table Extraction
#### Extract Text with Layout
```python
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
for page in pdf.pages:
text = page.extract_text()
print(text)
```
#### Extract Tables
```python
with pdfplumber.open("document.pdf") as pdf:
for i, page in enumerate(pdf.pages):
tables = page.extract_tables()
for j, table in enumerate(tables):
print(f"Table {j+1} on page {i+1}:")
for row in table:
print(row)
```
#### Advanced Table Extraction
```python
import pandas as pd
with pdfplumber.open("document.pdf") as pdf:
all_tables = []
for page in pdf.pages:
tables = page.extract_tables()
for table in tables:
if table: # Check if table is not empty
df = pd.DataFrame(table[1:], columns=table[0])
all_tables.append(df)
# Combine all tables
if all_tables:
combined_df = pd.concat(all_tables, ignore_index=True)
combined_df.to_excel("extracted_tables.xlsx", index=False)
```
### reportlab - Create PDFs
#### Basic PDF Creation
```python
from reportlab.lib.pagesizes import letterFrom openxjarvis/openclaw-python, MIT.
More from openxjarvis/openclaw-python
- 0.493score
docx
openxjarvis
Create, read, edit, or manipulate Word documents (.docx files).
SkillDFreshness: D★ 67Claude Code +9 - 0.493score
feishu-doc
openxjarvis
Feishu document read/write operations + comment management.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
feishu-urgent
openxjarvis
Feishu urgent message (buzz) notifications.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
bird
openxjarvis
Twitter/X social media integration via web API.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
discord-adv
openxjarvis
Advanced Discord server management via Discord API v10: send embeds, create channels, manage roles, moderation.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
feishu-task
openxjarvis
Feishu Task, tasklist, subtask, comment, and attachment management.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
food-order
openxjarvis
Order food from delivery services via web browsing and fetch tools.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
local-places
openxjarvis
Search for local businesses, restaurants, and places of interest using web search and fetch tools.
SkillDFreshness: D★ 67Claude Code +9 - 0.484score
canvas
openxjarvis
Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android).
SkillDFreshness: D★ 67Claude Code +9 - 0.469score
pptx
openxjarvis
Use this skill any time a .pptx file is involved in any way — as input, output, or both.
SkillDFreshness: D★ 67Claude Code +9
Signals
- Stars
- 67
- Forks
- 23
- Open issues
- 2
- Last commit (this folder)
- Mar 6, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/openxjarvis/openclaw-python
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from openxjarvis
- 0.493score
docx
openxjarvis
Create, read, edit, or manipulate Word documents (.docx files).
SkillDFreshness: D★ 67Claude Code +9 - 0.493score
feishu-doc
openxjarvis
Feishu document read/write operations + comment management.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
feishu-urgent
openxjarvis
Feishu urgent message (buzz) notifications.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
bird
openxjarvis
Twitter/X social media integration via web API.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
discord-adv
openxjarvis
Advanced Discord server management via Discord API v10: send embeds, create channels, manage roles, moderation.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
feishu-task
openxjarvis
Feishu Task, tasklist, subtask, comment, and attachment management.
SkillDFreshness: D★ 67Claude Code +9
Cite this page
pdf skill. Agent Mart. https://agentmart.dev/skills/openxjarvis-pdf (last updated 2026-10-24)