<< All versions
Skill v1.0.2
Automated scan100/100hkuds/openspace/reportlab-styles
1 files
──Details
PublishedApril 26, 2026 at 06:27 PM
Content Hashsha256:e2d04e8326fb1650...
Git SHAd1e367d0ed47
Bump Typepatch
──Files
Files (1 file, 3.0 KB)
SKILL.md3.0 KBactive
SKILL.md · 98 lines · 3.0 KB
version: "1.0.2" name: reportlab-styles description: Use reportlab's pre-defined styles from getSampleStyleSheet() correctly
ReportLab Pre-Defined Styles Reference
Overview
ReportLab's reportlab.lib.styles.getSampleStyleSheet() provides a collection of pre-defined paragraph styles. Use these existing styles rather than redefining them to avoid KeyError exceptions.
Available Pre-Defined Styles
The standard stylesheet includes these commonly-used styles:
| Style Name | Purpose | |
|---|---|---|
Normal | Default body text | |
Title | Document title (large, bold) | |
Heading1 | Level 1 section heading | |
Heading2 | Level 2 section heading | |
Heading3 | Level 3 section heading | |
Heading4 | Level 4 section heading | |
Heading5 | Level 5 section heading | |
Heading6 | Level 6 section heading | |
Bullet | Bulleted list items | |
Definition | Definition list terms | |
Italic | Italicized text | |
Code | Monospace code text |
Correct Usage Pattern
python
from reportlab.lib.styles import getSampleStyleSheetfrom reportlab.platypus import Paragraph# Get the stylesheetstyles = getSampleStyleSheet()# Use existing styles directly (CORRECT)title = Paragraph("My Document Title", styles['Title'])heading = Paragraph("Section Header", styles['Heading1'])body = Paragraph("Regular text content", styles['Normal'])
Common Mistake to Avoid
python
# WRONG - Don't redefine existing style namesfrom reportlab.lib.styles import getSampleStyleSheet, ParagraphStylestyles = getSampleStyleSheet()# This will cause KeyError when you try to use 'Title' laterstyles.add(ParagraphStyle(name='Title', # Overwrites the pre-defined 'Title' stylefontSize=24,# ... incomplete definition))# Later code expecting the full 'Title' style will failparagraph = Paragraph("Title Text", styles['Title']) # KeyError!
Best Practices
- Use existing styles as-is when they meet your needs
- Create new style names for custom styles (e.g.,
MyCustomTitle,CustomHeading) - Base custom styles on existing ones when you need modifications:
python
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStylestyles = getSampleStyleSheet()# Create a NEW style with a unique namecustom_title = ParagraphStyle(name='CustomTitle', # Unique name, doesn't conflictparent=styles['Title'], # Base it on existing TitlefontSize=28,spaceAfter=30)styles.add(custom_title)# Now both styles are availablestyles['Title'] # Original pre-defined stylestyles['CustomTitle'] # Your custom variant
Quick Reference Checklist
- [ ] Import
getSampleStyleSheet()fromreportlab.lib.styles - [ ] Call
styles = getSampleStyleSheet()once at the start - [ ] Access styles via
styles['StyleName'](case-sensitive) - [ ] Do NOT add styles with names that already exist in the stylesheet
- [ ] Use unique names for any custom styles you create
- [ ] Common available styles:
Normal,Title,Heading1-6,Bullet,Code,Italic