Solución:
En caso de que use pdf.js, puede hacer referencia a un ejemplo en github (‘… / examples / node / getinfo.js’) con el siguiente código que imprime el número de páginas en un archivo pdf.
const pdfjsLib = require('pdfjs-dist');
...
pdfjsLib.getDocument(pdfPath).then(function (doc) {
var numPages = doc.numPages;
console.log('# Document Loaded');
console.log('Number of Pages: ' + numPages);
}
y una solución javascript pura:
var input = document.getElementById("files");
var reader = new FileReader();
reader.readAsBinaryString(input.files[0]);
reader.onloadend = function(){
var count = reader.result.match(//Type[s]*/Page[^s]/g).length;
console.log('Number of Pages:',count );
}
Como se ha dicho en las otras respuestas, algo como pdf.js es lo que está buscando. He echado un vistazo a la API y sí incluye una función numPages () para devolver el número total de páginas. También parece contar páginas para mí cuando veo la página de demostración de Mozilla.
Depende de si puede utilizar navegadores modernos y tecnología experimental para su solución. pdf.js es muy impresionante, pero aún es experimental según la página de github.
Si puede contar las páginas en el servidor después de la carga, entonces debería mirar pdftools o similar.
Algo como pdftools --countpages
es lo que estas buscando