PDF 工具箱(PDF ToolKit,PDFTK)是一款功能强大、使用广泛的 PDF 处理工具。PDFTK 可以用来处理 PDF 的合并、分割、文本处理、打印、加密、解密等多种操作。NPM 上也有 pdftk-bin 这个 NPM 包,可以允许我们在前端应用中使用 PDFTK 工具箱。本文将介绍 pdftk-bin 的安装和使用方法。
pdftk-bin 简介
pdftk-bin 是一个基于 PDFTK 工具箱的 NPM 包,可以通过命令行或 Node.js 脚本调用 PDFTK 功能。使用 pdftk-bin 前,请先确认您已安装了 PDF 工具箱(PDFTK)。在安装 pdftk-bin 之前,我们需要确保操作系统环境中已经安装了并配置了 PDFTK 依赖。对于不同的操作系统,您需要参考以下说明:
- 对于 macOS 系统,您可以通过 [http://macappstore.org/pdftk/] 命令安装 DPFTK 工具箱。
- 对于 Windows 和 Linux 系统,您可以通过 [https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/] 下载 PDFTK 工具箱并手动安装。
pdftk-bin 安装
您可以通过以下命令在您的项目中安装 pdftk-bin:
npm install pdftk-bin
pdftk-bin 使用方法
pdftk-bin 包含四种操作方法,分别是 combine, burst, cat 和 fill_form。下面将介绍 pdftk-bin 的具体用法,以 combine 方法为例。
combine
combine 方法可以将多个 PDF 文档合并成一个文档。以下是 pdftk-bin 中 combine 方法调用的代码示例:
const { execSync } = require('child_process') const path = require('path') const bin = require('pdftk-bin').path // 合并文件 execSync(`${bin} ${path.join(__dirname, 'file1.pdf')} ${path.join(__dirname, 'file2.pdf')} cat output ${path.join(__dirname, 'merged.pdf')}`)
execSync
方法是 Node.js 的原生函数,用于同步执行命令行命令;bin
是 pdftk-bin 的可执行文件(包含在 pdftk-bin 中)路径;__dirname
是 Node.js 的全局变量,表示当前脚本所在目录的绝对路径;file1.pdf
,file2.pdf
和merged.pdf
分别是需要合并的文件和合并后生成的文件。
burst
burst 方法可以将 PDF 文档拆分成多个单页 PDF 文档。以下是 pdftk-bin 中 burst 方法调用的代码示例:
const { execSync } = require('child_process') const path = require('path') const bin = require('pdftk-bin').path // 拆分文件 execSync(`${bin} ${path.join(__dirname, 'file.pdf')} burst output ${path.join(__dirname, 'page_%02d.pdf')}`)
__dirname
是 Node.js 的全局变量,表示当前脚本所在目录的绝对路径;file.pdf
是需要拆分的 PDF 文档;page_%02d.pdf
是生成的单页 PDF 文档,%02d
表示按照 2 位数字编号,例如page_01.pdf
、page_02.pdf
等。
cat
cat 方法可以将 PDF 文档的页面顺序进行调整。以下是 pdftk-bin 中 cat 方法调用的代码示例:
const { execSync } = require('child_process') const path = require('path') const bin = require('pdftk-bin').path // 调整页面顺序 execSync(`${bin} ${path.join(__dirname, 'file.pdf')} cat 2 1 3-end output ${path.join(__dirname, 'new_file.pdf')}`)
__dirname
是 Node.js 的全局变量,表示当前脚本所在目录的绝对路径;file.pdf
是需要调整顺序的 PDF 文档;2 1 3-end
表示调整后页面的顺序:第二页、第一页、从第三页至文档末尾;new_file.pdf
是调整后生成的 PDF 文档。
fill_form
fill_form 方法可以将 PDF 表单填充,并生成新的表单。以下是 pdftk-bin 中 fill_form 方法调用的代码示例:
const { execSync } = require('child_process') const path = require('path') const bin = require('pdftk-bin').path // 填充 PDF 表单 execSync(`${bin} input.pdf fill_form data.txt output output.pdf flatten`)
input.pdf
是需要填充表单的 PDF 文档;data.txt
是表单数据文本文件,需要通过编码转换成 FDF 文件格式(可以使用 [https://www.freepdfconvert.com/txt-fdf] 进行转换);output.pdf
是生成的填充后的表单;flatten
参数表示生成的表单为不可编辑的 PDF。
结论
pdftk-bin 是一个功能强大、方便易用的 NPM 包,可以帮助前端开发者使用 PDFTK 工具箱,方便 PDF 文档的操作和处理。在使用 pdftk-bin 之前,请确保您已安装并配置好 PDFTK 工具箱,且了解 pdftk-bin 的操作方法。如需了解更多关于 pdftk-bin 的信息,请访问 [https://www.npmjs.com/package/pdftk-bin]。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600551e581e8991b448cf552