Communitygithub.com

Anhvu1107/all-agent-skill

Verwende dies immer, wenn die Aufgabe das Lesen, Extrahieren, Teilen, Zusammenführen, Drehen, Erstellen, Validieren, OCR-Bearbeiten, Formularausfüllen oder anderweitiges Erzeugen oder Modifizieren von PDF-Dateien umfasst.

Was ist all-agent-skill?

Diese Fähigkeit (Skill) bietet eine umfassende Anleitung für die PDF-Verarbeitung, die speziell für KI-Agenten wie Claude Code, Cursor oder Codex entwickelt wurde. Sie deckt sowohl Python-Bibliotheken (pypdf, pdfplumber, reportlab) als auch Kommandozeilen-Tools (pdftotext, qpdf, pdftk) ab. Der Skill enthält klare, sofort ausführbare Codebeispiele für gängige Aufgaben wie Zusammenführen, Teilen, Drehen, Textextraktion, Tabellenextraktion, OCR, Wasserzeichen und Passwortschutz. Er verweist auf wichtige Referenzdokumente (wie `references/quality-checklist.md` und `references/task-routing.md`), die der Agent vor der Aufgabenausführung laden soll. Diese Fähigkeit ist besonders nützlich, da sie nicht nur grundlegende Operationen demonstriert, sondern auch Best Practices wie die Vermeidung von Unicode-Tief-/Hochstellungen in ReportLab und die empfohlene Toolauswahl für verschiedene Aufgaben in einer Kurzreferenztabelle zusammenfasst.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Anhvu1107/all-agent-skill/tree/HEAD/.agent/skills/pdf

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Anleitung zur PDF-Verarbeitung

Regel für selektives Lesen

Beginne mit:

  • references/usage-routing.md
  • references/quality-checklist.md

Lade dann nur die vererbten Dokumente, Skripte, Assets oder Beispiele, die zur tatsächlichen Aufgabe des Benutzers passen.

Regel für selektives Lesen

Beginne mit:

  • references/senior-master-standard.md
  • references/task-routing.md
  • references/quality-checklist.md

Lies dann:

  • forms.md für AcroForm- oder Feldausfüllarbeiten
  • reference.md, wenn du eine breitere Werkzeug- oder Bibliotheksübersicht benötigst

Übersicht

Diese Anleitung deckt wesentliche PDF-Verarbeitungsoperationen mit Python-Bibliotheken und Kommandozeilen-Tools ab. Für erweiterte Funktionen, JavaScript-Bibliotheken und detaillierte Beispiele siehe REFERENCE.md. Wenn du ein PDF-Formular ausfüllen musst, lies FORMS.md und befolge dessen Anweisungen.

Schnellstart

from pypdf import PdfReader, PdfWriter

# PDF lesen
reader = PdfReader("document.pdf")
print(f"Seiten: {len(reader.pages)}")

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

Python-Bibliotheken

pypdf - Grundlegende Operationen

PDFs zusammenführen

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)

PDF teilen

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)

Metadaten extrahieren

reader = PdfReader("document.pdf")
meta = reader.metadata
print(f"Titel: {meta.title}")
print(f"Autor: {meta.author}")
print(f"Betreff: {meta.subject}")
print(f"Ersteller: {meta.creator}")

Seiten drehen

reader = PdfReader("input.pdf")
writer = PdfWriter()

page = reader.pages[0]
page.rotate(90)  # 90 Grad im Uhrzeigersinn drehen
writer.add_page(page)

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

pdfplumber - Text- und Tabellenextraktion

Text mit Layout extrahieren

import pdfplumber

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

Tabellen extrahieren

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"Tabelle {j+1} auf Seite {i+1}:")
            for row in table:
                print(row)

Erweiterte Tabellenextraktion

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:  # Prüfen, ob Tabelle nicht leer ist
                df = pd.DataFrame(table[1:], columns=table[0])
                all_tables.append(df)

# Alle Tabellen kombinieren
if all_tables:
    combined_df = pd.concat(all_tables, ignore_index=True)
    combined_df.to_excel("extracted_tables.xlsx", index=False)

reportlab - PDFs erstellen

Grundlegende PDF-Erstellung

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

