Web print pdf
Reusable AI agent skills for application development, data, architecture, domain modelling and delivery workflows.
npx -y skills add POWR-DATA/mtx-skills --skill web-print-pdfAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Produce reliable print and PDF output from an HTML page with print-specific CSS — pagination, image cropping, equal columns, running footers, and colour
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.0 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Web Print PDF
Purpose
Turn an HTML page into clean, predictable print/PDF output using @media print CSS — controlling pagination, image cropping, column heights, running footers, and background colour so the printed result matches the design instead of the browser's default reflow.
When to use
When a web page must also produce a polished PDF or printout (invoices, reports, certificates, one/two-page summaries) via the browser's print engine (Ctrl+P → Save as PDF). Apply when print output crops wrongly, spills onto blank pages, drops background colours, or breaks awkwardly across pages. This covers the print-CSS layer, not server-side PDF generation.
Inputs expected
- The HTML page (or component) to be printed
- The target page count / layout (e.g. single page, fixed two-page)
- Which elements must keep background colour or images in print
- Any header/footer that should repeat on every printed page
Guiding principles
object-fit: coveris unreliable in Chrome's print engine — crop with a wrapper instead. In print,object-fit: coveron an<img>is often ignored and the full image renders at natural size. Wrap the image in a<div>with a fixed height andoverflow: hidden, and let the container clip it — overflow clipping is handled by the layout engine and works consistently in print.- Match adjacent column heights with grid stretch, not pixel guessing. To make a photo column fill the height of the neighbouring text column, apply
align-items: stretchto the grid container in@media printandheight: 100%to the photo wrapper so it fills the stretched grid item. This removes all manual print-height tweaking. - A
position: fixedelement in@media printbecomes a running footer on every page.position: fixed; bottom: 0; left: 0; right: 0repeats at the bottom of every printed page (and prevents a footer overflowing onto a blank final page). Addpadding-bottomto the main content equal to the footer height so content never prints underneath it. - Force page breaks explicitly, and protect elements from splitting.
break-before: page(with the legacypage-break-before: always) on a section forces a clean break before it — the basis of reliable fixed-page layouts. Pair withbreak-inside: avoid(andpage-break-inside: avoid) on cards/entries so they don't split across pages. - Background colours, gradients, and dot patterns are stripped in print unless forced. Browsers drop backgrounds in print mode by default. Add
-webkit-print-color-adjust: exact; print-color-adjust: exactto any element whose background colour or image must appear in the PDF. - Always include both the modern and legacy break properties. Print CSS support is uneven across engines; write
break-inside/break-beforeand theirpage-break-*equivalents together so the layout holds in Chrome, Firefox, and Safari print.
Process
- Add a dedicated
@media printblock — do not rely on screen CSS for print; screen layout reflows unpredictably on paper. - Fix image cropping — replace
object-fitcropping with fixed-heightoverflow: hiddenwrappers. - Equalise columns — set
align-items: stretchon print grids andheight: 100%on the elements that must fill. - Set pagination — add
break-before: pagewhere pages must split andbreak-inside: avoidon atomic blocks. - Add running header/footer —
position: fixedin@media print, with matchingpaddingon the content. - Preserve colour — add
print-color-adjust: exactto elements whose backgrounds must survive. - Verify in the print dialog — Ctrl+P → Save as PDF, checking every page boundary, crop, and background.
Output format
- Print CSS block — the complete
@media printrules - Structural changes — any wrapper
<div>s added for cropping or column stretch - Pagination map — where breaks are forced and which blocks are kept intact
- Verification notes — confirmed page count, crops, footer repetition, and colour retention in the PDF
Quality checklist
- All print styling lives in a dedicated
@media printblock - Image cropping uses fixed-height
overflow: hiddenwrappers, notobject-fit - Equal-height columns use grid
align-items: stretch+height: 100% - Forced breaks use both
break-before: pageandpage-break-before: always - Atomic blocks use both
break-inside: avoidandpage-break-inside: avoid - Running footers use
position: fixedwith matching contentpadding-bottom - Colour-critical elements set
-webkit-print-color-adjust: exact; print-color-adjust: exact - Output verified in Ctrl+P → Save as PDF, every page checked
Avoid
- Relying on
object-fit: coverfor print image cropping — Chrome ignores it; use a clipping wrapper - Pixel-guessing column heights — use grid
align-items: stretchinstead - Using
position: fixedfor a footer without adding contentpadding-bottom— content prints underneath it - Writing only modern
break-*(or only legacypage-break-*) properties — include both for cross-browser print - Expecting background colours to print by default — they are stripped without
print-color-adjust: exact - Judging print output from the screen view — always verify in the actual print/PDF dialog
Example usage
"This HTML report needs to export as a clean two-page PDF via Ctrl+P. Right now the photo crops wrong, the coloured header prints white, the footer only shows on page one, and cards split across the page break. Give me the
@media printCSS to fix it."
Source: This skill is sourced from the Matrix Skills library. Learn more at the AI Agent Skills Library.
What ships with it: 3 files
4.3 KB alongside SKILL.md
- example-input.md1.1 KB
- example-output.md1.6 KB
- README.md1.7 KB
Gives 0 of the 12 instructions most pdf office docs skills give in ~1.4k tokens
Counted across 636 of the 690 authors here whose files we hold, read 2026-08-07
- extract text using pdfplumberin 89 of 636, across 23 files
- create PDFs using reportlabin 83 of 636, across 16 files
- read forms.md to fill out pdf formsin 80 of 636, across 13 files
- OCR scanned PDFs using pytesseractin 77 of 636, across 10 files
- merge or split PDFs using qpdfin 70 of 636, across 3 files
- use excel formulas instead of hardcoded calculated valuesin 68 of 636, across 13 files
- unpack edit xml and repack existing documentsin 63 of 636, across 8 files
- document sources for hardcoded valuesin 61 of 636, across 9 files
- write minimal python code without unnecessary commentsin 59 of 636, across 7 files
- run the recalculation script after adding or modifying formulasin 59 of 636, across 7 files
- fix all identified formula errors and recalculatein 58 of 636, across 6 files
- format years as text stringsin 57 of 636, across 5 files
Said here and by no other author read
- Use a dedicated @media print block for print styles
- Crop images using fixed-height overflow hidden wrappers
- Equalize columns using grid stretch
- Force page breaks with both modern and legacy properties
- Protect elements from splitting with break-inside avoid
- Add fixed positioned running footers with matching padding
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.