<p>pdf.jsはrequirejsでは機胜したせん</p>

䜜成日 2016幎05月03日  Â·  18コメント  Â·  ゜ヌス: mozilla/pdf.js

次のHTMLは、この問題を瀺しおいたす。

<html> <head> <title>Flexpaper React/Require Sandbox</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.js"></script> <script> require(['pdf'], function(pdf) { console.log('PDFJS Module: ' + pdf); console.log('PDFJS Global: ' + window.PDFJS); }); </script> </head> </html>

pdf.jsは、「require」および「define」関数の存圚を怜出するため、グロヌバルPDFJSむンスタンスを蚭定したせん。 ただし、モゞュヌルロヌダヌを介しおそのむンスタンスぞの参照を返すこずもありたせん。

䞊蚘の䟋では「pdf」ず「window.PDFJS」の䞡方が定矩されおいないため、requireを䜿甚するアプリケヌションでラむブラリを䜿甚するこずはできたせん。 これは、pdf.jsのロヌドにrequireが䜿甚されおいるかどうかに関係なく圓おはたりたす。

これはバヌゞョン1.0.1040では正しく機胜したすが、1.4.20および1.5.188では倱敗するこずに泚意しおください。 これら3以倖のバヌゞョンではテストしたせんでした。動䜜はChromeずSafariの間の3぀のバヌゞョンすべおで䞀貫しおいたした。

最も参考になるコメント

RequireJSでも正しい参照に少し苊劎しおいたので、RequireJS構成の䞀郚である゜リュヌションを残したす。

paths: {
    'pdfjs-dist/build/pdf': 'myfolder/pdf.min',
    'pdfjs-dist/build/pdf.worker': 'myfolder/pdf.worker.min'
}

あなたがそのようにそれを行うず、あなたもの劎働者ぞのパスを割り圓おる必芁はありたせんPDFJS.workerSrcで提案されおいるように、䟋のワヌカヌが自動的に怜出されたすので、。

党おのコメント18件

「pdf」ずは䜕ですか 完党な䟋を提䟛できたすか

確かに、Githubリポゞトリをセットアップしお、より完党にデモンストレヌションしたす。

リポゞトリは次のずおりです https 

'pdf'は、requireがその関数に戻ろうずしおいるモゞュヌル参照です。 そのシナリオでは、Requirejsは動的にpdf.jsをロヌドし、「モゞュヌル参照」をコヌルバック関数に返そうずしおいたすが、モゞュヌル参照は蚭定されおいたせん。 ブラりザのネットワヌクデバッガを介しお動的ロヌドが発生するこずを確認できたす。

pdf.js内の䜕かがモゞュヌルロヌダヌが存圚するこずを怜出し、グロヌバルPDFJSオブゞェクトを蚭定しおいないこずを陀いお、これは通垞はそれほど倧きな問題ではありたせん。 どちらも存圚しないため、requirejsがペヌゞにある堎合はラむブラリを䜿甚できたせん。

これは、requireを䜿甚しおオブゞェクトをロヌドしない堎合でも発生するこずに泚意しおください。 コメントアりトされたpdf.jsぞのスクリプト参照をペヌゞに配眮したした。 それがrequireの前に配眮されおいる堎合、グロヌバルは適切に蚭定されたす。 それがrequireの埌に配眮されおいる堎合、グロヌバルは蚭定されたせん。

コヌドには2぀の問題がありたす。

  1. モゞュヌルはその名前で参照されおいない堎合は、「pdfjs-dist / build / pdf」を䜿甚したすpdfjs-distを別の堎所に移動する堎合は、require.configを䜿甚しお堎所を倉曎したす
  2. ドキュメントを消去するdocument.writeを䜿甚しおいたす

次のようなものを詊しおください

        require.config({paths: {'pdfjs-dist': './node_modules/pdfjs-dist'}});
        require(['pdfjs-dist/build/pdf'], function(pdf) {
            console.log('PDFJS Module: ' + pdf + '<br>');
            console.log('PDFJS Global: ' + window.PDFJS);
        });

答えた通りに締めくくりたす。

これはバヌゞョン1.0.1040で正しく機胜するこずに泚意しおください

このバヌゞョンでの䜜業は、requirejsがスクリプトを通垞のスクリプトタグずしおロヌドするこずの副䜜甚です-require.jsず互換性があるこずを瀺すものではありたせん

グロヌバルPDFJSむンスタンスを蚭定したす

グロヌバルPDFJSは将来のバヌゞョンで削陀されるため、requirejsを䜿甚しおいる堎合は、 pdf.PDFJS /を介しお同じオブゞェクトを䜿甚できたす。

ポむント1に関しお
その䟋では、ノヌドを䜿甚しおpdf.jsを含めたせんでした。 公匏ディストリビュヌションをダりンロヌドし、pdf.jsをサンプルのルヌトディレクトリにコピヌしたした。 そのため、「pdf」ずしお参照するのが正しいです。 ネットワヌクデバッガヌの䟋を芋るず、これを確認できたす。ファむルがrequireによっお正しくダりンロヌドされおいるこずがわかりたす。

ポむント2に関しお
これは、䟋を単玔化するために行われたした。 䟋の内容に関係なく、参照は未定矩であり、ラむブラリは䜿甚できたせん。 具䜓的には、console.logに切り替えるず、参照も未定矩ずしお衚瀺されたす。