c = canvas.Canvas("hello.pdf", pagesize=letter)
width, height = letter

# Text hinzufügen
c.drawString(100, height - 100, "Hallo Welt!")
c.drawString(100, height - 120, "Dies ist ein mit reportlab erstelltes PDF")

# Eine Linie hinzufügen
c.line(100, height - 140, 400, height - 140)

# Speichern
c.save()

PDF mit mehreren Seiten erstellen

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak
from reportlab.lib.styles import getSampleStyleSheet

doc = SimpleDocTemplate("bericht.pdf", pagesize=letter)
styles = getSampleStyleSheet()
story = []

# Inhalt hinzufügen
title = Paragraph("Berichtstitel", styles['Title'])
story.append(title)
story.append(Spacer(1, 12))

body = Paragraph("Dies ist der Hauptteil des Berichts. " * 20, styles['Normal'])
story.append(body)
story.append(PageBreak())

# Seite 2
story.append(Paragraph("Seite 2", styles['Heading1']))
story.append(Paragraph("Inhalt für Seite 2", styles['Normal']))

# PDF erstellen
doc.build(story)

Tief- und Hochstellungen

WICHTIG: Verwende niemals Unicode-Tief-/Hochstellungszeichen (₀₁₂₃₄₅₆₇₈₉, ⁰¹²³⁴⁵⁶⁷⁸⁹) in ReportLab-PDFs. Die integrierten Schriftarten enthalten diese Glyphen nicht, wodurch sie als solide schwarze Kästchen dargestellt werden.

Verwende stattdessen ReportLabs XML-Markup-Tags in Paragraph-Objekten:

from reportlab.platypus import Paragraph
from reportlab.lib.styles import getSampleStyleSheet

styles = getSampleStyleSheet()

# Tiefstellungen: <sub>-Tag verwenden
chemical = Paragraph("H<sub>2</sub>O", styles['Normal'])

# Hochstellungen: <super>-Tag verwenden
squared = Paragraph("x<super>2</super> + y<super>2</super>", styles['Normal'])

Bei canvas-gezeichnetem Text (keine Paragraph-Objekte) passe Schriftgröße und -position manuell an, anstatt Unicode-Tief-/Hochstellungen zu verwenden.

Kommandozeilen-Tools

pdftotext (poppler-utils)

# Text extrahieren
pdftotext input.pdf output.txt

# Text mit Layout-Erhalt extrahieren
pdftotext -layout input.pdf output.txt

# Bestimmte Seiten extrahieren
pdftotext -f 1 -l 5 input.pdf output.txt  # Seiten 1-5

qpdf

# PDFs zusammenführen
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf

# Seiten aufteilen
qpdf input.pdf --pages . 1-5 -- seiten1-5.pdf
qpdf input.pdf --pages . 6-10 -- seiten6-10.pdf

# Seiten drehen
qpdf input.pdf output.pdf --rotate=+90:1  # Seite 1 um 90 Grad drehen

# Passwort entfernen
qpdf --password=meinpasswort --decrypt encrypted.pdf decrypted.pdf

pdftk (falls verfügbar)

# Zusammenführen
pdftk file1.pdf file2.pdf cat output merged.pdf

# Aufteilen
pdftk input.pdf burst

# Drehen
pdftk input.pdf rotate 1east output rotated.pdf

Häufige Aufgaben

Text aus gescannten PDFs extrahieren

# Erfordert: pip install pytesseract pdf2image
import pytesseract
from pdf2image import convert_from_path

# PDF in Bilder konvertieren
images = convert_from_path('gescannt.pdf')

# OCR für jede Seite
text = ""
for i, image in enumerate(images):
    text += f"Seite {i+1}:\n"
    text += pytesseract.image_to_string(image)
    text += "\n\n"

print(text)

Wasserzeichen hinzufügen

from pypdf import PdfReader, PdfWriter

# Wasserzeichen erstellen (oder vorhandenes laden)
watermark = PdfReader("wasserzeichen.pdf").pages[0]

# Auf alle Seiten anwenden
reader = PdfReader("dokument.pdf")
writer = PdfWriter()

for page in reader.pages:
    page.merge_page(watermark)
    writer.add_page(page)

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

