web打印时,各种页面样式设置

article/2025/9/14 4:10:54

最近碰到这个问题,我需要将网页打印成PDF文件。Chrome可直接将网页保存(打印)为PDF(无需安装Adobe),但式样跟网页上显示的截然不同。我测试了一下用法,了解了其中的一些原理和解决方法,总结如下。

Chrome保存为PDF的界面上只有很少几个选项:

 

这几个选项都浅显易懂。但需要注意的是,这里并没有让选「纸张大小」。Chrome在保存为PDF文件时,默认纸张大小是A4。若布局为纵向,显示大小为210mm×297mm;若布局为横向,显示大小为297mm×210mm。

这时候需提到一个DPI(Dot Per Inch)的指标。Windows下的网页打印的默认DPI为96dpi。按照1英寸=25.41mm换算,A4纸张可实际显示的像素宽度为794px×1123px,即打印网页的宽度为794px。

实际打印还会有页边距,如果页边距为5mm(窄边距),网页内容最大宽度约750px,若页边距为19mm(默认边距),网页内最大元素分辨率约650px。

基于此,很多网页在打印时会变形,因为打印时内容容器的宽度只有750px或者650px,但现在的网页内容大多都是基于至少1000px以上宽度设计的,这时候浮动容器会错位、超过宽度的图片和表格会显示不完全。

解决办法有两个:

其一,锁定网页的宽度。

当网页宽度被指定时,页面将被自动缩放。这可以保证PDF文件和浏览器上显示的效果一模一样。这时候打印出的PDF文件仍是A4大小。

其二,指定打印纸张大小。

@media print {
@page {
size: 210mm 297mm; /* or size: 794px 1123px; */
size: 297mm 420mm; /* or size: 1123px 1588px; */
}
}

@page size有很多种用法,详细介绍见相关文档。通过指定不同的size,可以将文件打印成不同的纸张大小。这个效果和上面指定锁定网页宽度略有不同。

原文地址:http://zhiqiang.org/blog/it/print-width-in-chrome.html


http://chatgpt.dhexx.cn/article/ETpQlQKh.shtml

相关文章

WEB免费打印控件推荐

在WEB系统中,打印的确是个烦人的问题。 要么自己开发打印控件,如果项目时间紧,肯定来不及。 要么购买成熟的打印控件,如果是大项目可以考虑,但如果项目只有几K到1、2W之间,这就麻烦了。 前段时间有机会接…

Web打印的实现方法

目前,在做B/S结构程序开发的时候,最棘手和最令人头疼的问题之一就是Web打印。往往打印出来的效果和自己预期的效果相差甚远,那么怎样才能打印出自己想要的效果呢?本文阐述的方法将解决这一问题,从而使得Web打印变得简单…

简单实用的web打印方案-网页精准打印

在当前这个互联网时代,大部分企业都搭建了自已的平台,通过平台联系客户,与粉丝互动,展示自己的产品。PC网站、APP、手机站、这些平台是企业互联网生态系统的重要基础。在公司平台化、系统化的今天,工作中出现web打印的…

JPrint web打印编辑器及web在线打印,JS打印编辑器

效果图 背景: 电子商务的发展火了一大批网商,每日近2000W的订单需要处理,相应的每天有2000W的订单需要打印。在淘宝卖家服务市场里有很多快递单发货单打印工具,他们使用的是阿里提供的菜鸟打印(active)组件…

前端web打印

前端打印 一、Vue打印插件 第一种方法:通过npm 安装插件 1,安装 npm install vue-print-nb --save 2,引入 安装好以后在main.js文件中引入 import Print from vue-print-nbVue.use(Print); //注册   3,现在就可以使用了 &…

Web Print打印服务

Web Print打印服务 题目一、安装打印服务二、配置相关的打印机三.配置证书并添加到打印机里1.RouterSrv2.IspSrv提示:若需要单独全套笔记可私信我咨询 题目 Web Print 添加一台虚拟打印机,名称为“CS-Print”,发布到AD域。 客户端们都能够通过访问“https://print.worldski…

JS web打印

11.1 Web打印 Web打印是一种常用的打印方式,其使用方法简单、方便、快捷,在浏览网页的同时就可以实现打印的功能。 实例291 调用IE自身的打印功能实现打印 实例说明 通过JavaScript调用IE自身的打印功能实现打印,这种方法比较简单&#xff…

