Aspose.PDF功能演示:在 JavaScript 中优化 PDF 文件

PDF 文件是一种普遍存在的文档共享格式,但它们有时可能会很大,导致加载时间变慢并增加存储要求。优化 PDF 文件对于确保无缝的用户体验至关重要,尤其是在 Web 应用程序中。因此,在这篇博文中,我们将探讨如何使用 JavaScript 优化 PDF 文件。

Aspose.PDF 是一款高级PDF处理API,可以在跨平台应用程序中轻松生成,修改,转换,呈现,保护和打印文档。无需使用Adobe Acrobat。此外,API提供压缩选项,表创建和处理,图形和图像功能,广泛的超链接功能,图章和水印任务,扩展的安全控件和自定义字体处理。

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

在 JavaScript 中将 PDF 转换为 Excel

Aspose.pdf 最新下载(qun:666790229)icon-default.png?t=N7T8https://www.evget.com/product/4118/download

用于优化 PDF 的 JavaScript 库

对于 JavaScript 应用程序中的 PDF 优化,我们将使用Aspose.PDF for JavaScript。它是一个功能强大的库,允许开发人员使用 JavaScript 处理、操作和优化 PDF 文件。因此,让我们首先安装该库。

在 JavaScript 中优化 PDF

在深入研究 PDF 优化过程之前,让我们先了解一下为什么优化 PDF 文件至关重要:

  • 更快的加载时间:优化的 PDF 加载速度更快,通过减少等待时间来增强用户体验。
  • 带宽效率:较小的文件大小可减少带宽消耗,从而更轻松地共享和下载 PDF。
  • 存储空间:优化后的PDF占用更少的存储空间,这在处理大量文档时尤为重要。

现在让我们按照以下步骤编写脚本来优化 PDF 文件。

  • 首先,选择需要优化的PDF文件。
  • 然后,创建一个FileReader对象来读取文件。
  • 之后,调用AsposePdfOptimize函数来优化PDF。该函数的参数包括生成的 PDF 文件的名称。
  • AsposePdfOptimize函数返回一个 JSON 对象,使用json.errorCode,您可以检查 PDF 文件是否优化成功。如果错误代码为 0,则 PDF 已优化,没有任何问题。否则,会发生错误,您可以从json.errorText读取该错误。
  • 最后,调用DownloadFile函数生成优化后的PDF文件的链接。

以下代码片段展示了如何在 JavaScript 中优化 PDF 文件。

var ffileOptimize = function (e) {
const file_reader = new FileReader();
file_reader.onload = (event) => {/*optimize a PDF-file and save the "ResultOptimize.pdf"*/
const json = AsposePdfOptimize(event.target.result, e.target.files[0].name, "ResultOptimize.pdf");
if (json.errorCode == 0) document.getElementById('output').textContent = json.fileNameResult;
else document.getElementById('output').textContent = json.errorText;/*make a link to download the result file*/
DownloadFile(json.fileNameResult, "application/pdf");
};
file_reader.readAsArrayBuffer(e.target.files[0]);
};
在 PDF 优化中使用 Web Worker

在上一节中,我们只是加载了一个 PDF,对其进行了优化,然后下载了生成的 PDF。现在,让我们使用 Web Worker 来使优化过程更加顺畅并防止 UI 线程被阻塞。以下脚本展示了如何编写一个使用我们在上一节中编写的 PDF 优化功能的 Web Worker。

/*Create Web Worker*/
const AsposePDFWebWorker = new Worker("AsposePDFforJS.js");
AsposePDFWebWorker.onerror = evt => console.log(`Error from Web Worker: ${evt.message}`);
AsposePDFWebWorker.onmessage = evt => document.getElementById('output').textContent =
(evt.data == 'ready') ? 'loaded!' :
(evt.data.json.errorCode == 0) ?
`Result:\n${DownloadFile(evt.data.json.fileNameResult, "application/pdf", evt.data.params[0])}` :
`Error: ${evt.data.json.errorText}`;/*Event handler*/
const ffileOptimize = e => {
const file_reader = new FileReader();
file_reader.onload = event => {/*Optimize a PDF-file and save the "ResultOptimize.pdf" - Ask Web Worker*/
AsposePDFWebWorker.postMessage(
{ "operation": 'AsposePdfOptimize', "params": [event.target.result, e.target.files[0].name, "ResultOptimize.pdf"] },
[event.target.result]
);
};
file_reader.readAsArrayBuffer(e.target.files[0]);
};/*Make a link to download the result file*/
const DownloadFile = (filename, mime, content) => {
mime = mime || "application/octet-stream";
var link = document.createElement("a");
link.href = URL.createObjectURL(new Blob([content], {type: mime}));
link.download = filename;
link.innerHTML = "Click here to download the file " + filename;
document.body.appendChild(link);
document.body.appendChild(document.createElement("br"));
return filename;
}
在 JavaScript 中优化 PDF 资源

