iOS 系统中使用 webView 打印 html 的打印边距问题

需求是使用系统提供的打印功能将HTML代码打印出来

1、使用CSS @page 设置边距(iOS不生效)

objectivec 复制代码
@page {
  margin: 0;
  padding: 0;
  size: A6 portrait;
}

在 Android 中边距设置生效的,但是在 iOS 系统使用CSS @page规则是不生效的

当从 iOS 系统打印网页时,我试图删除或减少页边距,尝试过@page 指令的各种形式比如下面 MDN 所写的,但没有产生任何效果。
https://developer.mozilla.org/zh-CN/docs/Web/CSS/@page

2、在 iOS 原生代码中修改页边距

objectivec 复制代码
 UIViewPrintFormatter *formatter = [webView viewPrintFormatter];
 webView.hidden = true;
 formatter.perPageContentInsets = UIEdgeInsetsMake(20, 15, 0, 0);
 UIPrintPageRenderer *renderer = [[UIPrintPageRenderer alloc] init];
 renderer.headerHeight = 0;
 renderer.footerHeight = 0;
 [renderer addPrintFormatter:formatter startingAtPageAtIndex:0];
 printController.printPageRenderer = renderer;

formatter.perPageContentInsets = UIEdgeInsetsMake(20, 15, 0, 0);

这行代码设置每页内容的内边距(即打印内容与页面边缘之间的距离)。UIEdgeInsetsMake 方法的参数分别表示上、左、下、右的边距。如上,上边距为 20 点,左边距为 15 点,下边距为 0 点,右边距为 0 点。

renderer.headerHeight = 0;

设置打印页面的头部高度为 0。打印的每一页上都不会显示头部。

renderer.footerHeight = 0;

设置打印页面的底部高度为 0。打印的每一页上都不会显示底部。

相关推荐
奕鼎竜瑆2 小时前
Solid 前端响应式开发从零到精通
前端·人工智能
动恰客流统计3 小时前
景区客流统计怎么做?兼顾管控与运营的实施方案解析
大数据·前端·人工智能
派小心.3 小时前
A/B测试工具免费版够用吗?
前端·数据分析
前端snow4 小时前
ai agent --- redis 缓存
前端
duanshu_5 小时前
官网表单与下载异常怎么排查?五个环节定位故障
前端·自动化·flyweight
Zhou1411365 小时前
SpringBoot_03_Web开发
前端·spring boot·python
辻弋2015 小时前
【无标题】
大数据·服务器·前端·搜索引擎·开源软件
ii_best5 小时前
按键精灵手机端开发安卓版实战:手写一个可最小化、可拖动的「运行日志悬浮窗」(附完整 源码 + 踩坑记录)
android·ios·智能手机·自动化·ai编程·按键精灵
FluxArt6 小时前
GPT Image 2.5 中文提示词教程:Flux Art 可复用模板
前端·gpt·算法
搬砖的小码农_Sky7 小时前
AI Agent:Windows上Node.js安装后 npm -v报错
前端·npm·node.js·人机交互