← Về thư mục
PPTX poster release checklist
Use this checklist for the final generated package and every exported/printed
derivative. A script pass is necessary but not sufficient.
1. Requirements and approval
- [ ] The organizer's current poster rule is recorded with an exact source ID.
- [ ] The printer's current trim, bleed, safe-margin, scaling, file-format, and
color requirements are recorded with an exact source ID.
- [ ] The selected physical trim size and orientation comply with those records.
- [ ] No generic "standard poster size" was substituted for organizer/printer rules.
- [ ] Every claim, number, citation, author name, affiliation, logo, figure, and
asset license has an exact source ID.
- [ ] Every source record is marked author-verified.
- [ ] Every element and asset is marked author-approved.
- [ ] No placeholder, sample claim, invented citation, or inferred result remains.
- [ ] The approving author reviewed the canonical content hash after the final edit.
Run:
python -B scripts/validate_manifest.py poster.json
2. Safe local generation
- [ ] Generation used the exact versions in
generation_dependencies.json.
- [ ] All optional image paths are manifest-relative local PNG/JPEG files.
- [ ] Every asset hash matches.
- [ ] Every asset has exact provenance and a license/permission statement.
- [ ] No template file, remote image, URL download, API key, environment file,
image-generation service, or network service was used.
- [ ] The output path was new; no existing file was replaced.
- [ ] The generated file is
.pptx, never .pptm.
Run:
uv run --with "python-pptx==1.0.2" --with "Pillow==12.3.0" \
--with "lxml==6.1.1" \
python -B scripts/generate_poster.py poster.json --output poster.pptx
3. PPTX package security
- [ ] ZIP member names have no traversal, absolute paths, symlinks, duplicates,
encryption, oversized entries, or excessive expansion ratios.
- [ ] The package has the standard macro-free PresentationML content type.
- [ ] The package matches the strict generated one-slide part profile.
- [ ] No VBA, ActiveX, OLE, embedded package, executable/binary payload, external
link part, or custom UI is present.
- [ ] No relationship has
TargetMode="External".
- [ ] No remotely linked image is present.
- [ ] Internal relationship targets resolve to existing package parts.
- [ ] The presentation was inspected as ZIP/XML and was not opened or executed by
the inspection script.
Run:
python -B scripts/inspect_pptx.py poster.pptx
Treat any package finding as a release blocker. Do not "fix" an untrusted package
by opening it in PowerPoint.
4. Dimensions, scale, bleed, and margins
- [ ] PowerPoint canvas width and height are each in the current 1–56 inch range.
- [ ] Final physical trim dimensions are recorded separately from canvas dimensions.
- [ ] Final artboard dimensions include twice the confirmed bleed on each axis.
- [ ] Canvas and final artboard have the same aspect ratio.
- [ ] Uniform print scale is explicit; no nonuniform stretching is allowed.
- [ ] Printer permission is recorded if final output is scaled from the PPTX canvas.
- [ ] All non-bleed content stays inside the confirmed safe margin from the trim edge.
- [ ] Full-bleed imagery reaches the artboard edge and does not move text into bleed.
- [ ] A physical or contract proof confirms trim and bleed behavior.
Run:
python -B scripts/plan_export.py poster.json
5. Layout and typography
- [ ] No shape is out of bounds.
- [ ] Every reported bounding-box overlap is either removed or documented as
intentional after visual inspection.
- [ ] No text box visibly overflows, clips, wraps unexpectedly, or uses silent
auto-shrink.
- [ ] Font sizes were assessed at final physical output, not only on the PPTX canvas.
- [ ] The manifest labels its minimum-font value as a project heuristic or ties it
to an exact organizer/printer/source requirement.
- [ ] Required fonts are available on the export workstation and printer workflow.
- [ ] Font embedding rights and the chosen embed/not-embed workflow were reviewed;
the generator itself did not embed fonts.
- [ ] Font substitution, equations, symbols, and scientific glyphs were checked.
- [ ] Visual hierarchy and reading path remain clear at reduced-scale proof size.
Run:
python -B scripts/check_layout.py poster.pptx --manifest poster.json
The checker cannot determine rendered overflow or font substitution; inspect those
in PowerPoint and in the exported PDF.
6. Raster images and assets
- [ ] Effective DPI is calculated from pixel dimensions divided by final placed
inches, not from file metadata.
- [ ] Every placement meets the manifest's source-labeled or heuristic DPI threshold.
- [ ] No image is stretched out of aspect ratio.
- [ ] The final PDF and printer proof show no resampling artifacts.
- [ ] Asset IDs, hashes, source IDs, provenance, permissions/licenses, and alt text are
in the inventory.
- [ ] EXIF, XMP, comments, and embedded text/application metadata were stripped in
an author-reviewed offline workflow before hashing and approval.
- [ ] Logos and images are authorized for this use.
Run:
python -B scripts/inventory_images.py poster.json \
--output poster.assets.json
7. Color and graphical accessibility
- [ ] Normal text pairs meet WCAG 2.2 SC 1.4.3 at 4.5:1.
- [ ] Large text pairs meet 3:1 only when final text is at least 18 pt, or at least
14 pt and bold.
- [ ] Essential graphical objects meet the 3:1 non-text contrast screen where
WCAG 2.2 SC 1.4.11 is being used as the design target.
- [ ] Information is never encoded by color alone.
- [ ] Categories also use direct labels, shapes, markers, patterns, or line styles.
- [ ] Palette selection is appropriate to data type: qualitative, sequential, or
diverging.
- [ ] A grayscale/color-vision simulation is reviewed as a screen, not treated as
proof of accessibility.
- [ ] A color proof confirms the printer's conversion and substrate behavior.
Run:
python -B scripts/check_palette.py poster.json
8. PowerPoint accessibility
- [ ] Every picture has concise, accurate alt text that conveys purpose.
- [ ] Complex figures have an approved source-bound native long description when alt
text and adjacent prose are insufficient.
- [ ] Important text is native text, not only pixels inside an image.
- [ ] The visible title is the native slide-title placeholder and text language is
correct.
- [ ] The Reading Order pane matches the intended logical sequence.
- [ ] The PowerPoint Accessibility Checker has no unresolved errors.
- [ ] A keyboard and screen-reader pass confirms the actual reading order.
- [ ] Text links have meaningful visible labels.
- [ ] Every QR code has the exact destination URL in visible fallback text.
- [ ] Each final printed QR code was tested with multiple devices.
- [ ] Language, author names, acronyms, captions, and table alternatives are correct.
Automated XML inspection cannot certify these manual checks.
9. Export and print
- [ ] Export uses PowerPoint's Standard/high print quality, not Minimum size.
- [ ] No audio, video, linked media, OLE, ActiveX, embedded file, or external
relationship was introduced after generation.
- [ ] Exported PDF page size equals the final artboard expected by the printer.
- [ ] Exported PDF is checked independently for tags, reading order, alt text,
links, fonts, clipping, image quality, and page dimensions.
- [ ] RGB is distinguished from any printer-required CMYK conversion.
- [ ] If CMYK is required, the printer-approved conversion/profile and proof are
complete; the native PowerPoint export is not represented as CMYK-compliant.
- [ ] Conference file format, naming, file-size, and submission rules are met.
- [ ] Printer deadline, substrate, mounting, delivery, and backup requirements are met.
10. Final sign-off
- [ ] Presenting/corresponding author approved all scientific content and citations.
- [ ] Accessibility reviewer completed manual checks.
- [ ] Printer or production contact approved dimensions, bleed, scale, and color.
- [ ] The exact approved manifest, PPTX hash, asset inventory, audit reports, exported
PDF, and proof are retained together.
- [ ] A final change triggers a new content hash, new author approval, regeneration,
re-export, and all checks again.