优化 PDF 文件的另一种方法是删除未使用的资源并将公共资源连接到单个对象中。为了优化PDF资源,Aspose.PDF提供了AsposePdfOptimizeResource函数。以下代码片段演示了如何在 JavaScript 中优化 PDF 资源。

var ffilePdfOptimizeResource = function (e) {
const file_reader = new FileReader();
file_reader.onload = (event) => {/*Optimize resources a PDF-file and save the "ResultPdfOptimizeResource.pdf"*/
const json = AsposePdfOptimizeResource(event.target.result, e.target.files[0].name, "ResultPdfOptimizeResource.pdf");
if (json.errorCode == 0) document.getElementById('output').textContent = json.fileNameResult;
else document.getElementById('output').textContent = json.errorText;/*Make a link to download the result file*/
DownloadFile(json.fileNameResult, "application/pdf");
};
file_reader.readAsArrayBuffer(e.target.files[0]);
};

结论

优化 PDF 文件对于确保 Web 应用程序的最佳性能和用户体验至关重要。Aspose.PDF for JavaScript 提供了一套强大的工具来有效优化 PDF 文档。在这篇博文中,我们为您提供了一种使用 JavaScript 优化 PDF 文件的易于实现的方法。通过使用这种 PDF 优化方法,您可以显着改善 Web 应用程序中的整体文档管理。

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

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

相关文章

NCV4266ST50T3G线性稳压器芯片中文资料规格书PDF数据手册引脚图参数图片价格

产品概述: NCV4266 是一款集成了 150 mA 输出电流的低漏稳压器系列,可用于严酷汽车环境。它包括了较宽的运行温度范围和输出电压范围。该器件提供 3.3 V、5.0 V 固定电压版本,以及可调电压版本,输出电压准确度为 2%。它具有较高的…

IDEA 下载依赖包源码报错 Cannot download sources Sources not found for:XXX

最近在做一个功能的时候想看一个库的源码,结果源码下不下来,报Cannot download sources Sources not found for:XXX,网上搜了半天,也找不到靠谱的结论 后来想了下,应该是镜像那边出了问题,把镜像一删,源码…

