我有一个PDF文件或任何其他文件。当我在Node.js中读取文件内容时,它会提供二进制数据。如何在Node.js中确定二进制数据文件类型是否为PDF?
答案 0 :(得分:0)
您可以使用pdf-parse之类的PDF解析库来检查文件,缓冲区等是否为有效的PDF:
const rp = require("request-promise-native");
const pdf = require('pdf-parse');
const testUrl1 = "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf";
const testUrl2 = "https://en.wikipedia.org/wiki/Cat#/media/File:Cat_poster_1.jpg";
function getPDF(url) {
return rp({ uri: url, encoding: null});
}
function isPDF(buffer) {
return pdf(buffer).then(function(data) {
return { isPDF: true, info: data.info };
}, (err) => {
return { isPDF: false, info: null };
});
}
async function testPDFCheck(url) {
let pdfBuffer = await getPDF(url);
let result = await isPDF(pdfBuffer);
console.log(`Is PDF result: (${url}): `, result);
}
testPDFCheck(testUrl1);
testPDFCheck(testUrl2);
答案 1 :(得分:0)
选中此https://github.com/MaraniMatias/isPDF
const fs = require("fs");
const isPDF = require("is-pdf-valid");
const file = fs.readFileSync("./test.pdf")
console.log(isPDF(file));