当前位置: 首页 > article >正文

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

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

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

@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 原生代码中修改页边距

 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。打印的每一页上都不会显示底部。


http://www.kler.cn/a/414957.html

相关文章:

  • 16 go语言(golang) - 并发编程select和workerpool
  • Android音频框架总结
  • 智能产品综合开发 - 智能家居(智能语音机器人)
  • Java中使用FFmpeg拉取RTSP流
  • VMware ubuntu创建共享文件夹与Windows互传文件
  • 28.UE5实现对话系统
  • 【C51】单片机与LED数码管的动态显示接口案例分析
  • ctfshow -web -118-124
  • node + Redis + svg-captcha 实现验证码
  • 大模型实操六、基于华为盘古大模型的基础文本处理(文本摘要、情感分析、关键词提取)
  • 使用经典的Java,还是拥抱新兴的Rust?
  • chapter05-Shell编程之免交互笔记
  • 【MySQL】MySQL中的函数之JSON_ARRAY_INSERT
  • 网络原理(一)—— http
  • Spring Web MVC(详解中)
  • 链表内指定区间反转
  • 如何使用 python 中 pandas 进行数据分析?
  • 学习笔记:黑马程序员JavaWeb开发教程(2024.11.29)
  • Git仓库迁移到远程仓库(源码、分支、提交)
  • CVE-2022-24124
  • OGRE 3D----3. OGRE绘制自定义模型
  • Centos 使用宝塔安装mysql详细步骤
  • 【第十一课】Rust并发编程(二)
  • Linux(ubuntu)系统的一些基本操作和命令(持续更新)
  • 平安科技大数据面试题及参考答案
  • React前端面试题详解(一)