最近碰到这个问题,我需要将网页打印成 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 ,可以将文件打印成不同的纸张大小。这个效果和上面指定锁定网页宽度略有不同。

Q. E. D.

chrome 打印布局_Chrome 网页打印中的宽度控制相关推荐

  1. chrome 打印布局_Chrome打印网页中的宽度控制

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

  2. 浏览器打印,Chrome网页打印中的宽度控制

    Chrome可直接将网页保存(打印)为PDF(无需安装Adobe) Chrome在保存为PDF文件时,默认纸张大小是A4.若布局为纵向,显示大小为210mm×297mm:若布局为横向,显示大小为297 ...

  3. html手机响应式布局,手机网页设计中的响应式布局

    随着各种特性和智能手机浏览器的发展,网页能够根据设备显示变得很重要.我们不用再根据桌面浏览器窗口尺寸建立网站,然后让它们在更小的移动浏览器上渲染.现在,我们可以让元素大小和布局针对设备作出改变. 在C ...

  4. chrome 打印布局_在打印预览模式下使用Chrome的Element Inspector?

    慕容大雪花 Chrome v52 +:打开开发人员工具(Windows:F12或Ctrl+ Shift+ I,Mac:Cmd+ Opt+ I)单击自定义并控制DevTools汉堡包菜单按钮,然后选择更 ...

  5. html打印在一页面布局,html – CSS打印布局 – 单页打印

    我被卡住了,SO档案没有帮助我.也许我在错误的地方看.这是一个简短的故事: >我有一个看法,我需要打印在一个完整的页面.我不能有第二页,我需要它在页面上尽可能大. >解决方案必须具有合理的 ...

  6. c语言全局变量控制打印线宽的方法,CAD中如何自定义控制图形的打印线宽?

    1.我们先运行迅捷CAD编辑器软件.打来一张我们需要操作的CAD图纸. 2.点 击菜单栏里的"格式"-"图层管理"选项,这时候会直接弹出"资源管理器- ...

  7. android打印服务apk,hp打印服务插件安卓下载

    HP Print Service插件是一款很实用的打印机插件.APK在特定的安卓设备中更新HP Print插件.此APK本身不提供任何打印功能: 您将需要HP提供的其他组件,才能使用此打印机进行打印. ...

  8. ASP动态网页开发中的WEB打印代码大全

    这篇文章主要介绍了如何使用ASP控制Web的各种打印效果,它能够控制纵打.横打和页面边距等. 1.控制"纵打". "横打"和"页面的边距". ...

  9. 网页打印中,A4纸对应的像素值的设定和换算

    WEB打印时,页面中都是使用像素来控制,而我们所知道的纸张大小,例A4,A5,B1,B2,都是以厘米为单位的,那么在网页中对应的像素值应该是多少呢?(^_^ 广告: 星烛crm系统 http://ww ...

  10. a4纸在html的像素,A4纸网页打印中对应像素的设定跟换算

    A4纸网页打印中对应像素的设定和换算 最近开发项目时遇到了网页打印的问题,这是问题之二,打印宽度设置 在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch)指标. 经过我 ...

最新文章

  1. 如何通过.reg文件来修改注册表键和子键以及键值
  2. 利用MOG2背景模型提取运动目标的OpenCV代码
  3. new file https 找不到路径_Python3用pathlib模块替代os.path进行文件路径的操作
  4. 2013_chengdu_onsite
  5. hdu2709 Sumsets 递推
  6. python字符串反转方法_Python程序使用堆栈和反转方法反转字符串
  7. 同步异步 阻塞非阻塞
  8. MYSQL中取当前周/月/季/年的第一天与最后一天
  9. CCF NOI1003 猜数游戏
  10. 控制层SpringMVC和Struts2的区别
  11. 凤凰系统中禁用触摸屏
  12. 悉尼大学计算机专业本科2019,2019悉尼大学申请条件
  13. python背单词游戏,python背单词小程序
  14. 如何获取微信公众号的关注链接?
  15. 极简创意编程:第7课——制作人工智能花盆
  16. vue3.0+ts+element-plus多页签应用模板:项目搭建
  17. 【HTML+CSS之小米商城页面图】
  18. 用VS2005打开方案出现“此安装不支持该项目类型
  19. 女神找我帮忙--图片转成手绘,该不该答应?
  20. 惠普台式电脑引导不了系统_hp台式机进不去系统怎么办

热门文章

  1. JavaScript调用pc和手机摄像头
  2. android流光字体实现,CSS3自定义动画实现流光文字特效
  3. 停车场车牌识别摄像机,传统提成行业颠覆者
  4. 高德离线地图vue-amap的api文档(1):创建地图,撒点等等
  5. iphone通过iTunes12.7怎么设置铃声
  6. 2020 春节集五福最详细收集攻略
  7. The Windows account sa does not exist and cannot be provisioned as a SQL Server system administrator
  8. vs2019新手怎么解决命名空间“”中不存在类型或命名空间名“”(是否缺少程序集引用?)问题全解
  9. Java程序员怎么规划五年职业生涯
  10. 使用 Nginx 反向代理域名