360浏览器+Adobe Acrobat DC实现在线预览PDF大样校对

news2024/11/15 5:38:57

甲方:实现方正PDF文字大样校对,校对后在360浏览器中新开一个页面在线预览PDF文字大样校对结果。

我方实现过程:

1.方案选择

  • 方案零:使用浏览器自带的PDF阅览器,经测试360极速模型,谷歌等软件能预览但是标记的PDF内容提示乱码,经测试IE浏览器和Microsoft Edge和360兼容可以;但甲方爸爸说他们习惯使用360,放弃方案该方案;

原因:360极速模型,谷歌使用谷歌内核阅览,IE浏览器和Microsoft Edge和360兼容使用IE内核,它自带adobe,不使用360兼容是因为该模式下网页内容乱码,至于为什么,我猜是当初设计是没考虑。

该过程穿插着联系方正售后,方正售后技术人员说他们还未实现过PDF校对大样的在线预览,可以尝试下载本预览。突然感觉又是乙方了!!!

一起研究了一下,他们实现标记大样批注的时候使用了某某某格式字体,当前浏览器使用谷歌内核不能解析该字体。

  • 方案一:使用PDF.js,能预览但是标记的PDF内容提示乱码,放弃该方案。
  • 方案二:结果wps在线或office在线,成本较高,放弃该方案
  • 方案三:经过调研发现甲方电脑都有安装adobe的PDF阅览工具,因此设计了360浏览器中默认使用adobe的PDF阅览

2.方案三实现过程:

  • 1.安装readerdc_cn_ka_cra_mdr_install.exe

  • 2.下载360浏览器,https://browser.360.cn/se/
    在这里插入图片描述

  • 3.以上安装成功后,找点360浏览器设置-》高级设置-》网页内容高级设置-》插件-》停用单个插件-》确定页面中是否有“Adobe Acrobat”-》同时停用“Chromium PDF Viewer”-》关闭浏览器,再重新打开。
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 4.可以阅览了,测试了好几个系统,可以实现该功能。
    在这里插入图片描述

3.后续问题

  • 1.实施现场发现win7系统该过程操作没问题,但win10系统就遇到 pdf阅览只能显示整个页面高度的1/5,如下图所示。

为什么会出现该问题,我也没想清楚。
在这里插入图片描述

  • 2.处理过程:
    将页面height设置100vh,铺满整个页面说明是没设置默认高度。 排查了一下当初的代码实现:
window.open(pdfUrl); //在新的窗口中打开链接

在这里插入图片描述
改进思路:

  var pdfUrl = "your_pdf_url"; // 替换为您的PDF文件地址

  var newWindow = window.open(); //在新的窗口中打开链接

  newWindow.document.write("<object type='application/pdf' data='" + pdfUrl + "' width='100%' height='800px'></object>"); //在新窗口中插入PDF对象,并将页面高度设置为800像素

  newWindow.onload = function() {
    newWindow.document.getElementsByTagName("object")[0].contentWindow.AdobeDC.ViewSDK.PDFViewer.setViewMode({
      zoom: "FitWidth" //将缩放比例设置为适合宽度
    });
  };

这段代码将在页面中单击该按钮时打开一个新窗口,并在其中加载指定的链接。在新窗口中,我们插入了一个元素,将其类型设置为application/pdf,并将其数据设置为PDF文件的URL地址。然后将其添加到新窗口中,并将页面高度设置为800像素。
最后,我们在新窗口的onload事件中调用AdobeDC.ViewSDK.PDFViewer.setViewMode()方法,将缩放比例设置为适合宽度。这将确保PDF文件在窗口中正确显示,并且不会有任何溢出或截断。

  • 3.结束

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

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

相关文章

【笔记】大模型,大资料

大模型&#xff0c;大资料&#xff0c;loss会降低&#xff0c;准确率会增加 1大模型 1.1模型的顿悟时刻 举了一个一知半解的例子 1.2 模型 chain of thought 模型足够大时才会有比较好的作用 calibration 检测模型对于答案的confidence 会出现 “u-shape” 2.大资料 文法…

系统复杂度之【高可用】

接着&#xff0c;我们聊聊复杂度的第二个要求高可用。 参考维基百科&#xff0c;先来看看高可用的定义。 系统无中断地执行其功能的能力&#xff0c;代表系统的可用性程度&#xff0c;是进行系统设计时的准则之一。 这个定义的关键在于“ 无中断”&#xff0c;但恰好难点也在“…

Java 并发编程面试题——Future

目录1.什么是 Future 模式&#xff1f;Java 中是如何实现的&#xff1f;2.Callable、Future 与 FutureTask 分别是什么&#xff1f;2.1.Callable 接口2.2.Future 接口2.3.FutureTask 类3.CompletableFuture 类有什么用&#xff1f;1.什么是 Future 模式&#xff1f;Java 中是如…

windows系统管理_Windows server 2016 组管理与授权

组账户的概述 在 windows 服务器中&#xff0c;当我们需要为多个用户设置相同的权限时&#xff0c;一个一个的逐一设置会比较 麻烦&#xff0c;这个时候我们就需要用到另一种模式&#xff0c;组账户&#xff0c;使用此账户来进行简化操作。 在以后的职场中&#xff0c;每家公司…

Flink 优化 (五) --------- Job 优化

目录一、使用 DataGen 造数据1. DataStream 的 DataGenerator2. SQL 的 DataGenerator二、算子指定 UUID三、链路延迟测量四、开启对象重用五、细粒度滑动窗口优化一、使用 DataGen 造数据 开发完 Flink 作业&#xff0c;压测的方式很简单&#xff0c;先在 kafka 中积压数据&a…

全景图像畸变校正

