После некоторого быстрого Google-fu я узнал, что PDF-файлы хранят метаданные в XMP Format (XML).Таким образом, вы можете читать необработанные данные из метаданных с простым регулярным выражением.
Выберите PDF-файл на своем компьютере, чтобы увидеть демонстрацию:
document.getElementById('f').oninput = async function() {
var pdf = this.files[0];
var details = await pdfDetails(pdf);
console.log(details);
};
function pdfDetails(pdfBlob) {
return new Promise(done => {
var reader = new FileReader();
reader.onload = function() {
var raw = reader.result;
var Pages = raw.match(/\/Type[\s]*\/Page[^s]/g).length;
var regex = /<xmp.*?:(.*?)>(.*?)</g;
var meta = [{
Pages
}];
var matches = regex.exec(raw);
while (matches != null) {
matches.shift();
meta.push({
[matches.shift()]: matches.shift()
});
matches = regex.exec(raw);
}
done(meta);
};
reader.readAsBinaryString(pdfBlob);
});
}
<input type=file id=f accept=".pdf">