|
本帖最后由 hbghlyj 于 2022-2-24 12:24 编辑 在Chrome的打印对话窗中,页面尺寸只有预设的几种选项,而且分页会导致一些元素的分离,比如公式的一半在前一页,另一半在后一页的这种情况.
解决办法:打开控制台,在文件系统中新建一个css样式表(我发现,在这里书写的css规则会实时地起作用,比如写一个*{display:none}然后立马就看到所有元素消失了).写入以下css规则:
@page {
size: 297mm 210mm; /* landscape */
/* you can also specify margins here: */
margin: 25mm;
margin-right: 45mm; /* for compatibility with both A4 and Letter */
}
}
然后再打印,就发现,选择页面尺寸的选项消失了,Chrome会遵守css中规定的尺寸来打印.
为了打印为单页pdf(防止公式被切开),我们需要把所有元素打印到一页上(如果网页很长就是一个很长的页),那么可以用document.body.scrollHeight 获取(包括视窗外的区域)页面总高度,用document.body.scrollWidth 获取宽度.
最后得到的代码为:- document.head.innerHTML+="<style>@page{margin:0;size:"+document.body.scrollWidth+"px "+document.body.scrollHeight+"px}</style>"
复制代码 参考资料:
stackoverflow.com/questions/15603491/how-to-make-html-pages-prin ... ent-size-from-chrome
developer.mozilla.org/en-US/docs/Web/CSS/@page/size |
|