如何获取签章定位信息

news2024/11/24 5:53:29

在合同系统中,经常需要在合同文档的特定位置放置签名/印章图片。在合同拟稿过程中,放置签名/印章图片只是为了获取一个精确的定位信息,在合同定稿阶段才根据拟稿阶段得到的位置信息,去插入真正的签名/印章。那么如何在合同系统中高效、准确地进行该过程呢?答案是使用zOffice SDK 来实现。

zOffice简介

zOffice提供云端Office能力,包括word、excel、ppt三类办公文档的在线协同编辑,通过专业级的文档能力,高效的协作体验,内容级的安全管控,丰富的集成开发接口,来赋能企业的业务系统,帮助业务系统实现文档在线预览和编辑,文档操作过程全部线上进行,完成在线办公的场景闭环。

zOffice链接:https://www.filez.com/zoffice

集成介绍文档: https://lenovocloud.zbox.filez.com/l/a0OsO0

解决方案

如图所示,我们想要在合同拟稿阶段获取审批印章在文档中的位置,用于在合同定稿阶段插入真正的审批印章。

使用 zOffice SDK 提供的 api,我们可以按照如下步骤进行

  1. 调用 Shapes.addPicture api插入签名/印章图片;
  2. 手动调整印章图片到合适的位置;
  3. 使用 Shape.getPosition api 获取签名/印章位置信息(pageNo,left,bottom);
  4. 使用 Shape.delete api 删除签名/印章;
  5. 使用 ActiveDocument.save api 保存文档

示例代码如下:

<div id="control-container">

  <div>

    <input type="text" id="docUrl">

    <button id="mountBtn">挂载文档</button>

  </div>

  <div>

    <input type="file" accept="image/*" name="插入签章" id="picture" />

  </div>

  <div>

    <button id="position">获取签章位置</button>

  </div>

</div>

<div id="doc-container"></div>

<script src="./sdk.js"></script>

<script>

  let wordApp;

  let pictureObj;

  let picturePosition;

  const urlInput = document.getElementById('docUrl');

  const mountBtn = document.getElementById('mountBtn');

  const picInput = document.getElementById('picture');

  const posBtn = document.getElementById('position');

  mountBtn.addEventListener('click', async () => {

    const docUrl = document.getElementById('docUrl').value;

    if (docUrl) {

      wordApp = await ZOfficeSDK.mount(docUrl, '#doc-container');

    }

  })

  picInput.addEventListener('change', async (e) => {

    const file = e.target.files[0];

    pictureObj = await wordApp.ActiveDocument.Shapes.addPicture(file, 100, 500);

    // 插入图片后,可以手动将图片拖动到合适位置

  })

 

  posBtn.addEventListener('click', async () => {

    picturePosition = await pictureObj.getPosition();

    console.log('图片位置:', picturePosition);

  })

</script>

效果如下:

在拿到签名/印章位置信息之后,在文档定稿阶段,放置真正的签名/印章有两种场景:

  1. 对于非合同类文档,如果不要具备具备法律效力的电子签名能力,可以调用 zOffice SDK 提供的 Shapes.addPicture api 将签名/印章放置到Word文档中(前面获取到的位置),再导出成PDF文件。
  2. 对于合同类文档,可以项通过zOffice接口将Word文档导出成PDF文件,再通过电子签名系统在获取到的签名/印章位置插入签名/印章图片。

总结

使用 zOffice SDK 提供的 api,您可以非常方便地在 Word 中进行图片操作。

zOffice SDK不仅有丰富的接口,还提供了页面定制、事件监听等高级用法。您可以在论坛中搜索zOffice获取更多内容。相信利用zOffice,您可以更高效地生成各类业务文档,从而极大的提高您的办公自动化效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/648654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于OpenMV的疲劳驾驶检测系统的设计

