7

pdf.js を使用して pdf を表示しようとしています。既に PDF を表示できますが、テキスト選択が有効になっていません。pdf.jsでテキスト選択を有効にする方法について、誰かが小さな例を挙げてもらえますか?

私はすでにいくつかのことを試しましたが、成功しませんでした。

私のコードは現在次のようになっています:

PDFJS.getDocument('someRandom.pdf').then(function(pdf){
  pdf.getPage(1).then(function(page) {
    // you can now use *page* here
    var scale = 1.5;
    var viewport = page.getViewport(scale);

    var canvas = document.getElementById('the-canvas');
    var context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    var renderContext = {
      canvasContext: context,
      viewport: viewport
    };
   page.render(renderContext);

  });
});

これも含めました:

<script src="../pdfjs/pdf.js"></script>
<script>PDFJS.workerSrc ="../pdfjs/pdf.worker.js"</script>

この例では pdf をレンダリングしますが、テキストの選択は有効になっていません。pdf.js に関する基本的な知識が本当に不足していると思いますが、ドキュメントがそれほど良くないため (少なくとも私にとっては)、良い例を得るのは難しいです。

ここでもこの例を試しましたが、コンソールはエラーをスローしており、new PDFJS.DefaultAnnotationsLayerFactory()未定義である と言い続けて います。

4

2 に答える 2

2

少し時間がかかりましたが、ようやく機能します。ここには本当に良い例がいくつかあります。それは公式レポからのものです(ええ、私はそれらを見つけられなかったのが悪いです)。

興味のある人のために、これが私がやったことです(ステップ2と3を本当に実行する必要があるかどうかわかりません。私のために働いた例を貼り付けただけです):

1.gitリポジトリをクローンする

git clone git://github.com/mozilla/pdf.js.git
  1. フォルダーに移動して実行しますnpm installnode make servernode.jsをインストールしていない場合は、最初にインストールする必要があります)

  2. 実行しますnode make generic components(pdf.jsフォルダー内でも)

これbuildで、プロジェクト内のディレクトリをコピーできます (viewer.js を作成する代わりにそれらを使用したい場合は、フォルダー exapmle/components からプロジェクトに slideviewer.js または pageviewer.js をコピーすることもできます)。私の失敗は、pdf.js と他の js のみをプロジェクトにコピーしたことです。そのビルドフォルダーから他のいくつかのjsファイルが欠落しているため、エラーがスローされ続けました。

于 2015-07-18T19:27:50.403 に答える
1

やり方はminimal.jsの見出しコメントで詳しく説明しています。

https://github.com/vivin/pdfjs-text-selection-demo/blob/master/js/minimal.js

過去にこの例を試してみましたが、うまくいきました。

于 2015-07-18T16:58:20.603 に答える