找回密码
 立即注册

QQ登录

只需一步,快速开始

boy

注册会员

16

主题

35

帖子

135

积分

注册会员

积分
135
boy
注册会员   /  发表于:2022-6-2 13:46  /   查看:1312  /  回复:7
1金币
image.png16556090.png
原来通过getCellRect(),方法得到了红色区域的坐标位置,当导出为pdf后,红色区域的坐标,还是getCellRect()方法得到的坐标吗?
image.png962778320.png

最佳答案

查看完整内容

导出为pdf后,sheet左上角还需要加上对应的左边距,上边距,页眉的宽度或高度 这些设置的单位都是1/100英寸(在api中),在下图的设计器界面中是按照英寸为单位的 电脑默认的DPI是96,也就是说每英寸长度内的像素点数是96 比如按照上面的左侧边距设置的1英寸,那么左侧边距就是96 PDF中如果是需要像素坐标,或者英寸坐标的话,都可以进行换算成 统一的像素或者英寸单位,然后再相加得到实际坐标

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-6-2 13:46:34
来自 4#
导出为pdf后,sheet左上角还需要加上对应的左边距,上边距,页眉的宽度或高度

这些设置的单位都是1/100英寸(在api中),在下图的设计器界面中是按照英寸为单位的

image.png427474975.png

电脑默认的DPI是96,也就是说每英寸长度内的像素点数是96
比如按照上面的左侧边距设置的1英寸,那么左侧边距就是96

PDF中如果是需要像素坐标,或者英寸坐标的话,都可以进行换算成 统一的像素或者英寸单位,然后再相加得到实际坐标
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-6-2 14:59:24
2#
这个得到的rect是单位为像素,基于sheet左上角(包括行列头)的一个位置

你说的当导出为pdf后,红色区域的坐标,如果是指PDF中红色位置的坐标的话,是不一样的
回复 使用道具 举报
boy
注册会员   /  发表于:2022-6-2 16:18:57
3#
本帖最后由 boy 于 2022-6-2 16:20 编辑
Richard.Ma 发表于 2022-6-2 14:59
这个得到的rect是单位为像素,基于sheet左上角(包括行列头)的一个位置

你说的当导出为pdf后,红色区域 ...

那有什么方法可以得到pdf里面位置坐标吗,因为需求是要在导出的pdf的文本域位置盖章,所以需要知道文本域的坐标才可以
回复 使用道具 举报
boy
注册会员   /  发表于:2022-6-2 17:21:01
5#
Richard.Ma 发表于 2022-6-2 17:07
导出为pdf后,sheet左上角还需要加上对应的左边距,上边距,页眉的宽度或高度

这些设置的单位都是1/100 ...

调用的 spread.savePDF() 方法,这里没有设置页面边距操作
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-6-2 17:29:17
6#
导出pdf和打印一样,都是通过printInfo来设置边距的

https://demo.grapecity.com.cn/sp ... intInfo.html#margin
  1. printInfo.margin({top:0, bottom:0, left:0, right:0, header:0, footer:0});
复制代码
回复 使用道具 举报
boy
注册会员   /  发表于:2022-6-2 18:16:42
7#
Richard.Ma 发表于 2022-6-2 17:29
导出pdf和打印一样,都是通过printInfo来设置边距的

https://demo.grapecity.com.cn/spreadjs/help/api/ ...

getCellRect()方法,获取的的坐标,单元格左上角到Sheet左上角的坐标,如果页面有滚动则这个坐标是变化的,这样的化是没有办法获得导出pdf后文本域的坐标 image.png41148985.png
红点之间的坐标,当内容滚动后,坐标会发生变化

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-6-2 18:36:12
8#
是的,这个目前其实没有什么办法,不仅是你提到的这个问题,
如果需要获取的单元格,当前不在可视区域的话,获取到的是undefined,也是没法获取真实值的

你的需求是“导出pdf后,计算pdf中某个单元格的坐标” ,那么其实可能还是从 pdf中来想办法直接获取才是正确的办法,spreadjs肯定不会提供接口来获取导出后的pdf中的一些位置信息


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部