Web print pdf
Produce reliable print and PDF output from an HTML page with print-specific CSS — pagination, image cropping, equal columns, running footers, and colourFrom its SKILL.md
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 file declares
Copied from the file, not written here
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