ElasticPDF-新国产 PDF 编辑器开发框架(基于 pdf.js Web PDF批注开发,实现高亮多边形橡皮擦历史记录保存注释文字)

摘要: ElasticPDF 是一款新国产 PDF 编辑器开发框架,基于开源 pdf.js 的渲染框架,增加了批注功能,支持全离线运行,适用于公网及内网系统。代码包结构延续了 pdf.js-dist 简洁的风格,兼容所有主流浏览器,不仅可以部署于 Web 项目,也可以嵌入任意桌面端和移动端项目中。

关键词: Web PDF编辑器,pdf.js,PDF批注,内网可用,任意项目可用

1 技术优势

ElasticPDF 延续了 pdf.js-dist 的架构风格,全部使用朴素 Javascript 代码开发,简单来说 是在 pdf.js-dist 代码包中增加了几个 js 文件,无需任何在线依赖即可运行, 因而非常适合作为功能模块整合到其他项目中。

不仅可以部署于公网环境应用,独立、简洁的特点也让其拥有完全透明和可控的安全性,因而被选择部署于众多内网系统中。

经过多年的研发,即使是只依赖 HTML,CSS 和 Javascript 运行的产品,批注等功能的产品力也已接近世界一流的PDF编辑器(比如 Adobe Acrobat),具体为批注可以以标准格式写入pdf中,包括注释的任意语言的文字,之后可以再在其他编辑器中编辑。

另外还可以将 批注独立导出为 JSON 格式,便于入库和重载回显,在云端协同的系统中非常便利和经济,因为只需要一个在线原文档和保存数量级通常不到 1M 的批注文件,而不再需要把批注合并到文档中一起保存到后端数据库,可以节省很多流量、宽带和储存费用。

2 在线 Demo 地址

针对于不同项目的开发需求,目前有两个版本的产品可供选择(非免费) ,两者在授权方式和最终批注写入 PDF 的技术效果上有区别,具体以在线 Demo 网站的说明和运行效果为准。

① 批注合成版:https://demos.libertynlp.com/#/pdfjs-annotation

② 标准批注版:https://www.elasticpdf.com/demo
在这里插入图片描述

3 功能展示

除以下功能外,其他功能也在持续开发中,另外几乎所有功能都可以定制开发。

3.1 批注功能

① 文本高亮

无论是桌面端、平板端或者手机都可以精确选择文本,支持跨页高亮,高亮后内容可以修改颜色等属性。
在这里插入图片描述

② 下划线

与高亮功能类似,实现了多种设备文本的精确选择,批注生成后可以修改批注颜色、线条粗细等
在这里插入图片描述

③ 插入图片

支持以选取文件或者拖入的方式来插入图片,之后可以对图片的大小、位置、方位、不透明度等实现流畅的修改
在这里插入图片描述

④ 屏幕截图

绘制矩形框后可截取当前文档的部分内容,并可以修改矩形框位置后再次截图
在这里插入图片描述

⑤ 自由绘制

可以随意调整笔刷的大小、颜色和不透明度,然后在文档上自由的绘制,在设置不透明度较小时还可以用来高亮扫描件文本
在这里插入图片描述

⑥ 添加文本

可以以插入和拖入的方式来创建文本批注,支持所有语言,创建后可以拖动的方式修改字体形状、字体大小等
在这里插入图片描述

⑦ 多边形

支持创建箭头、直线、矩形、圆形(椭圆)、对勾和身份印章等多边形,生成后的批注支持颜色、大小、位置方位等的修改
在这里插入图片描述

⑧ 超链接

通过绘制矩形框或者选取文字后创建超链接对象,之后可以链接到 URL、页码、在线文档等
在这里插入图片描述

3.2 批注管理功能

① 橡皮擦
超强橡皮擦功能,可以局部擦除批注对象,擦除过程中轨迹可见,且擦除后的文本仍然可编辑
在这里插入图片描述

② 撤销 & 重做 批注
内撤销或者重做批注,包括批注的生成、修改等各类编辑以及删除等操作
在这里插入图片描述

③ 导出 & 导入 JSON 批注

支持将批注文档导出为 JSON 文件,之后再次加载 JSON 文件实现完美的回显,是多端同步的最佳方案
在这里插入图片描述

④ 批注连接线 & 双语

将右侧列表中的批注与页面的图形对象相连,每一页都单独控制;所有页面操作都支持中英文双语
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何利用Python爬虫获得1688按关键字搜索商品

在当今的数字化时代,数据已成为企业竞争的核心资源。对于电商行业来说,了解市场动态、分析竞争对手、获取商品信息是至关重要的。Python作为一种强大的编程语言,其丰富的库和框架使得数据爬取变得简单易行。本文将介绍如何使用Python爬虫技术…

自动驾驶控制算法-横向误差微分方程LQR前馈控制

本文是学习自动驾驶控制算法第六讲 前馈控制与航向误差以及前两节的学习笔记。 1 横向误差微分方程 以规划的轨迹作为自然坐标系,计算自车在轨迹上的投影点,进而计算误差: 如图所示,横向误差为 d d d,航向误差为 θ…

Chromium 中chrome.webRequest扩展接口定义c++

一、chrome.webRequest 注意:从 Manifest V3 开始,"webRequestBlocking"权限不再适用于大多数扩展程序。以"declarativeNetRequest"为例,它允许使用declarativeNetRequest API。除了"webRequestBlocking"之外…

