如何将缓冲区转换为pdf/docx


await newPage.setRequestInterception(true);
const xRequest = await new Promise(resolve => {
newPage.on('request', interceptedRequest => {
interceptedRequest.abort();     //stop intercepting requests
resolve(interceptedRequest);
});
});
const options = {
encoding: null,
method: xRequest._method,
uri: xRequest._url,
body: xRequest._postData,
headers: xRequest._headers
}

const cookies = await newPage.cookies();
options.headers.Cookie = cookies.map(ck => ck.name + '=' + ck.value).join(';');

const res = await request(options);

我正在使用puppeteer,并尝试下载一些pdf/docx,并获得res作为缓冲区。如何从缓冲区(res(中检查文件类型并将其转换为特定的文件类型。

如果你手中有缓冲区,你就不需要"转换";它例如,您可以将其写入一个文件,然后就可以使用资源管理器打开它。

fs.writeFile('filename.pdf', buffer);

此外,您的问题的解决方案已经存在:从nodejs中的缓冲区检测文件类型?在发布之前,请花点时间查找已有的堆栈溢出解决方案。

如果第一个字节是[0x25,0x50,0x44,0x46],则缓冲区包含pdf你可以简单地这样测试:

var isPdf = (buffer[0] == 0x25 && buffer[1] == 0x50 && buffer[2] == 0x44 && buffer[3] == 0x46);

最新更新