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 );
}
6条答案
按热度按时间6rqinv9w1#
如果你使用pdf.js,你可以引用example on github('.../examples/node/getinfo.js'),下面的代码可以打印pdf文件的页数。
xzlaal3s2#
一个纯JavaScript的解决方案:
slsn1g293#
也可以使用
pdf-lib
。您需要从输入字段中读取文件,然后使用
pdf-lib
来获取页数。代码如下:然后只需要获取附加文件的页数:
input
是存储文件输入的DOM元素的引用的变量。qncylg1j4#
正如在其他答案中所述,像pdf.js这样的东西就是你正在寻找的。我看了一下这个API,它确实包含了一个numPages()函数来返回页面总数。在查看demo page from Mozilla.时,它似乎也为我计算页数
这取决于您是否能够为您的解决方案使用现代浏览器和实验技术。pdf.js令人印象深刻,但根据github page,它仍然是实验性的。
如果你能够计算上传后服务器上的页面数,那么你应该看看pdftools或类似的。
pdftools --countpages
就是你要找的东西m3eecexj5#
在使用Pdf-lib的typescript类中,我使用以下内容。
打电话作为承诺
vom3gejh6#
我认为自从Tracker1发布了一个答案以来,API已经发生了一些变化。我尝试了Tracker1的代码,看到了这个错误:
一个小小的改变就能解决这个问题: