Проверьте, является ли тип файла двоичных данных PDF или нет? - PullRequest
0 голосов
/ 06 марта 2019

У меня есть файл PDF или любой другой файл.Когда я читаю содержимое этого файла в Node.js, он дает мне двоичные данные.Как я могу определить, является ли тип файла двоичных данных PDF или нет в Node.js?

1 Ответ

0 голосов
/ 06 марта 2019

Вы можете использовать библиотеку разбора PDF, такую ​​как pdf-parse, чтобы проверить, является ли файл, буфер и т. Д. Допустимым 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);
...