web打印工具,为页面添加页眉页脚页码,正确将

print-kit

web打印工具,为页面添加页眉页脚页码,正确将页面分页。 思路是将某dom内的所有节点重新按照符合A4纸大小的页面排版。

USAGE 引入package

import PrintLayouter from 'print-kit';

为groupContainer内的dom指定角色(这将决定layout重排时如何对待dom)

执行排版函数:

PrintLayouter.layout( 'div[data-paged="group-container"]', '#layoutedContainer', true, () => { window.print(); }, );

layout函数参数解释

/** * * @param {指定print-kit要重排的dom容器data-paged="group-container"} groupContainer * @param {指定重排后的dom放置在哪里} layoutedContainer * @param {重排后的回调} callback * @param {打印方向} mode 横向-horizontal 纵向-vertical */ layout(groupContainer, layoutedContainer, isPagedByGroup, callback) { // ... } dom角色解释 group 组,一次打印可以只有一组页面,也可以有多组页面。每组页面具有独立的页眉页脚分页等部件。 page-header 页眉,需放在group中指定 page-footer 页脚,需放在group中指定 mini-block 不会被分页拆分的最小单位块,当前页面空间不容纳mini-block时,会整体放在下一页 mini-block-tail 最小单位块的尾巴,总会与最小单位块同页展示 group-header 组信息块的头部,需放在group中指定。不同于page-header,group-header是组的标题 page-table 页面中的表格,会对表格元素做特殊处理,如跨页的表格拆分等问题 page-table-tail 表格的尾巴,总会与表格同页展示,若page-table的tr正好占满了某一页导致page-table-tail必须分页时,此时page-table-tail会将table的最后几行tr放在第二页显示 分页页码添加方式

在打印页面时,希望能够标注出页码信息,结合实际业务场景,页码的标注方式有两类,一类是按照总体纸张数量标注页码,另一类是按照group来分开标注页码,(或者两者同时都需标注)

在group节点内,书写具有规定属性的节点即可:

<div data-page-info style={{ textAlign: 'right', position: 'relative', bottom: 0, right: 0, }} > 当前组页码: <span data-page-group-cur /> / <span data-page-group-total /> <span className="mr20" /> 总页码: <span data-page-cur /> / <span data-page-total /> </div>

打印工具会自动将页码信息显示在对应的位置。

由于内部排版计算高度的问题,需设置指定样式

@page { size: auto; /* auto is the initial value / margin: 5mm; / this affects the margin in the printer settings */ } 打印区域的宽度设置为: width: 200mm;

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。