{
  "slug": "pdf",
  "category": "skill",
  "name": "The PDF Workbench",
  "domaene": "Betrieb & Projektmanagement",
  "typTags": [
    "ausführbar",
    "strukturierend"
  ],
  "teaser": "The PDF Workbench bundles the full range of PDF work into one executable skill with real code execution, from merging and splitting to watermarking, encryption, form filling, and OCR on scanned pages.",
  "hat": {
    "schritte": true,
    "beispiel_szenario": true,
    "ausgabebeispiel": false,
    "konfiguration": false,
    "betrieb": false,
    "arbeitsprompts": false,
    "einrichtung": true,
    "umsetzung": true,
    "export": false,
    "staerken": false,
    "ki_funktionen": false,
    "einschraenkungen": false,
    "weniger_geeignet_fuer": false
  },
  "sections": [
    {
      "id": "description",
      "title": "Description",
      "html": "<p>The PDF Workbench is an executable Claude skill: it runs with real code execution in Claude Code or in Claude.ai with code execution enabled, not as a plain chat prompt. It bundles practically every operation on PDF files into one capability: reading, extracting text and tables, merging multiple files, splitting, rotating pages, adding watermarks, creating new PDFs, filling forms, encrypting and decrypting, extracting images, and making scanned pages searchable through OCR.</p>\n<p>The skill is built for the entire lifecycle of a PDF document: from extracting a table out of an annual report, through merging several individual documents into one contract package, to password protecting a file before it is sent. Making scanned legacy archives searchable through OCR is part of it as well.</p>\n<p>Depending on the task, the skill selects the appropriate library: pypdf for basic operations such as merging, splitting and rotating, pdfplumber for text and table extraction with the layout preserved, reportlab for creating new PDFs, plus command line tools such as qpdf and pdftotext for fast single operations. The honest limit: OCR results from poorly scanned originals remain error-prone and should be spot-checked, and filling in complex PDF forms is covered by its own, more detailed guide. For actual execution, the skill needs the associated Python libraries and command line tools from the original repository; the instructions in the system prompt make the working method and tool choice transparent, but they do not replace the execution environment itself.</p>\n"
    },
    {
      "id": "skill-text",
      "title": "Skill Text",
      "html": "<p>This is an openly attributed external skill from Anthropic. Source: <a href=\"https://github.com/anthropics/skills\">https://github.com/anthropics/skills</a></p>\n<p>Copy the instructions below into your own skill environment with code execution if you want to set up this skill yourself. It describes the working method, tools, and the most important pitfalls; the environment additionally needs the original&#39;s associated helper scripts. As a file: <a href=\"/ai-library/pdf.en.json\">pdf.en.json</a></p>\n"
    }
  ],
  "schritte": [
    {
      "nr": 1,
      "titel": "Name the task",
      "beschreibung": "The operation and the PDF file or files involved are named, together with any additional details the operation requires, such as field values, a password, or a language.",
      "rolle": "mensch"
    },
    {
      "nr": 2,
      "titel": "Choose the tool",
      "beschreibung": "Depending on the operation, the appropriate library or command line tool is selected: pypdf for basic operations, pdfplumber for text and table extraction, reportlab for new PDFs, qpdf or pdftotext for fast command line operations.",
      "rolle": "automatisch"
    },
    {
      "nr": 3,
      "titel": "Run the operation",
      "beschreibung": "The operation is carried out and the result is saved as a new file. For OCR, the pages are first converted into images before the recognized text is assembled page by page.",
      "rolle": "automatisch"
    },
    {
      "nr": 4,
      "titel": "Processed file",
      "beschreibung": "The processed PDF file is ready, depending on the task merged, split, rotated, watermarked, encrypted, with a filled form, or as a searchable version after OCR.",
      "rolle": "ergebnis"
    },
    {
      "nr": 5,
      "titel": "Check the result",
      "beschreibung": "The file is opened and spot-checked for completeness and correctness, and for OCR additionally checked for the plausibility of the recognized text.",
      "rolle": "freigabe"
    }
  ],
  "herausgeber": "Voyage Digital",
  "version": "2.0",
  "stand": "2026-07-26",
  "umsetzung": [
    {
      "titel": "Make sure the execution environment is ready",
      "text": "The skill needs an environment with real code execution where the Python libraries pypdf, pdfplumber and reportlab, as well as the command line tools qpdf and pdftotext, are available."
    },
    {
      "titel": "Start with a simple operation",
      "text": "The best way in is a single, manageable task, for example merging two files, to get familiar with the working method and tool choice."
    },
    {
      "titel": "Use it for recurring tasks",
      "text": "The skill is particularly suited to routine work such as merging receipts on a monthly basis or encrypting contracts before they are sent."
    },
    {
      "titel": "Treat forms and OCR separately",
      "text": "Complex PDF forms and poorly scanned originals are covered by their own, more detailed guides, which should be consulted before use."
    },
    {
      "titel": "Always spot-check the result",
      "text": "Before passing a file on, it is worth a quick look at the result, especially for OCR text and filled form fields."
    }
  ],
  "zutaten": [
    "Operation",
    "PDF file",
    "Operation specific details"
  ],
  "beispielSzenario": "Ahead of sending a contract package, five separate documents, one scanned attachment and one signed page need to be combined. The PDF Workbench merges every file into a single PDF, makes the scanned attachment searchable through OCR, adds a watermark, and finally protects the document with a password before it is sent.",
  "eingaben": [
    {
      "feld": "Task and desired operation (read, merge, split, rotate, watermark, encrypt, fill form, OCR)",
      "pflicht": true
    },
    {
      "feld": "The PDF file or files involved",
      "pflicht": true
    },
    {
      "feld": "For forms: the field values to fill in",
      "pflicht": false
    },
    {
      "feld": "For encryption: desired user and owner password",
      "pflicht": false
    },
    {
      "feld": "For OCR: language of the scanned document, if not German or English",
      "pflicht": false
    }
  ],
  "ausgabe": "the processed PDF file, for example merged, split, rotated, watermarked, encrypted, with a filled form, or as a searchable version after OCR, depending on the task with extracted text or extracted tables as an intermediate result.",
  "prompt": "# ROLE\nYou are an executable skill for everything related to PDF files. You run with real code execution in Claude Code or in Claude.ai with code execution enabled, not as a plain text prompt. You read and extract text and tables, merge multiple PDFs, split them, rotate pages, add watermarks, create new PDFs, fill in PDF forms, encrypt and decrypt, extract images, and make scanned PDFs searchable through OCR.\n\n# QUICK START\nFor most reading tasks, the Python library pypdf is enough: open a file, iterate over the pages, extract text. For more complex tasks, choose the appropriate library from the overview below.\n\n# LIBRARIES AND TOOLS\n\n## pypdf, for basic operations\nMerging: create a new Writer instance, append all pages from each source file, save them together.\nSplitting: create a separate Writer instance for each page containing exactly that one page, and save each individually.\nReading metadata: title, author, subject and creator are found in the Reader's metadata object.\nRotating pages: call the rotate method on the desired page, then add it to the new file.\nPassword protection: writer.encrypt with a user and owner password before saving.\nWatermarking: load or generate a watermark page and apply it to each target page with merge_page before saving.\n\n## pdfplumber, for text and table extraction with layout\nExtract text with the layout preserved page by page using extract_text. Extract tables per page using extract_tables; for structured further processing, convert each table into a pandas DataFrame (first row as column headers), and you can merge several tables into one Excel file.\n\n## reportlab, for creating new PDFs\nFor simple content, the Canvas API is enough (text and line positions in point coordinates, origin at the bottom left). For multi-page documents with running text, use SimpleDocTemplate instead, with a story made of Paragraph, Spacer and PageBreak elements and the standard style sheets.\n\nCritical rule: never use Unicode superscript or subscript characters in reportlab PDFs. The built-in fonts do not contain these glyphs; they render as black boxes. Use the XML markup tags sub and super inside Paragraph objects instead. For text drawn directly on the canvas, adjust font size and position manually instead.\n\n## Command line tools\npdftotext extracts plain text, with the layout option to preserve the layout, and with the f and l options for a page range.\nqpdf merges PDFs (empty, pages, then the files), splits by page range, rotates individual pages with the rotate option, and removes passwords with password and decrypt.\npdftk, where available, offers the same basic operations (cat for merging, burst for splitting, rotate for rotating) in its own syntax.\n\n# COMMON TASKS\n\n## Extracting text from scanned PDFs\nFirst convert the pages into images, then run OCR on each image using pytesseract and assemble the recognized text page by page. Requires the pytesseract and pdf2image packages.\n\n## Adding watermarks\nLoad the watermark page, apply it to every page of the target document using merge_page, save the result as a new file.\n\n## Extracting images\nUse pdfimages from poppler-utils; the tool extracts all embedded images with sequential numbering.\n\n## Setting password protection\nAdd all pages to a new Writer, call encrypt with a user and owner password, save the file encrypted.\n\n# QUICK REFERENCE\n| Task | Preferred tool |\n| --- | --- |\n| Merging PDFs | pypdf |\n| Splitting PDFs | pypdf, one page per file |\n| Extracting text | pdfplumber |\n| Extracting tables | pdfplumber |\n| Creating PDFs | reportlab, Canvas or Platypus |\n| Merging via command line | qpdf |\n| Making scanned PDFs readable via OCR | pytesseract, convert to images first |\n| Filling PDF forms | pdf-lib or pypdf, see the separate form guide |\n\n# LIMITS AND NOTES\nFilling in PDF forms is covered by its own, more detailed guide, which you should consult before starting. A separate reference exists for advanced functions, JavaScript libraries and more detailed examples.\n\n# DEFINITION OF DONE\n[ ] Desired operation carried out with the appropriate tool, not with a mismatched substitute\n[ ] For new PDFs: no Unicode superscript or subscript characters used\n[ ] For forms: the separate form guide followed\n[ ] Result file opened and spot-checked for completeness\n[ ] For OCR: recognized text checked for plausibility, not accepted blindly",
  "einrichtung": {
    "intro": "Step-by-step guides for ChatGPT, Claude, Copilot Studio and Langdock.",
    "plattformen": [
      {
        "plattform": "ChatGPT",
        "anbieter": "OpenAI",
        "schritte": [
          "Copy the skill text above using the copy button.",
          "Click your profile picture and select \"Skills\".",
          "Click \"Create skill\" and paste the copied text as the instruction.",
          "Adjust inputs, outputs and format where your case requires it.",
          "Save the skill. It is available in all chats from that point on."
        ],
        "doku": {
          "label": {
            "de": "OpenAI Dokumentation: Skills in ChatGPT",
            "en": "OpenAI documentation: Skills in ChatGPT"
          },
          "url": "https://help.openai.com/de-de/articles/20001066-skills-in-chatgpt"
        }
      },
      {
        "plattform": "Claude",
        "anbieter": "Anthropic",
        "schritte": [
          "Copy the skill text above using the copy button.",
          "Open claude.ai and go to \"Skills\" in your profile.",
          "Create a new skill and paste the copied text as the instruction.",
          "The skill works in claude.ai, in Claude Code and through the API.",
          "Available on the Pro, Max, Team and Enterprise plans."
        ],
        "doku": {
          "label": {
            "de": "Anthropic Dokumentation: Benutzerdefinierte Skills erstellen",
            "en": "Anthropic documentation: Creating custom skills"
          },
          "url": "https://support.claude.com/de/articles/12512198-benutzerdefinierte-skills-erstellen"
        }
      },
      {
        "plattform": "Copilot Studio",
        "anbieter": "Microsoft",
        "schritte": [
          "Copy the skill text above using the copy button.",
          "Open Copilot Studio and create a new agent.",
          "Paste the copied text as the instruction.",
          "Connect knowledge sources and tools where needed.",
          "Publish the agent for yourself or for your organisation."
        ],
        "doku": {
          "label": {
            "de": "Microsoft Dokumentation: Einen Agent erstellen und bereitstellen",
            "en": "Microsoft documentation: Create and deploy an agent"
          },
          "url": "https://learn.microsoft.com/de-de/microsoft-copilot-studio/fundamentals-get-started"
        }
      },
      {
        "plattform": "Langdock",
        "anbieter": null,
        "schritte": [
          "Copy the skill text above using the copy button.",
          "Open the sidebar and click \"Add skill\".",
          "Paste the copied text directly as the instruction.",
          "Connect the skill to integrations such as Gmail or Slack where needed.",
          "Save the skill and release it for yourself or your team."
        ],
        "doku": {
          "label": {
            "de": "Langdock Dokumentation: Skills",
            "en": "Langdock documentation: Skills"
          },
          "url": "https://docs.langdock.com/de/product/chat/skills"
        }
      }
    ]
  },
  "itemIcon": "file-type-2",
  "recommended": [
    {
      "slug": "google-drive",
      "category": "tool",
      "name": "Google Drive",
      "teaser": "Google's cloud file storage for documents, spreadsheets and presentations, with real-time collaboration, granular sharing and automation through the Drive API.",
      "domaene": "Betrieb & Projektmanagement",
      "logoFile": "google-drive.png",
      "logoEinzug": 1
    },
    {
      "slug": "linear",
      "category": "tool",
      "name": "Linear",
      "teaser": "Issue tracking and planning tool for software teams that organizes work into cycles, initiatives and roadmaps, automatically routes customer feedback into prioritized issues, and connects to coding tools through an MCP server and its own AI agents.",
      "domaene": "Betrieb & Projektmanagement",
      "logoFile": "linear.svg",
      "logoEinzug": 0.78
    },
    {
      "slug": "nuwacom",
      "category": "tool",
      "name": "Nuwacom",
      "teaser": "Nuwacom is an AI-powered communication platform that unifies a company's chat, voice and meetings in a single interface with built-in summaries and action items.",
      "domaene": "Betrieb & Projektmanagement",
      "logoFile": "nuwacom.svg",
      "logoEinzug": 1
    },
    {
      "slug": "plane",
      "category": "tool",
      "name": "Plane",
      "teaser": "Plane is an open source project management tool with issues, cycles, modules and worklogs, available as either a free self-hosted Community Edition or a cloud service, positioning it as an affordable, data-sovereign alternative to Jira and Linear.",
      "domaene": "Betrieb & Projektmanagement",
      "logoFile": "plane.png",
      "logoEinzug": 0.78
    },
    {
      "slug": "aufgaben-raster",
      "category": "skill",
      "name": "The Task Grid",
      "teaser": "Reads meeting minutes, emails or other texts and extracts all open tasks, both explicit and implicit, with owners and deadlines.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "list-checks"
    },
    {
      "slug": "kickoff-briefing",
      "category": "skill",
      "name": "The Kickoff Briefing",
      "teaser": "The Kickoff Briefing turns your project data into a complete kickoff package with agenda, one pager, role matrix and invitation email in a single pass.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "flag"
    },
    {
      "slug": "office",
      "category": "skill",
      "name": "The Office Workbench",
      "teaser": "The Office Workbench is an executable Claude skill that builds, reads, and edits Word, PowerPoint, and Excel files with the right tools, formatting rules, and quality checks for each format.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "table"
    },
    {
      "slug": "posteingang-regelwerk",
      "category": "skill",
      "name": "The Inbox Rulebook",
      "teaser": "Sorts a full inbox into a fixed rulebook of category, urgency and reply draft, so you keep the final decision while the system handles the triage.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "inbox"
    },
    {
      "slug": "retro-regelwerk",
      "category": "skill",
      "name": "The Retro Rulebook",
      "teaser": "The Retro Rulebook builds a complete retrospective package, agenda, guiding questions, a collection template and a three-point action plan with owner and deadline, from just the retro type, time period and team size.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "rotate-ccw"
    },
    {
      "slug": "tagesabschluss-protokoll",
      "category": "skill",
      "name": "The Shutdown Protocol",
      "teaser": "The Shutdown Protocol actively walks you through every open task at the end of the workday and hands you exactly three pre-prepared priorities to start tomorrow with focus.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "moon"
    },
    {
      "slug": "uebergabe-paket",
      "category": "skill",
      "name": "The Handover Package",
      "teaser": "Builds a complete handover document from meeting notes, quotes and CRM records for the transition from sales to the delivery team.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "package-check"
    },
    {
      "slug": "posteingang-route",
      "category": "workflow",
      "name": "The Inbox Router",
      "teaser": "A workflow that automatically classifies incoming emails, applies the matching label, and immediately alerts you when something is urgent.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "inbox"
    },
    {
      "slug": "status-bruecke",
      "category": "workflow",
      "name": "The Status Bridge",
      "teaser": "A workflow that pulls your project data every week and turns it into a ready status report covering progress, risks and delays, for you to review before it goes out.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "activity"
    },
    {
      "slug": "team-digest-schleife",
      "category": "workflow",
      "name": "The Team Digest Loop",
      "teaser": "A daily workflow that gathers the important discussions from your team's Slack or Teams channels and turns them into a structured digest of decisions, action items, and updates.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "mails"
    },
    {
      "slug": "okr-stratege",
      "category": "assistent",
      "name": "The OKR Strategist",
      "teaser": "Translates a top-level strategic goal into a complete OKR set with a qualitative objective, measurable key results, concrete initiatives and an alignment check that flags dependencies and risks.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "target"
    },
    {
      "slug": "prozess-dokumentierer",
      "category": "assistent",
      "name": "The Process Documenter",
      "teaser": "Captures undocumented business processes through a structured interview and turns them into clear, visual process documentation with steps, decision points and responsibilities.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "route"
    },
    {
      "slug": "risikomatrix-pruefer",
      "category": "assistent",
      "name": "The Risk Matrix Reviewer",
      "teaser": "Identifies, assesses and prioritizes project risks in a structured risk matrix with preventive and corrective measures.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "grid-3x3"
    },
    {
      "slug": "statusbericht-kurator",
      "category": "assistent",
      "name": "The Status Report Curator",
      "teaser": "Condenses status meeting notes and the project plan into a structured project status report with a traffic light rating, a milestone and risk overview, and concrete next steps.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "clipboard-check"
    },
    {
      "slug": "workflow-planer",
      "category": "assistent",
      "name": "The Workflow Planner",
      "teaser": "Builds a complete plan from a workflow goal, time frame, and the available resources, with process steps, a resource matrix, risk analysis, and measurable milestones.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "workflow"
    },
    {
      "slug": "google-calendar",
      "category": "tool",
      "name": "Google Calendar",
      "teaser": "Google Calendar is Google's web-based calendar application for appointments, invitations and calendars shared across teams, tightly linked to Gmail, Meet and Drive.",
      "domaene": "Betrieb & Projektmanagement",
      "logoFile": "google-calendar.png",
      "logoEinzug": 0.78
    }
  ]
}