1.简介 理想的相机基本上是小孔成像的&#xff0c;在小孔成像模型中&#xff0c;如果焦距一定&#xff0c;那么图像传感器像素平面的面积直接决定了相机视场角的大小&#xff0c;超过这个视场角范围的物体不会被镜头获取到。因此基于透镜成像原理的相机&#xff0c;视场角无法…

JAVA解析XML时的内存消耗问题

问题出现 最近一个项目中&#xff0c;有个需求功能是从外部传入的XML读取数据&#xff0c;然后写入到数据库中。 写完之后&#xff0c;有在本地电脑上的Tomcat跑了一下&#xff0c;正常读取到XML中的数据&#xff0c;并整理好后&#xff0c;插入了数据库保存了。但是线上运行的…

C语言文件操作复习回顾(2)

TIPS 文件的顺序读写&#xff1a;fgetc, fputc, fputs&#xff08;一行字符串的输出\n注意一下&#xff09;, fgets&#xff08;一行字符串的输入\n三特性&#xff09;&#xff0c;fprintf&#xff08;格式化字符串的输出联想printf很简单&#xff09;&#xff0c;fscanf&…

pyspark 实验二,rdd编程

1.环境准备 start-all.sh启动Hadoop ./bin start-all.sh 启动spark 上传数据集 1.求该系总共多少学生 linessc.textFile("file:///home/data.txt") res lines.map(lambda x:x.split(",")).map(lambda x:x[0]) sumres.distinct() sum.cont() 2.求该系设置…

【MybatisPlus快速入门】—— 进阶入门

进阶篇 1.1 映射专题 Mybatis 框架之所以能够简化数据库操作&#xff0c;是因为他内部的映射机制&#xff0c;通过自动映射&#xff0c;进行数据的封装&#xff0c;我们只要符合映射规则&#xff0c;就可以快速高效的完成SQL操作的实现既然 MybatisPlus 是基于Mybatis 的增强…

程序员如何能提高自己的编程水平?

这些实用的小建议&#xff0c;能帮你迅速地提高编程水平&#xff1a; 不要做无意义的奋斗 拒绝喊口号和无意义的奋斗&#xff0c;包括但不限于&#xff1a; ①做了计划表却从未有执行的一天&#xff1b; ②每天都是最早来、最晚走&#xff0c;但是工作进度趋近于0&#xff1b…

ASP.NET Core MVC 从入门到精通之接化发(一)

随着技术的发展&#xff0c;ASP.NET Core MVC也推出了好长时间&#xff0c;经过不断的版本更新迭代&#xff0c;已经越来越完善&#xff0c;本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容&#xff0c;适用于初学者&#xff0c;在校毕业生&#xff0c…

PathCore:IAD文献解读

论文链接&#xff1a;[Towards Total Recall in Industrial Anomaly Detection]Towards Total Recall in Industrial Anomaly Detection &#xff1a;数据集&#xff0c; &#xff1a;标签 : 在ImageNet上预训练后的网络 第 张图 网络中第 层 1. Locall…

Sentinel学习笔记

Sentinel 官方文档&#xff1a; https://github.com/alibaba/Sentinel/wiki/%E4%B8%BB%E9%A1%B5 SpringCloud Alibaba&#xff1a; https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_sentinel 是什么…

丝滑的打包部署,一套带走~

以下文章来源于悟空聊架构 &#xff0c;作者悟空聊架构 本文主要内容如下&#xff1a; 目录 一、背景 Docker打包部署方案 项目背景&#xff1a;新项目的后端框架是刚起步&#xff0c;搭建的是一套微服务框架&#xff0c;基础服务有网关 Gateway&#xff0c; Nacos 注册中心…

为什么stm32gpio引脚的翻转速度最大只有18Mhz

(1). GPIO 引脚速度&#xff1a;GPIO_Speed_2MHz (10MHz, 50MHz) ; 又称输出驱动电路的响应速度&#xff1a;&#xff08;芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路&#xff0c;用户可以根据自己的需要选择合适的驱动电路&#xff0c;通过选择速度来选择…

史上最全测试开发工具视频教程详解(含自动化、性能、接口、抓包)

目录 一、UI自动化测试工具 1. uiautomator2 2. Appium 3. ATX-Test 4. Airtest 5. ATXServer2 6. STF 7. Appetizer 二、APP稳定性测试工具 8. UICrawler 9. Maxim 10. AppCrawler 三、APP性能测试工具 11. SoloPi 12. GT 四、抓包工具 13. AnyProxy …

pytorch安装教程(二)

一直用的pytorch1.2&#xff0c;有点老了&#xff0c;想换个新版本&#xff0c;换成了pytorch2.0. torch安装 安装过程最重要的就是cuda、cudnn的版本和pytorch对应。 因为要在GPU上跑代码。 删除老旧torch 我用的软件是anaconda&#xff0c;因为可以创建虚拟环境。 步骤&…

LAZADA将缩短履约时效,卖家发货倍感压力

Lazada的跨境卖家们&#xff0c;恐怕又要头疼了。 近日&#xff0c; Lazada官方宣布&#xff0c;为了提升消费者体验&#xff0c;平台将调整商家履约订单时效。从2023年5月4日起生成的订单履约时效将有所更新。 具体而言&#xff0c;内地、香港和Laz Go Global的履约节点为“点…

Qt Quick - MessageDialog 消息提示框

MessageDialog 使用总结一、概述二、使用1. 例子一2. 例子二三、常用属性一、概述 MessageDialog 最基本的用例是弹出警告框。它还允许用户根据启用的按钮以各种方式进行响应。对话框最初是不可见的。你需要首先按需设置属性&#xff0c;然后将visible设置为true或调用open()。…