web打印的最佳方案

web打印的最佳方案 web打印的痛点新的解决方案方案web页面实现源代码,源码打印伺服器demo及原理 web打印的痛点 winform打印的方案比较多,实现也比较容易,而且效果也非常炫;但现在越来越多的系统是web系统,甚至是移动…

前端网页打印window.print()

前言 print作为浏览已经比较成熟的技术可以经常被用来打印页面的部分内容,我们可以在MDN上查看到相关的简单介绍。 一、print()方法 print() 方法用于打印当前窗口的内容。调用 print() 方法会产生一个打印预览弹框,让用户可以设置打印请求。最简单的打…

web打印的几种方案

轉自:http://elf8848.iteye.com/blog/626790 -------------------------------------------一 基于Web的打印方案比较分析--------------------------------   基于web的套打,难度在于要将浏览器中呈现的html,精确地打印到票据中&#xf…

HttpPrinter实现web打印功能

HttpPrinter实现web打印功能 WEB套打可选方案不多,理想的更少,利用免费控件HttpPrinterJavaScript实现精确套打,算是较为经典的选择。这种方案其实比较简单,利用一个htm文件就可以实现模板设计过程,几乎是“空手套”式…

web打印实现几种方法

在工作中出现web打印的情况是非常多的,其实这也是一个比较烦人的问题,这篇博客整理一下关于Web打印的一些方法或者方式。 1. window.print() 这个方法是用来打印网页的,页面上的其他的元素也会被打印处理,在打印的时候页眉页脚是…

Web打印

布鲁斯李 Web打印 随着10i新版本的发布,在10i的iserver中,内置了一个web打印服务。是指将您在 Web 应用中制作的 Web 内容输出为可打印的文档。那么如何使用该服务,请继续往下看: 执行一次成功的web打印任务,我们需要…

实现WEB打印的几种方法

当前WEB应用开发非常流行,主要原因是WEB应用客户端的规则很简单,容易学习,容易维护,容易发布,降低了开发难度。但是,WEB应用的打印一直以来却是一个难题,特别是在应用中完成标签打印&#xff08…

web打印三种实现方式

web打印的方式可分为三种: 直接调用浏览器打印通过javascript插件调用浏览器打印通过第三方程序直接调用打印机 一、直接调用浏览器打印 通过在javascript代码中调用window.print()函数实现,浏览器会自动获取当前页面内容,并打开浏览器的打…

html纵向广告滚动条,网页右侧的漂浮广告代码,随滚动条滚动

HTML代码(即需要漂浮的广告): js代码:前提是必须要引入jquery文件 $(function(){ $(window).scroll(function(){ var scrollTop document.body.scrollTop || document.documentElement.scrollTop || 0; $(".christmas_ad").stop(); var scrol…

php浮动广告,JavaScript实现漂浮广告代码的实例总结

我们在打开网页的时候,我们会发现不管是什么网页都会有很多漂浮的广告,有很多人都会在想,这样的效果是怎么实现的呢?今天我们就带大家详细介绍下JavaScript实现漂浮广告代码的实例总结! 第一种 漂浮广告 不符合W3C Jav…

html左侧浮动广告代码,如何制作浮动广告 JavaScript制作浮动广告代码

如果有一定的JavaScript基础,制作浮动广告还是比较容易的。直接上代码了:无标题文档 *{ margin:0; padding:0; } #csdn { width:800px; margin:0 auto; } #ad { position:absolute; right:0px; top:30px; z-index:1; } #cl { position:absolute; right:0…

php 漂浮广告代码,JavaScript实现带缓冲效果的随屏滚动漂浮广告代码

本文实例讲述了JavaScript实现带缓冲效果的随屏滚动漂浮广告代码。分享给大家供大家参考,具体如下: 这里演示了始终随屏滚动的JavaScript代码,在国内的应用泛滥成灾了,特别是一些喜欢漂浮广告的站长,常把本代码用作了漂…

html左侧浮动广告代码,纯js网页浮动广告代码

网上一般的网页浮动广告代码都是基于jquery的,受jiquery版本及浏览器限制,非常容易出现不兼容的情况,本站分享一段纯js网页浮动广告代码,简单兼容。 html代码: javascript代码: window.οnlοadfunction(){…