如何实现圆形头像功能

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了Stack Widget,本章回中将介绍CircleAvatar这种Widget,闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 在上一回中我们使用了CircleAvatar Widget,之前也没有介绍过此Widget,因此有些看官希望对它做一些介绍…

移动网络(2,3,4,5G)设备TCP通讯调试方法

背景: 当设备是移动网络设备连接云平台的时候,如果服务器没有收到网络数据,移动物联设备发送不知道有没有有丢失数据的时候,需要一个抓取设备出来的数据和服务器下发的数据的方法。 1.服务器系统是很成熟的,一般是linu…

解析在OceanBase创建分区的常见问题|OceanBase 用户问题精粹

在《分区策略和管理分区计划的实践方案》这篇文章中,我们介绍了在ODC中制定分区策略及有效管理分区计划的经验。有不少用户在该帖下提出了使用中的问题,其中一个关于创建分区的限制条件的问题,也是很多用户遭遇的老问题。因此本文以其为切入&…

重温设计模式--命令模式

文章目录 命令模式的详细介绍C 代码示例C代码示例2 命令模式的详细介绍 定义与概念 命令模式属于行为型设计模式,它旨在将一个请求封装成一个对象,从而让你可以用不同的请求对客户端进行参数化,将请求的发送者和接收者解耦,并且能…

NavMeshAgent直接transform.position移动报错

对于NavMeshAgent组件,如果直接用transform.position移动位置会报错如下: xxx can only be called on an active agent that has been placed on a NavMesh。 需要使用如下方法进行移动位置,先不激活,移动完毕再激活。 using Sy…

272-1路万兆光纤SFP+和1路千兆网络 FMC子卡模块

一、概述 该板卡是基于kc705和ml605的fmc 10g万兆光纤扩展板设计,提供了1路万兆光纤SFP和1路千兆网络接口。可搭配我公司开发的FPGA载卡使用。载卡可参考:ID204 SFP(10 Gigabit Small Form Factor Pluggable)是一种可…

GitCode 光引计划投稿|JavaVision:引领全能视觉智能识别新纪元

在人工智能技术飞速发展的今天,计算机视觉作为AI领域的重要分支,正逐渐渗透到各行各业中。JavaVision,作为[光引计划]的一部分,致力于提供一个基于Java的全能视觉智能识别解决方案。同时它集成了MilvusPlus,旨在提供一…

如何在自己的云服务器上部署mysql

如何在自己的云服务器上部署mysql 前言: 我是用的是阿里云服务器,我的服务器上安装的系统是Ubuntu 20.04,一下内容都是居于此撰写。 前期准备工作 远程链接自己的云服务器,这里给大家推荐一个好用的软件:FinalShel…

华院计算参与项目再次被《新闻联播》报道

12月17日,央视《新闻联播》播出我国推进乡村振兴取得积极进展。其中,华院计算参与的江西省防止返贫监测帮扶大数据系统被报道,该系统实现了由原来的“人找人”向“数据找人”的转变,有效提升监测帮扶及时性和有效性,守…

UML图【重要】

文章目录 2.1 类图概述2.2 类图的作用2.3 类图表示法2.3.1 类的表示方式2.3.2 类与类之间关系的表示方式2.3.2.1 关联关系2.3.2.2 聚合关系2.3.2.3 组合关系2.3.2.4 依赖关系2.3.2.5 继承关系2.3.2.6 实现关系 统一建模语言(Unified Modeling Language,U…

【数据科学导论】第一二章·大数据与数据表示与存储

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀数据处理与分析_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言…

问题解决:发现Excel中的部分内容有问题。是否让我们尽量尝试恢复? 如果您信任此工作簿的源,请单击“是”。

在开发同步导出功能是遇到了如标题所示的问题,解决后遂记录下来供大家参考。 RestController public class XxxController {PostMapping("/export")public BaseResponse export(RequestBody PolicyErrorAnalysisExportReq exportReq, HttpServletRespons…

软件设计与体系结构

1.简要说明什么是软件体系结构,软件体系结构模型,为什么要建立软件体系结构模型? 答:软件体系结构指一个软件系统在高层次上的结构化组织方式,包括系统的组成部分和各个部分之间的关系,以及它们与环境之间的…

开发手札:CameraRTS精准性优化

虽然三维软件提供了基本的物体RTS操作,但是对于用户来说过于复杂。 这些操作方式需要用户理解什么是三维空间、XYZ坐标系、欧拉角等。但是用户视角下,就一个二维屏幕动来动去的鼠标光标。 之前写过一套RTM组件,RTM组件&#xff0…

高级的SQL查询技巧有哪些?

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于高级SQL查询技巧方面的相关内容&#xf…

helm的介绍和安装

1 helm概述 1.1 资源对象难以管理的问题 helm是k8s资源清单的管理工具,它就像Linux下的包管理器,比如centos的yum,ubuntu的apt helm:命令行工具,主要用于k8s的chart的创建,打包,发布和管理。…

专业的内外网数据交换方案 可解决安全、效率、便捷3大问题

内外网数据交换是很多企业和行业都会面临的场景,既然隔离了内外网,重中之重就是要确保数据的安全性,其次在数据流转交换过程中,不能太繁琐复杂,需要让用户快速、便捷的进行数据交换。首先我们来看看,在进行…