1

ブラウザを使用してpdfファイルをレンダリングするためにjavascriptライブラリを使用しています。

これは 1 つです: https://github.com/mozilla/pdf.js

表示したいPDFへのパスとして絶対パスを使用して動作させることができません。ただし、相対パスは正常に機能します。

この呼び出しは機能しません:

PDFView.open("D:/Projects/Empenho/Pdf1.pdf", 0);

相対パスを使用して、適切に機能させることができました:

PDFView.open("https://localhost/MyPDFs/Pdf1.pdf", 0);

open() 関数:

function getDocument(source) {
  var workerInitializedPromise, workerReadyPromise, transport;

  if (!source.url) 
      error('Invalid parameter array, need either .data or .url');


  workerInitializedPromise = new PDFJS.Promise();
  workerReadyPromise = new PDFJS.Promise();
  transport = new WorkerTransport(workerInitializedPromise, workerReadyPromise);

  console.log(workerReadyPromise);

  workerInitializedPromise.then(function transportInitialized() {
      transport.fetchDocument(source);
  });

  return workerReadyPromise;
};

システムに優れたデバッグ システムや優れたドキュメントがない限り、どこに問題があるのか​​を突き止めることはできません。

絶対 x 相対パスを使用すると、オブジェクトを印刷して違いを確認できるため、workerReadyPromise に関連する何かがあると思います。絶対パスを使用すると、workerReadyPromise の状態は次のようになります。

http://pbrd.co/10VGnuQ 何かアイデアはありますか?

PS。これが同じケースかどうかはわかりませんが、次のことがわかりました。

絶対パスを使用して PDF ドキュメントをロードする

4

1 に答える 1

4

pdf.js は、AJAX を使用して指定したファイルを取得するようです。

AJAX リクエストにローカル ファイル パスを使用することはできず、問題が発生しているようです。

この質問に対する答えは、その理由を説明しています。

于 2013-01-25T14:15:25.217 に答える