pdf-design

Instructions and code examples for creating, editing, and designing PDFs programmatically. Use this skill to generate reports, fill forms, or design custom layouts.

About pdf-design

pdf-design is a Claude AI skill developed by DegrassiAaron. Instructions and code examples for creating, editing, and designing PDFs programmatically. Use this skill to generate reports, fill forms, or design custom layouts. This powerful Claude Code plugin helps developers automate workflows and enhance productivity with intelligent AI assistance.

0Stars
0Forks
2025-10-20

Why use pdf-design? With 0 stars on GitHub, this skill has been trusted by developers worldwide. Install this Claude skill instantly to enhance your development workflow with AI-powered automation.

namepdf-design
descriptionInstructions and code examples for creating, editing, and designing PDFs programmatically. Use this skill to generate reports, fill forms, or design custom layouts.
licenseMIT
metadata{"category":"documents"}

PDF Creation and Design Manual

Overview

This skill helps you create and manipulate PDF documents using Python and command-line tools. Use it to generate reports, fill forms, or customize layouts.

Creating PDFs with ReportLab

Basic Example

from reportlab.lib.pagesizes import A4 from reportlab.pdfgen import canvas c = canvas.Canvas("hello.pdf", pagesize=A4) width, height = A4 # Draw text c.setFont("Helvetica-Bold", 16) c.drawString(50, height - 50, "Hello, PDF!") # Draw rectangle c.rect(50, height - 100, 200, 50, stroke=1, fill=0) # Save c.save()

Multipage Report

from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak from reportlab.lib.styles import getSampleStyleSheet doc = SimpleDocTemplate("report.pdf") styles = getSampleStyleSheet() story = [] story.append(Paragraph("Report Title", styles['Title'])) story.append(Spacer(1, 12)) story.append(Paragraph("This is the report body.", styles['Normal'])) story.append(PageBreak()) story.append(Paragraph("Page 2", styles['Heading1'])) doc.build(story)

Filling PDF Forms with PyPDF

from pypdf import PdfReader, PdfWriter reader = PdfReader("form.pdf") writer = PdfWriter() for page in reader.pages: writer.add_page(page) # Update form fields writer.update_page_form_field_values(writer.pages[0], { "name_field": "John Doe", "date_field": "2025-10-18" }) with open("filled_form.pdf", "wb") as f_out: writer.write(f_out)

Merging and Splitting PDFs

from pypdf import PdfMerger, PdfReader, PdfWriter # Merge merger = PdfMerger() for pdf_file in ["file1.pdf", "file2.pdf"]: merger.append(pdf_file) merger.write("merged.pdf") merger.close() # Split first 5 pages reader = PdfReader("big.pdf") for i, page in enumerate(reader.pages[:5]): writer = PdfWriter() writer.add_page(page) with open(f"page{i+1}.pdf", "wb") as out: writer.write(out)

Design Tips

  • Use consistent margins and spacing.
  • Choose a readable font (e.g., Helvetica or Times New Roman).
  • Use headers and footers for pagination and context.
  • Incorporate your brand colors and logo.
  • For long documents, include a table of contents with hyperlinks.

Command-Line Tools

  • pdftotext – Extract text: pdftotext -layout input.pdf output.txt.
  • qpdf – Merge/split: qpdf input.pdf --pages . 1-5 -- output.pdf.
  • pdfinfo – View metadata.

Additional Resources

  • ReportLab User Guide.
  • PyPDF documentation.
  • Poppler utils man pages.
DegrassiAaron

DegrassiAaron

influencerai-monorepo

View on GitHub

Download Skill Files

View Installation Guide

Download the complete skill directory including SKILL.md and all related files