需求背景
最近接到一個需求,就是列印整個html頁面,而且要保證列印出的每一張A4紙的內容是規律的,不能出現截斷的這種現象出現(前一頁的內容跑到後一頁去了)。
解決辦法
利用 paper css 這個樣式表,並做一些簡單的配置就可以完成此類需求
paper-css是一個用純css的方式來完成列印相關任務的庫,裡面並不包含js邏輯。
使用方法
以A4紙為例。
首先在head標籤裡引入樣式庫
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/paper-css/0.3.0/paper.css">
複製程式碼
然後在style標籤中加入如下這句
<style>@page { size: A4 }</style>
複製程式碼
再為body元素新增值為A4的class
<body class="A4">
複製程式碼
最後再為每一頁的包裹元素上,例如div或者section上新增值為“sheet”的class
<section class="sheet">
複製程式碼
這樣編寫完之後,每一個class為sheet的section在列印時就是單獨的一頁。你可以在section裡裝載任何你需要的標籤元素
其它
paper-css不僅提供了A4紙這一種規格,同時還提供了A3,A5,PDF等格式。