15

ファイル入力があり、「アップロード」する前に、JAVASCRIPTでその.pdfのページ数を計算する必要があります(例:JQuery ...)

4

6 に答える 6

44

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);
})
于 2014-05-30T18:08:51.850 に答える
9

そして純粋な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 );
}
于 2016-08-30T08:41:33.107 に答える
2

他の回答で述べたように、pdf.js のようなものが探しているものです。API を調べたところ、合計ページ数を返す numPages() 関数が含まれています。また、Mozilla からデモ ページを表示すると、ページがカウントされるようです。

ソリューションに最新のブラウザーと実験的なテクノロジーを使用できるかどうかによって異なります。pdf.js は非常に印象的ですが、 github ページによると、まだ実験段階です。

アップロード後にサーバー上のページをカウントできる場合は、pdftoolsなどを確認する必要があります。

pdftools --countpagesあなたが探しているのは次のようなものです

于 2012-04-20T21:34:32.517 に答える
0

Tracker1 が回答を投稿してから、API が少し変更されたと思います。Tracker1 のコードを試してみたところ、次のエラーが表示されました。

Uncaught TypeError: pdfjsLib.getDocument(...).then is not a function

小さな変更で修正されます。

const pdfjsLib = require('pdfjs-dist');
...
pdfjsLib.getDocument(pdfPath).promise.then(function (doc) {
    var numPages = doc.numPages;
    console.log('# Document Loaded');
    console.log('Number of Pages: ' + numPages);
}
于 2020-10-07T04:26:37.100 に答える