PDF.jsを使用して選択したPDFファイルの内容を解析するクライアント側のアプリケーションを構築していますが、 。PDF.jsは、各ページのtextContentとしてドキュメント全体のテキストコンテンツを返します
すべてがうまくいっているようです。コードはPDF.js PDFオブジェクトを正常に読み込み、ドキュメントのページをループし、各ページのtextContentを取得します。
以下のコードを実行してブラウザツールでデータを検査した後、各ページのtextContentオブジェクトに関連ページのテキストだけでなく、ドキュメント全体のテキストが含まれていることに気づきます。
誰もこれまでに経験したことがありますか?
私が引っ張っ(および変更)私はここにPDF.jsの記事から使用しているコードの大部分、そしてそれはかなりストレートフォワードだと予想されるように、この問題とは別に、正確に実行するようだ:
testLoop: function (event) {
var file = event.target.files[0];
var fileReader = new FileReader();
fileReader.readAsArrayBuffer(file);
fileReader.onload = function() {
var typedArray = new Uint8Array(this.result);
PDFJS.getDocument(typedArray).then(function (pdf) {
for(var i = 1; i <= pdf.numPages; i++) {
pdf.getPage(i).then(function (page) {
page.getTextContent().then(function (textContent) {
console.log(textContent);
});
});
}
});
}
},
さらに、返されるtextContentオブジェクトのサイズは、すべてのオブジェクトが共通の最後のオブジェクト(ドキュメント全体の最後のビット)を共有していても、ページごとにわずかに異なります。
ここでは、オブジェクトがすべて同様のサイズであることを示すために私のインスペクタのイメージがあります。
インスペクタのオブジェクトを手動で検査すると、ページ1のデータは実際には約140個の配列アイテムのみで構成されていることがわかります。なぜそのページのオブジェクトに〜700かそこらですか?そしてそのバリエーションはなぜですか?
商品とは何ですか?配列やpdfを見ることなく、確かめるのは難しいですが、項目が単純な単語のトークンではない文書間で実行しました。 (良い、悪い、無作為な、無関係な)理由のために、pdfは空白や中間語に何度も分割するような方法で構築することができます。私はいつも配列に加わり、自分のトークン化を実行しました。単純な '.join()。split(/ \ s + /)'は試してみる価値があります。 – user01
この回答は、PDF.jsを使用してテキストの内容を抽出する方法に関する非常に良い例です:http://stackoverflow.com/a/20522307/6481438 – GCSDC
@ user01返信ありがとうございます - 構成されているPDFについてのあなたの意見は、たくさん! – ineedhelp