Bilder extrahieren

# Mit pdfimages (poppler-utils)
pdfimages -j input.pdf ausgabe_praefix

# Extrahiert alle Bilder als ausgabe_praefix-000.jpg, ausgabe_praefix-001.jpg, usw.

Passwortschutz

from pypdf import PdfReader, PdfWriter

reader = PdfReader("input.pdf")
writer = PdfWriter()

for page in reader.pages:
    writer.add_page(page)

# Passwort hinzufügen
writer.encrypt("benutzerpasswort", "besitzerpasswort")

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

Kurzreferenz

AufgabeBestes WerkzeugBefehl/Code
PDFs zusammenführenpypdfwriter.add_page(page)
PDFs teilenpypdfEine Seite pro Datei
Text extrahierenpdfplumberpage.extract_text()
Tabellen extrahierenpdfplumberpage.extract_tables()
PDFs erstellenreportlabCanvas oder Platypus
Kommandozeilen-Zusammenführenqpdfqpdf --empty --pages ...
OCR gescannter PDFspytesseractZuerst in Bild konvertieren
PDF-Formulare ausfüllenpdf-lib oder pypdf (siehe FORMS.md)Siehe FORMS.md

Nächste Schritte

  • Für erweiterte pypdfium2-Nutzung siehe REFERENCE.md
  • Für JavaScript-Bibliotheken (pdf-lib) siehe REFERENCE.md
  • Wenn du ein PDF-Formular ausfüllen musst, folge den Anweisungen in FORMS.md
  • Für Fehlerbehebungsanleitungen siehe REFERENCE.md

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches 007: Security audit, hardening, threat modeling (STRIDE/PASTA), Red/Blue Team, OWASP checks, code review, incident response, and infrastructure security for any project.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Agentfolio: Skill for discovering and researching autonomous AI agents, tools, and ecosystems using the AgentFolio directory.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Animejs Animation: Advanced JavaScript animation library skill for creating complex, high-performance web animations.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Astropy: Astropy is the core Python package for astronomy, providing essential functionality for astronomical research and data analysis.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Astro: Build content-focused websites with Astro — zero JS by default, islands architecture, multi-framework components, and Markdown/MDX support.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Emotional ARC Designer: One sentence - what this skill does and when to invoke it

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Fixing Motion Performance: Audit and fix animation performance issues including layout thrashing, compositor properties, scroll-linked motion, and blur effects.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches I18n Localization: Internationalization and localization patterns.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Interactive Portfolio: Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches JQ: Expert jq usage for JSON querying, filtering, transformation, and pipeline integration.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Landing Page Generator: Generates high-converting Next.js/React landing pages with Tailwind CSS.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches LEX: Centralized ''Truth Engine'' for cross-jurisdictional legal context (US, EU, CA) and contract scaffolding.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Magic Animator: AI-powered animation tool for creating motion in logos, UI, icons, and social media assets.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Makepad Animation: CRITICAL: Use for Makepad animation system.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Nextjs APP Router Patterns: Comprehensive patterns for Next.js 14+ App Router architecture, Server Components, and modern full-stack React development.

Anhvu1107/all-agent-skill

ALWAYS use this when the user mentions Nextjs Best Practices, asks to build, debug, review, document, automate, test, configure, migrate, or make decisions in this domain, or the task clearly depends on Nextjs Best Practices; scope: Next.js App Router principles. Apply the bundled workflow, references, scripts, Senior Master standard, and Codex strict review gate before final output.

Anhvu1107/all-agent-skill

description: ALWAYS use this when the work is specifically about modern Next.js or React architecture, data flow, rendering strategy, routing, or performance-sensitive frontend behavior.

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches Nextjs Supabase Auth: Expert integration of Supabase Auth with Next.js App Router

Anhvu1107/all-agent-skill

ALWAYS use this when the request matches React Nextjs Development: React and Next.js 14+ application development with App Router, Server Components, TypeScript, Tailwind CSS, and modern frontend patterns.

Anhvu1107/all-agent-skill

ALWAYS use this when working with Remotion code, video compositions, rendering logic, timing, media assets, or React-based motion workflows.

Verwandte Skills