一、前言 借助平台将毕业设计记录下来&#xff0c;方便以后查看以及与各位大佬朋友们交流学习。如有问题可以私信哦。 本文主要从两个方面介绍毕业设计&#xff1a;硬件&#xff0c;软件&#xff08;算法&#xff09;。以及对最后的实验结果进行分析。感兴趣的朋友们可以评论区…

创新案例|专注在线 协作平台 设计产品中国首家PLG独角兽企业蓝湖如何实现98%的头部企业渗透率

蓝湖起步于2015年&#xff0c;是一款服务于产品经理、设计师、工程师的产品设计研发在线协作工具&#xff0c; 2021年10月&#xff0c;蓝湖宣布完成C轮融资&#xff0c;融资额高达10亿人民币&#xff0c;称为中国2B市场中首家采用PLG发展的独角兽企业&#xff0c;并实现了从100…

conda虚拟环境列表错误module ‘attr‘ has no attribute ‘s‘的解决方法

列出虚拟环境列表命令&#xff1a;conda info -e 或者conda env listconda info -e 这个可以正常显示&#xff0c;conda env list却报错了&#xff0c;以前是没有问题的&#xff0c;因为这个命令我更习惯使用&#xff0c;所以这个小问题必须解决掉&#xff0c;或许其他读者可能…

undetected_chromedriver解决网页被检测

一、问题分析 selenium打开浏览器模仿人工操作是诸多爬虫工作者最万能的网页数据获取方式&#xff0c;但是在做自动化爬虫时&#xff0c;经常被检测到是selenium驱动。比如前段时间selenium打开维普高级搜索时得到的页面是空白页&#xff0c;懂车帝对selenium反爬也很厉害。 二…

【React】setState原理,SCU,不可变对象,Ref,受控组件,高阶组件,封装轮播图组件

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 setState原理setState异步更新 SCU不可变对象RefRef获取DOMRef获取组件 非受控组件受控组件高阶…

word目录怎么自动生成,3个步骤轻松搞定!

案例&#xff1a;我在做策划案的时候&#xff0c;需要制作目录。我觉得自己手动制作目录很困难&#xff0c;通过word的可以自动生成目录&#xff0c;但是我不知道具体的操作方法。有没有小伙伴可以分享一下&#xff1f; 在制作任务书、书写论文的时候&#xff0c;经常需要添加…

vue+java+springboot企业办公人事oa办公管理系统2142g

本企业OA管理系统有管理员和用户。管理员功能有个人中心&#xff0c;用户管理&#xff0c;公告信息管理&#xff0c;客户关系管理&#xff0c;通讯录管理&#xff0c;日程安排管理&#xff0c;车辆信息管理&#xff0c;文件信息管理&#xff0c;工作日志管理&#xff0c;上班考…

0基础学习VR全景平台篇第42篇:编辑器底部菜单-分组管理

大家好&#xff0c;欢迎观看蛙色VR官方系列——后台使用课程&#xff01; 本期为大家带来蛙色VR平台&#xff0c;底部菜单—分组管理功能操作。 功能位置示意 一、本功能将用在哪里&#xff1f; 分组管理&#xff0c;指观看者可点击不同分组&#xff0c;查看不同类型全景内容…

learn C++ NO.9——string(2)

引言&#xff1a; 现在是北京时间的2023年6月15日早上的10点14分。时间过得飞快&#xff0c;现在已经大一的最后一个星期了。明天也是大一最后一次课&#xff0c;线下的实训课。线下实训内容为c语言二级的内容&#xff0c;对我来说跟学校的课效率太低下了&#xff0c;我还是比…

初识网络之再看udp协议

目录 一、端口号 1. 五元组 2. 端口号范围划分 3. 一些知名端口号 4. 进程与端口号 5. 两个常用网络工具 5.1 netstat 5.2 pidof 二、UDP协议 1. udp协议格式 2. udp报文解包 3. udp报文分用 4. udp的特点 5. 缓冲区 5.1 tcp缓冲区 5.2 udp缓冲区 6. 一些常见…

函数重载异常的常见原因

