print-friendly
Responsive CSS for screen and paper. Optimized for printing and PDF conversion. Demo
한국어
Installation
CDN
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/print-friendly@0.4/index.css" />
</head>
Node.js
npm i print-friendly
import 'print-friendly';
import 'print-friendly/index.css';
Usage
[!IMPORTANT]
Inform users to set the (Paper size) and (Margins: Default) in the print dialog.
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style>
@page {
size: A4 portrait;
margin: 0.5in;
}
@media screen {
.page-container {
--background-color: lightgray;
--page-color: white;
--page-width: 21cm;
--page-height: 29.7cm;
--page-padding: 0.25in;
--page-gap-y: 0.5in;
}
}
@media screen and (min-width: 21cm) {
.page-container {
--page-min-height: var(--page-height);
--page-padding: 0.5in;
--page-gap-y: 0.75in;
}
}
.page > *:first-child {
margin-top: 0;
}
</style>
</head>
<body>
<div class="page-container">
<header>
</header>
<div class="page"></div>
<div class="page">
</div>
</div>
</body>
Additional Styling
Remove left margin on lists.
ol,
ul {
padding-inline-start: 16px;
}
Add image watermark to pages.
Printed even when the Background graphics
is unchecked.
@media print {
.page {
position: relative;
}
.page::after {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(0.5);
content: url('/path-to-image');
opacity: 0.1;
}
}
Reduce base font-size in print.
@media print {
.page {
font-size: 12px;
}
}