re_integrated html2print boilerplate from osp
This commit is contained in:
+1
-245
@@ -1,245 +1 @@
|
||||
@import "setup.scss";
|
||||
|
||||
/**
|
||||
* Computation
|
||||
*/
|
||||
|
||||
|
||||
/* EXTRA SPACE AROUND THE PAGE: BLEED + CROP */
|
||||
// TODO: find a more appropriate name
|
||||
$crop: $crop-size + $bleed;
|
||||
|
||||
/* GEOMETRY OF THE PAPER SHEET */
|
||||
$paper-width: $page-width + ( $crop * 2 );
|
||||
$paper-height: $page-height + ( $crop * 2 );
|
||||
|
||||
/* SIZE OF SPREAD */
|
||||
$spread: $page-width * 2;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* DEFINITION OF THE PAPER SHEET
|
||||
*/
|
||||
@page {
|
||||
size: $paper-width ($paper-height + 1);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* CANVAS
|
||||
*/
|
||||
|
||||
@media all {
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
.paper {
|
||||
width: $paper-width;
|
||||
height: $paper-height;
|
||||
box-sizing: border-box;
|
||||
|
||||
counter-increment: page-counter;
|
||||
|
||||
// To make sure that one paper sheet is not splitted into different pages in the PDF
|
||||
page-break-inside: avoid;
|
||||
page-break-after: always;
|
||||
overflow: hidden;
|
||||
|
||||
|
||||
}
|
||||
.page {
|
||||
width: $page-width;
|
||||
height: $page-height;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media print {
|
||||
html {
|
||||
width: $paper-width;
|
||||
}
|
||||
body {
|
||||
/* Allows printing of background colors */
|
||||
background-color: white;
|
||||
-webkit-print-color-adjust: exact;
|
||||
print-color-adjust: exact;
|
||||
/* Activate opentype features and kernings */
|
||||
-webkit-font-feature-settings: "liga", "dlig", "clig", "kern";
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Helpers
|
||||
*/
|
||||
|
||||
.page-break {
|
||||
/* Apply this class to an element to put it on a new region.
|
||||
* Hint:
|
||||
* You can also use an empty <div class="page-break"></div>
|
||||
* if you want to put manual page breaks without attaching it to an HTML element
|
||||
*/
|
||||
// -webkit-region-break-before: always;
|
||||
break-after: region;
|
||||
}
|
||||
|
||||
// section.level1, section.level2{
|
||||
// break-after: always;
|
||||
// }
|
||||
|
||||
/* __________________________________ LAYOUT __________________________________ */
|
||||
|
||||
.header,
|
||||
.body,
|
||||
.footer {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* __________________________________ HEADER __________________________________ */
|
||||
.header {
|
||||
top: 0;
|
||||
margin: 0;
|
||||
padding-top: $page-margin-top;
|
||||
width: 100%;
|
||||
height: $header-height;
|
||||
text-align: left;
|
||||
|
||||
&:after {
|
||||
content: $header-text;
|
||||
}
|
||||
}
|
||||
/* __________________________________ MAIN SECTION __________________________________ */
|
||||
.body {
|
||||
height: $page-height - $header-height - $footer-height;
|
||||
width: $page-width;
|
||||
margin-bottom: $page-margin-bottom;
|
||||
padding-top: $page-margin-top + $header-height;
|
||||
padding-bottom: $page-margin-bottom;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.recipient {
|
||||
-webkit-flow-from: contentFlow;
|
||||
flow-from: contentFlow;
|
||||
}
|
||||
|
||||
#content > * {
|
||||
-webkit-flow-into: contentFlow;
|
||||
flow-into: contentFlow contents;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* __________________________________ FOOTER __________________________________ */
|
||||
.footer {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: $footer-height;
|
||||
text-align: center;
|
||||
|
||||
&:after {
|
||||
content: $footer-text;
|
||||
}
|
||||
}
|
||||
|
||||
/* mirrored pages */
|
||||
.paper {
|
||||
|
||||
&:nth-child(odd) .header {
|
||||
@if $page-layout == 2 {text-align: right;}
|
||||
}
|
||||
|
||||
&:nth-child(odd) .header,
|
||||
&:nth-child(odd) .body,
|
||||
&:nth-child(odd) .footer {
|
||||
padding-left: $page-margin-inside;
|
||||
padding-right: $page-margin-outside;
|
||||
}
|
||||
&:nth-child(even) .header,
|
||||
&:nth-child(even) .body,
|
||||
&:nth-child(even) .footer {
|
||||
padding-left: $page-margin-outside;
|
||||
padding-right: $page-margin-inside;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
/* Avoids headings to be cut or to be orphans.
|
||||
* But it doesn't seem to work
|
||||
* if the element after has a page-break-inside avoid. It tries its best! */
|
||||
-webkit-region-break-inside: avoid;
|
||||
-webkit-region-break-after: avoid;
|
||||
break-inside: avoid;
|
||||
break-after: avoid;
|
||||
}
|
||||
|
||||
/* AN EXAMPLE TO AVOID PAGE BREAK INSIDE,
|
||||
* HERE NO PARAGRAPH WILL BE CUT,
|
||||
* BUT YOU MIGHT WANT TO DEACTIVATE THIS */
|
||||
p {
|
||||
/*-webkit-region-break-inside: avoid;*/
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* DEBUG STYLES
|
||||
*/
|
||||
.debug .paper {
|
||||
outline: 1px solid blue;
|
||||
}
|
||||
.debug .page {
|
||||
outline: 1px solid green;
|
||||
}
|
||||
.debug .header {
|
||||
outline: 1px solid pink;
|
||||
}
|
||||
.debug .body {
|
||||
outline: 1px solid purple;
|
||||
}
|
||||
.debug .footer {
|
||||
outline: 1px solid pink;
|
||||
}
|
||||
|
||||
.debug .region-break {
|
||||
border-top: 1px dashed blue;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.debug img {
|
||||
outline: 1px solid blue;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Style
|
||||
*/
|
||||
|
||||
@media screen{
|
||||
body{
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
.paper{
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 10px 7px #AAA;
|
||||
margin: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@import "custom.scss";
|
||||
// your styles here
|
||||
|
||||
Reference in New Issue
Block a user