Как получить количество страниц a.PDF загружен пользователем?

У меня есть ввод файла, и перед "загрузкой" мне нужно рассчитать количество страниц этого .pdf в JAVASCRIPT (например. На jQuery...)

4 ответов


вы might быть в состоянии сделать что-то с помощью в формате PDF.js, но это потребует некоторых экспериментов.


Если вы используете pdf.js вы можете ссылаться на пример на github ('.../ examples/node / getinfo.js') со следующим кодом, который печатает количество страниц в 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);
}

и чистое решение javascript:

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 );
}

Как было указано в других ответах, что-то вроде pdf.JS-это то, что вы ищете. Я взглянул на API, и он включает функцию numPages() для возврата общего количества страниц. Кажется, что он также считает страницы для меня при просмотре демо-страница от Mozilla.

Это зависит от того, можете ли вы использовать современные браузеры и экспериментальные технологии для вашего решения. документ pdf.js очень впечатляет, но он все еще экспериментальный согласно страница github .

Если вы можете считать страницы на сервере после загрузки, то вы должны посмотреть на pdftools или аналогичные.

что-то вроде pdftools --countpages Это то, что вы ищете