在节点上加载带有PDF-LIB的PDF文档可以"No PDF header found"



我正在加载一个PDF文档,我必须使用PDF库进行动态修改。

const { PDFDocument } = require('pdf-lib');

PDF文件是用Acrobat及其名为dental_inurance.PDF.构建的

我尝试以以下方式加载文件:

const pdfDoc = await PDFDocument.load("/documents/cards/dental_insurance.pdf")
const pdfDoc = await PDFDocument.load("C:/Website/test/desk_routes/documents/cards/dental_insurance.pdf")
const pdfDoc = await PDFDocument.load("./documents/cards/dental_insurance.pdf")
const pdfDoc = await PDFDocument.load("../documents/cards/dental_insurance.pdf")

但是,无论我如何设置文件所在的路径,我都会收到以下错误:

(节点:15196(未处理的PromiseRetention警告:错误:无法分析PDF文档(行:4列:2偏移=27(:找不到PDF标题

我查看了PDF库文档,它们只声明了以下内容来加载文件:

const pdfDoc = await PDFDocument.load("...")

我不相信问题出在PDF文件上,因为即使我输入了一个不存在的文件,我也会收到同样的错误:

const pdfDoc = await PDFDocument.load("blablabla.pdf")

谢谢。

根据文档,PDFDocument.load()接受一个字符串,该字符串是pdf文件的内容,而不是名称。

const fs = require('fs/promises'); //note fs/promises, not fs here
const pdfData = await fs.readFile('./documents/cards/dental_insurance.pdf');
const pdfDoc = await PDFDocument.load(pdfData);

SOLVED-节点版本中需要readFileSync18

import fs from "fs";

const buffer = await fs.readFileSync("./documents/cards/dental_insurance.pdf");
const document = await PDFDocument.load(buffer);

最新更新