source_ledger.md
283 lines · skills/pptx-posters/references/source_ledger.md at 5f2bc03
Source ledger
Latest API/workflow review: 2026-10-01. Original research cutoff: 2026-07-24. Recheck live organizer, printer, package, and application guidance before production use.
This ledger records the upstream basis for skill behavior. It is not a poster's scientific bibliography.
Method: current official documentation, python-pptx tagged source, and official PyPI release metadata were compared with all bundled scripts. The current exact pins passed 52 local tests on Python 3.13.3, including UTC conversion, core metadata limits, contain placement, deterministic generation, and path checks. Microsoft PowerPoint, screen-reader, PDF export, and printer behavior remain manual checks. The historical IEEE DSC example is explicitly bounded below; it was not independently refreshed. These documentation checks are not authenticated service tests: the shipped tools make no API calls.
Raw lines 1 to 18Microsoft PowerPoint
Raw lines 19 to 20Poster-specific product guidance
- Microsoft Create poster templates for PowerPoint (official Microsoft Create, now redirected to PowerPoint templates; checked 2026-10-01).
- Describes editable PowerPoint poster/flyer templates and saving, printing, or sending the result as PDF.
Skill impact: confirms PowerPoint as a supported poster authoring format, but does not establish research-poster dimensions or printer requirements. This strict generator does not ingest downloaded templates or use the page's AI design features.
Raw lines 21 to 31Slide dimensions and scaling
- Change the size of your PowerPoint slides (Microsoft Support; checked 2026-10-01; no publication date exposed).
- Custom width/height each range from 1 to 56 inches.
- Units can be inches, centimeters, or pixels; PowerPoint converts them.
- All slides in a presentation have the same size.
- Maximize can cause content not to fit; Ensure Fit can make content smaller.
Skill impact: enforce 1–56 inches, one slide, exact aspect ratio, explicit physical scale, and no reuse/resizing of existing content.
Raw lines 32 to 43Export
- Export a presentation (Microsoft Support; checked 2026-10-01).
- Standard is the option for publishing online and printing; Minimum size prioritizes a smaller file.
- Create accessible PDFs (Microsoft Support; checked 2026-10-01).
- On macOS, the electronic-distribution/accessibility route sends the document to Microsoft's online conversion service; quality settings do not imply local-only processing. Object hyperlinks are preserved only by that documented route.
Skill impact: provide a manual export plan with separate canvas and final-artboard PDF point dimensions, and require independent page-size/print checks. Scaled canvas output needs confirmed printer scaling or a checked full-size derivative. The scripts do not export PDF, invoke Office, or contact the conversion service.
Raw lines 44 to 61Accessibility
- Make your PowerPoint presentations accessible to people with disabilities (Microsoft Support; checked 2026-10-01).
- Use Accessibility Checker and Reading Order pane.
- Add alt text to visuals.
- Do not use color alone.
- Use sufficient text/background contrast.
- Use meaningful hyperlink text.
- Test with a screen reader.
- Recommends 18 pt or larger for ordinary slides.
- Rules for the Accessibility Checker (Microsoft Support).
- Includes missing alt text and logical reading order checks.
- PowerPoint PDF Accessibility (Microsoft Learn; checked 2026-10-01).
- Documents tagged-PDF behavior and applicable PowerPoint versions/channels.
Skill impact: automate only structural checks; require final Accessibility Checker, reading-order, screen-reader, and exported-PDF review. The 18 pt recommendation is identified as slide-specific, not a universal poster minimum.
Raw lines 62 to 85Fonts, pictures, and media
- Benefits of embedding custom fonts (Microsoft Support; checked 2026-10-01).
- Embedding can preserve layout, styling, and characters when a recipient lacks a font, but not all fonts permit embedding.
- Embedding only used characters limits later editing; embedding all characters is the PowerPoint option intended for editing by others.
- Change the default resolution for inserting pictures in Office and Turn off picture compression (Microsoft Support; checked 2026-10-01).
- Microsoft documents High fidelity/minimal compression and a per-document option not to compress images.
- Video and audio file formats supported in PowerPoint (Microsoft Support; checked 2026-10-01).
- PowerPoint supports several audio/video formats and notes deprecations beginning in version 2505 for older formats.
Skill impact: the generator records font names but does not install or embed fonts; availability, embedding rights, substitution, and the exported PDF are checked manually. It accepts only fully decoded local PNG/JPEG still images, reports effective DPI, and excludes every audio/video or linked-media feature from its package profile.
Raw lines 86 to 110Color API
- PowerPoint ColorFormat.RGB property (Microsoft Learn).
Skill impact: author opaque sRGB colors, label PowerPoint as an RGB workflow, and block claims of CMYK readiness until printer-approved conversion/proof.
Raw lines 111 to 118File formats and macros
- File formats supported in PowerPoint (Microsoft Support).
- Identifies
.pptmas a VBA-containing macro-enabled presentation.
- Save a presentation that contains VBA macros (Microsoft Support).
- Macro-bearing presentations require macro-enabled extensions such as
.pptm.
Skill impact: accept/generate only .pptx, then inspect content types and package parts rather than trusting the extension alone.
Office Open XML and packaging
- ECMA-376 (Ecma International).
- Defines Office Open XML vocabularies, document representation, and packaging.
- ISO/IEC 29500-2:2021 (ISO).
- Defines Open Packaging Conventions for combining parts and relationships.
- Open XML SDK overview (Microsoft Learn).
- Connects the SDK and file formats to ECMA-376 and ISO/IEC 29500.
- IOpcRelationship::GetTargetMode (Microsoft Learn).
- Distinguishes internal package-part targets from external targets.
- [PowerPoint
.pptxextensions to Office Open XML](https://learn.microsoft.com/en-us/openspecs/office_standards/ms-pptx/efd8bb2d-d888-4e2e-af25-cad476730c9f) (Microsoft Open Specifications; published protocol revision shown as 2024-08-20 during research).
- PresentationML OLE Object (Microsoft Learn / ISO schema remarks).
- OLE objects can contain embedded or linked objects/controls.
- Presentation NonVisualDrawingProperties (Microsoft Learn / ISO schema remarks).
p:cNvPrstores nonvisual properties including the drawing description used for picture alt text.
Skill impact: bounded ZIP/XML inspection, relationship target/mode checks, rejection of embedded/active/external content, and standard alt-description markup.
Raw lines 132 to 165Python package APIs and versions
Raw lines 166 to 167python-pptx
- python-pptx on PyPI
- Current stable at review: 1.0.2, released 2024-08-07.
- Requires Python 3.8 or later.
- Described as creating, reading, and updating PowerPoint 2007+
.pptxfiles.
- python-pptx v1.0.2 repository tag (official GitHub repository).
- The v1.0.2 source and current PyPI metadata agree with the exact generation pin.
- Presentation API
Presentation(),save,slide_width, andslide_height; dimensions are EMU.- Core-property strings have a 255-character limit. Dates are UTC-naive; callers must convert non-UTC inputs before assignment.
- Shapes API
add_textbox,add_picture, and explicit shape position/size. Supplying both picture dimensions stretches to them; this generator calculates proportional dimensions itself before calling the API.
- Text API
- Font sizes and text-frame behavior.
Skill impact: exact pin python-pptx==1.0.2; use only documented creation, slide, shape, text, color, and core-property APIs. Alt descriptions are added afterward using standard PresentationML because the public python-pptx API does not expose a complete poster accessibility workflow. The manifest checks metadata lengths before generation; offset-aware approval times are converted to UTC. The skill does not use PptxGenJS or assume a built-in contain API.
Pillow
- Pillow on PyPI
- Current stable at review: 12.3.0, released 2026-07-01.
- Requires Python 3.10 or later.
- Pillow documentation (documentation identified itself as 12.3.0 at review).
- Image API
- Opening is lazy;
verify()checks structure and requires reopening beforeload()decodes pixels. Decompression-bomb warnings can be promoted to errors.
Skill impact: exact pin Pillow==12.3.0; bounded verification of local PNG/JPEG dimensions, mode, frames, and effective DPI. Heavy imports remain lazy so every CLI's help works without optional packages.
lxml
- lxml on PyPI
- Current stable at review: 6.1.3, released 2026-09-02.
- Requires Python 3.8 or later.
- 6.1.3 release notes fix unintended external parameter entity parsing with the default
resolve_entities="internal"setting.
Skill impact: exact transitive pin lxml==6.1.3 for python-pptx generation. The dependency-free inspector still uses bounded standard-library XML parsing and rejects DTD/entity declarations before parsing.
Accessibility standards
- Web Content Accessibility Guidelines (WCAG) 2.2 (W3C Recommendation, 2024-12-12).
- SC 1.4.1: do not use color as the only visual means of conveying information.
- SC 1.4.3: 4.5:1 for normal text; 3:1 for large text.
- Large text: at least 18 pt, or at least 14 pt and bold.
- SC 1.4.11: 3:1 for graphical parts required to understand content.
Skill impact: exact sRGB contrast calculations with usage-specific thresholds and mandatory redundant encoding. WCAG is used as a declared design target; no claim is made that a physical poster or PPTX is a conforming web page.
Raw lines 228 to 240Palette authorities
- ColorBrewer 2 (Penn State/Cynthia Brewer project).
- Distinguishes qualitative, sequential, and diverging schemes.
- Offers colorblind-safe, print-friendly, and photocopy-safe filters.
- Paul Tol, Colour Schemes, issue 3.2 (SRON/EPS/TN/09-002, 2021-08-18).
- Documents clear colour schemes intended to work for colour-blind readers and gives scheme-specific values/order.
Skill impact: explain scheme selection and caveats. No bundled palette is represented as universally accessible; rendered contrast and redundant encoding remain required.
Raw lines 241 to 255Conference examples — not universal rules
- CSCW 2026 posters (official event page checked 2026-10-01; its explicit 2026 important dates include a 2026-07-10 camera-ready deadline).
- Allocated 48 × 48 inches; recommended no side over 45 inches, allowed up to 47 inches; stated A0 or A1 could be acceptable.
- IEEE DSC 2025 poster instructions (historical official organizer page; unavailable to the 2026-10-01 browser fetch, so the 2026-07-24 evidence has not been independently refreshed).
- The historical record required the physical poster to fit A1 space: 84.1 × 59.4 cm.
Skill impact: use these only to demonstrate variation. The validator requires the actual event's confirmed rule and exact source ID.
Raw lines 256 to 271Secure standard-library APIs
- [Python
pathlib](https://docs.python.org/3/library/pathlib.html) resolve()dereferences symlinks. Asset containment is checked on the resolved target, while the final-symlink check uses the original manifest-relative path.- [Python
zipfile](https://docs.python.org/3/library/zipfile.html) - [Python
xml.etree.ElementTree](https://docs.python.org/3/library/xml.etree.elementtree.html) - [Python
json](https://docs.python.org/3/library/json.html)
Skill impact: no archive extraction; strict duplicate/non-finite JSON handling; bounded XML parts; DTD/entity rejection; no network, shell invocation, dynamic code execution, or arbitrary object deserialization.
Raw lines 272 to 283