用css列印html

下半身要幸福發表於2018-06-05

需求背景

最近接到一個需求,就是列印整個html頁面,而且要保證列印出的每一張A4紙的內容是規律的,不能出現截斷的這種現象出現(前一頁的內容跑到後一頁去了)。

用css列印html

解決辦法

利用 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等格式。

參考

github.com/cognitom/pa…