pdf-checklist-generation
Generate structured PDF checklists and reports using Python libraries in sandbox
- License 许可
- MIT
- 所属仓库
- HKUDS/AgentPilot
- 最近更新
- 2026-11-12
- Stars
- ★ 8.0k
- Forks
- 944
01 前言 Front Matter
- name
- pdf-checklist-generation
- description
- Generate structured PDF checklists and reports using Python libraries in sandbox
02 资源文件 1
- 其他.skill_id38 B
03 SKILL.md 正文
PDF Checklist Generation
This skill provides a workflow for creating professional PDF documents (checklists, reports, scorecards) using Python libraries within an execute_code_sandbox environment.
When to Use
- Need to generate downloadable PDF reports or checklists
- Require structured documents with tables, sections, or scoring criteria
- Working in a sandbox environment without direct file system access
Available Libraries
Choose one based on your needs:
| Library | Best For | Complexity |
|---|---|---|
reportlab |
Professional layouts, tables, precise control | Medium |
fpdf |
Simple documents, quick generation | Low |
matplotlib |
Charts, graphs, visual reports | Medium |
Step-by-Step Workflow
Step 1: Install Required Library
!pip install reportlab # or fpdf, matplotlib
Step 2: Create PDF Generation Script
Example using reportlab:
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib import colors
def create_checklist_pdf(filename, checklist_items):
doc = SimpleDocTemplate(filename, pagesize=letter)
styles = getSampleStyleSheet()
elements = []
# Title
elements.append(Paragraph("Assessment Checklist", styles['Heading1']))
elements.append(Spacer(1, 12))
# Table data
data = [['Item', 'Status', 'Score']]
for item in checklist_items:
data.append([item['name'], item['status'], item['score']])
# Create table
table = Table(data)
table.setStyle(TableStyle([
('BACKGROUND', (0, 0), (-1, 0), colors.grey),
('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('GRID', (0, 0), (-1, -1), 1, colors.black),
]))
elements.append(table)
doc.build(elements)
print(f"PDF created: {filename}")
# Usage
checklist = [
{'name': 'Security Check', 'status': 'Pass', 'score': 10},
{'name': 'Performance Test', 'status': 'Fail', 'score': 5},
]
create_checklist_pdf('report.pdf', checklist)
Step 3: Execute in Sandbox
Run the script using execute_code_sandbox:
execute_code_sandbox(code="<your pdf generation code>")
Step 4: Verify Output
After generation, verify the PDF was created:
read_file(path="report.pdf")
Or inspect via shell:
execute_code_sandbox(code="import os; print(os.path.exists('report.pdf'))")
Best Practices
- Keep it simple: Start with basic layouts before adding complexity
- Test incrementally: Generate a minimal PDF first, then add features
- Handle errors: Wrap PDF generation in try/except blocks
- Verify file existence: Always confirm the PDF was created before proceeding
- Use UTF-8: Ensure text encoding is proper for special characters
Common Pitfalls
- Forgetting to install the library before import
- Not checking if file was created successfully
- Using paths that don't exist in sandbox environment
- Missing required dependencies for advanced features
Troubleshooting
| Issue | Solution |
|---|---|
| Import error | Run !pip install <library> first |
| File not found | Check working directory with !pwd |
| Blank PDF | Ensure doc.build() is called |
| Encoding issues | Use Unicode strings, specify encoding |
04 同仓库更多 Skills
agentpilot
Set up AgentPilot and use its single entry to prepare missing inputs and run configured RSI experiments. Use when the user requests AgentPilot installation or work with AgentPilot.
remember
Review auto-memory entries and propose promotions to OPENSPACE.md, OPENSPACE.local.md, or retained auto-memory topics; detect duplicates, stale facts, conflicts, and ambiguous entries before making changes.
skill-discovery
Search reusable OpenSpace skills locally, and browse cloud packages step by step when a cloud skill may help. Reusing proven skills saves tokens, improves reliability, and extends your capabilities beyond built-in tools.
delegate-task
Delegate tasks to OpenSpace — a full-stack autonomous worker for coding, DevOps, web research, and desktop automation, backed by an extensive MCP tool and skill library. Skills auto-improve through use, reducing token consumption over time. A cloud community lets agents share and collectively evolve reusable skills.
write-special-chars-ts-check
Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.
write-special-chars-readback
Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, with mandatory post-write verification via read_file and cleanup of /tmp helper scripts.