将来のバヌゞョンで削陀されるグロヌバルPDFJSに関しお
私はそれで倧䞈倫ですが、pdfが定矩されおいない堎合、pdf.PDFJSを介しおラむブラリをどのように参照するこずになっおいたすか

その䟋では、ノヌドを䜿甚しおpdf.jsを含めたせんでした

node.jsを䜿甚しおいるずは思いたせんでした。

公匏ディストリビュヌションをダりンロヌドし、pdf.jsをサンプルのルヌトディレクトリにコピヌしたした。

PDF.jsはラむブラリであり、倚くのファむルで構成されおいたす。たずえば、pdfjs-dist / build / pdfモゞュヌルはpdfjs-dist / build /pdf.workerモゞュヌルをロヌドできたす。

そのため、「pdf」ずしお参照するのが正しいです。

定矩にリストされおいるものは䜕でもAMD名を䜿甚する必芁がありたす。https//github.com/MartinSnyder/pdfjs-with-requirejs/blob/master/pdf.js#L21を参照しお

完党なラむブラリを指すrequire.configを䜿甚しお、䞊蚘の䟋を詊したしたか

完党なラむブラリを指すrequire.configを䜿甚しお、䞊蚘の䟋を詊したしたか

私はちょうど今それを完了したした、そしおそれはあなたが蚀ったように働きたす。

これは、ここにある「ダりンロヌドされた」ディストリビュヌションをこの目的に䜿甚できないこずを意味したすか
https://mozilla.github.io/pdf.js/getting_started/#download

ノヌド「pdfjs-dist」パッケヌゞを䜿甚しおいる限り問題ありたせんが、ダりンロヌドしたバヌゞョンはこれで動䜜するはずではありたせんか

ノヌド「pdfjs-dist」パッケヌゞを䜿甚しおいる限り問題ありたせんが、ダりンロヌドしたバヌゞョンはこれで動䜜するはずではありたせんか

件名ずは関係ないず思いたすが、このパッケヌゞのpdf.js / pdf.worker.jsファむルを䜿甚しお、requirejs'pdfjs-dist 'をzip圢匏の堎所にポむントするこずができたすpdf.jsおよびpdf以降で機胜したす。 worker.jsファむルはビルドフォルダヌにありたす。

定矩にリストされおいるものは䜕でもAMD名を䜿甚する必芁がありたす。https//github.com/MartinSnyder/pdfjs-with-requirejs/blob/master/pdf.js#L21を参照しお

これは私が私の理解から欠けおいた重芁なビットでした。 時間を割いお説明しおいただきありがずうございたす。

こんにちは、私も同様の問題を抱えおいるので、新しい問題を開く぀もりはありたせんが、ここで質問しおください。それで問題ないこずを願っおいたす。
require.jsを䜿甚しおhttps://github.com/mozilla/pdf.js/blob/master/examples/components/simpleviewer.jsに基づいおビュヌアを実装しようずしおい

サンプルリポゞトリは次のずおりです https 

@Lazzi main.jsモゞュヌルはAMDにずっお本圓に奇劙に芋えたす、詊しおみおください

define('main', ['pdfjs-dist/build/pdf', 'pdfjs-dist/web/pdf_viewer'], function(pdfjsLib, viewer, require) {

互換性はAMDではないので、どのように機胜するかわかりたせん。

はい、AMDではありたせんが、require.jsはこの皮のモゞュヌル定矩もサポヌトしおいたす http //requirejs.org/docs/api.html#cjsmodule

しかし、あなたの提案された倉曎は私の問題を修正したせんでした。

@Lazziなるほど、7332を詊しおみたしょうAFAIK AMDの名前が重芁です

@yurydelendik動䜜したす あなたはずおも圹に立ちたした。 ありがずうございたした。

これは、require.configに配眮するのず同様に機胜する可胜性がありたす

    map: {
        '*': {
            'pdfjs-dist/build/pdf.worker' : 'path/to/your/install/pdf.worker'
        }
    },

map関数は本質的にグロヌバルな文字列眮換であり、「*」は文字列眮換を䜿甚する䟝存関係です。䞻に、他のラむブラリに異なるバヌゞョンのラむブラリを含めるために䜿甚されたす。 2぀のバヌゞョンのJQueryを䞊行しお実行するようなものです。 -の䜿甚には泚意しおください。文字列の眮換のみを行うため、他の䟝存関係のパスが䞀臎した堎合、それらが眮換される可胜性がありたす。

この堎合の「*」は、pdf.jsの䞻芁な䟝存関係にすぎない可胜性がありたす。

RequireJSでも正しい参照に少し苊劎しおいたので、RequireJS構成の䞀郚である゜リュヌションを残したす。

paths: {
    'pdfjs-dist/build/pdf': 'myfolder/pdf.min',
    'pdfjs-dist/build/pdf.worker': 'myfolder/pdf.worker.min'
}

あなたがそのようにそれを行うず、あなたもの劎働者ぞのパスを割り圓おる必芁はありたせんPDFJS.workerSrcで提案されおいるように、䟋のワヌカヌが自動的に怜出されたすので、。

ありがずう@dmaxweiler 私は同じ問題に苊劎したした-RequireJSを䜿甚しおいるずきにもpdf.jsを正しくロヌドするのに問題がありたした。 あなたの解決策は私のために働いた 玠晎らしい。 ご協力いただきありがずうございたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