
PDF 文件是一种无处不在的文档共享格式,但有时也会很笨重,导致加载时间变慢和存储需求增加。优化 PDF 文件对于确保无缝的用户体验至关重要,尤其是在网络应用程序中。因此,在本文中,我们将探讨如何使用 JavaScript 优化 PDF 文件。
优化 PDF 的 JavaScript 库
用 JavaScript 优化 PDF
在 PDF 优化中使用 Web Worker
用 JavaScript 优化 PDF 资源
优化 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 来使优化过程更流畅,并防止用户界面线程被阻塞。下面的脚本展示了如何编写一个 Web Worker,使用我们在上一节中编写的 PDF 优化函数。
/*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]);
};免费获取 JavaScript PDF 库
获取免费的临时许可证,无限制地使用我们的 JavaScript PDF 优化库。
结论
优化 PDF 文件对于确保网络应用程序的最佳性能和用户体验至关重要。Aspose.PDF for JavaScript 提供了一套强大的工具来有效优化 PDF 文档。在本文中,我们为您提供了一种使用 JavaScript 优化 PDF 文件的简便方法。通过使用这种 PDF 优化方法,您可以显著改善网络应用程序中的整体文档管理。
在文档中进一步了解我们的 JavaScript PDF 库。如果您有任何疑问,请与我们交流。
渝公网安备50010702505508