HTML静态网页成品作业(HTML+CSS)——非遗徽州木雕网页(6个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有6个页面。 二、作品演示 三、代…

Linux nginx 域名申请证书后无法使用(无法访问此网站)阿里云域名

首先我们一步排除 1、域名备案是否成功? 网站备案_ICP备案_备案迁移_备案-阿里云 2、域名是否解析(我就是错在这里) 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 3、是否申请证书成功? 4、nginx是否支持…

【云原生 • Kubernetes】认识 k8s、k8s 架构、核心实战

文章目录 Kubernetes基础概念1. 是什么2. 架构2.1 工作方式2.2 组件架构 3. k8s组件创建集群步骤一 基础环境步骤二 安装kubelet、kubeadm、kubectl步骤三 主节点使用kubeadm引导集群步骤四 副节点加入主节点步骤五 部署dashboard Kubernetes核心实战1. 资源创建方式2. Namespa…

Beamer模板——基于LaTeX制作学术PPT

Beamer模板——基于LaTeX制作学术PPT 介绍Beamer的基本使用安装和编译用于学术汇报的模板项目代码模板效果图 Beamer的高级特性动态效果分栏布局定理环境 介绍 在学术领域,演示文稿是展示和讨论研究成果的重要方式。传统的PowerPoint虽然方便,但在处理复…

python爬虫之爬虫入门

import requests rrequests.get("http://www.baidu.com") print(r.status_code)#用status_code来确定页面状态是否正常 type(r) r.headers requests库入门 status_code可以用来检验网页状态是否正常type(r)返回r的类型r.headers返回该页面头部信 运行结果如下&#x…

SQLiteC/C++接口详细介绍sqlite3_stmt类(二)

返回目录:SQLite—免费开源数据库系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类简介 下一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(三) sqlite3_reset() 功能:重置一个准备好执行的SQL语…

跨越时空的纽带:探索Facebook如何连接人与人

引言 Facebook作为全球最大的社交媒体平台之一,已经成为了人们日常生活中不可或缺的一部分。它不仅仅是一个社交网络,更是连接人与人、人与世界的纽带。在这篇文章中,我们将深入探讨Facebook如何跨越时空,连接人与人之间的关系&a…

Idea 不能创建JDK1.8的spring boot项目

由于https://start.springboot.io/ 不支持JDK1.8,那么我们需要换idea的springboot创建源,需要换成 https://start.aliyun.com,这也是网上大部分教程说的,但是我这边会报这样的错误: Initialization failed for https:…

Linux/Monitored

Enumeration nmap 用 nmap 扫描了常见的端口,发现对外开放了 22,80,389,443,5667 端口,端口详细信息如下 ┌──(kali㉿kali)-[~/vegetable/HTB/Monitored] └─$ nmap -sC -sV -p 22,80,389,443,5667 10.10.11.248 Starting Nmap 7.93 ( https://nm…

《论文阅读》带边界调整的联合约束学习用于情感原因对提取 ACL 2023

《论文阅读》带边界调整的联合约束学习用于情感原因对提取 前言简介Clause EncoderJoint Constrained LearningBoundary Adjusting损失函数前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《Joint Cons…

音频和视频标签

音频用audio标签 controls表示控制栏 loop循环播放音频 autoplay自动播放&#xff08;浏览器基于隐私一般不支持&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

UDP客户端与服务端执行bind和connect

udp服务器使用connect()函数指明套接字的目的地址/端口号&#xff0c;使服务器只接受特定主机的请求&#xff1b; udp服务器调用了bind()函数为服务器套接字绑定本地地址/端口&#xff0c;使得客户端知道发数据的目的地址/端口&#xff1b; udp客户端调用connect()函数指明目的…

ubuntu10.04 apache2.2开启tls1.2的支持,使现代的edge和firefox浏览器能正常访问https

最近发现自己ubuntu10.04服务器上的apache https无法通过win11上的edge和firefox浏览器访问&#xff0c;但xp下的ie6和ie8没有问题。 firefox的错误提示为“此网站可能不支持TLS 1.2协议,而这是Firefox支持的最低版本”。 经过检查发现&#xff1a; IE6访问https所需的版本是SS…

时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测

时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现BiTCN…

ASP .Net Core ILogger日志服务

&#x1f433;简介 ILogger日志服务是.NET平台中的一个内置服务&#xff0c;主要用于应用程序的日志记录。它提供了灵活的日志记录机制&#xff0c;允许开发者在应用程序中轻松地添加日志功能。以下是其主要特点和组件&#xff1a; ILogger接口&#xff1a;这是ILogger日志服…

【Vue】三、使用ElementUI实现图片上传

目录 一、前端代码实现 二、后端代码实现 三、调试效果实现 一、前端代码实现 废话不多说直接上代码 <el-form-item prop"image" label"上传图片" v-model"form.image"><el-upload:action"http://localhost:8…

【C语言】循环语句(语句使用建议)

文章目录 **while循环****while循环的实践****补充:if语句与while语句区别****for循环(使用频率最高)****for循环的实践****while循环和for循环的对比****Do-while循环****break和continue语句****循环的嵌套****goto语句(不常用)****循环语句的效率(来自于高质量的C/C编程书籍…

nRF Sniffer在wireshark下的环境搭建

一、准备 nRF Sinffer 安装包&#xff1a; 直接下载&#xff1a;https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/desktop-software/nrf-sniffer/sw/nrf_sniffer_for_bluetooth_le_4.1.1.zip 官网下载&#xff1a; nRF Sniffer for Bluetooth…