函数重载异常的常见原因 使用重载函数时&#xff0c;如果数据类型不匹配&#xff0c;C尝试使用类型转换与形参进行匹配&#xff0c;如果转换后有多个函数能匹配上&#xff0c;编译将报错。引用可以作为函数重载的条件&#xff0c;但是&#xff0c;调用重载函数的时候&#xff0…

Linux:端口

端口是设备与外界进行通讯的出入口&#xff0c;端口可以分为物理端口和虚拟端口 物理端口&#xff1a;又叫接口&#xff0c;是可见的端口&#xff0c;比如HDMI端口、USB接口虚拟端口&#xff1a;是指计算机内部的端口&#xff0c;用来操作系统和外部进行交互使用 通过IP地址只能…

6.python高频函数-处理缺失值isnull()、fillna()、dropna()

前言 如何判断pandas.DataFrame、Series是否包含缺失值NaN以及如何处理缺失值NaN。 Part.1 isnull() 函数 使用 isnull()、isna() 确定每个元素的缺失值 如果值为 NaN&#xff0c;则值为 True&#xff0c;如果不是&#xff0c;则值为 False。 读取数据集 panel_data pd.r…

从C语言到C++_19(容器适配器+stack和queue模拟实现+优先级队列priority_queue)

目录 1. 容器适配器 1.1 什么是适配器 1.2 STL标准库中stack和queue的底层结构 2. stack和queue的模拟实现 2.1 stack模拟实现 2.2 queue的模拟实现 3. deque的介绍(了解) 3.1 deque的实现原理 3.2 deque的缺陷和使用场景 4. 优先级队列 priority_queue 4.1 priorit…

编码规范、Git分支整理

代码命名规范 包命名规范 采用反域名命名规则&#xff0c;全部使用小写字母。一级包名为com&#xff0c;二级包名kl&#xff08;为公司名称&#xff0c;可以简写&#xff09;&#xff0c;三级包名pos&#xff08;根据应用进行命名&#xff09;&#xff0c;四级包名activity或…

芳禾数据CTO李明:数据分类分级与治理驱动下的应用革命丨数据猿专访

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 我们进入数字化时代&#xff0c;数据已经变得比任何时候都更加关键。每天&#xff0c;我们都在生成、处理和存储海量的数据&#xff0c;这些数据在企业决策、市场研究、产品开发等方面扮演着重要的角色。然而&#xff0c;数…

Qt编写精美输入法(历时十年迭代/可换肤/支持Qt4/5/6/win/linux/mac/嵌入式等)

一、前言 大概是从2012年就开始研究用Qt写输入法&#xff0c;因为项目需要&#xff0c;嵌入式板子上&#xff0c;没有对应的输入法&#xff0c;当初使用过很多NVR&#xff0c;里面也是鼠标按下弹出输入法面板进行输入&#xff0c;可以切换数字和字母及中文&#xff0c;于是借鉴…

5大趋势与10大应用场景!未来的智能工厂要这么建...

在经济下行压力、人口红利消失、消费结构升级、疫情冲击等多种因素推动下&#xff0c;制造企业加快转型步伐&#xff0c;工厂正向高效化、智能化、绿色化方向跃迁升级&#xff0c;不断涌现出技术创新、应用领先、成效显著的智能工厂。 近日&#xff0c;中国信息通信研究院发布…

常见的台账在线、可视化数据看板工具

目前已知和常见的一些在线可视化数据看板工具&#xff1a; Trello&#xff1a;Trello 是一种流行且直观的看板工具&#xff0c;可让创建看板、列表和卡片来管理任务和项目。它提供了一个可视化界面&#xff0c;可以在其中跨工作流程的不同阶段拖放卡片。还可以添加截止日期、标…

cesium调用celestrak接口获取卫星数据

celestrak是一家免费开源提供卫星空间数据的非营利性组织 接口调用 import axios from "axios";const BASE_URL "https://celestrak.org";function getTleDataFromExternal(path "") {let uri ${BASE_URL}/NORAD/elements/gp.php?GROUP${…