0

XOD ドキュメントを PDFTron WebViewer にロードしようとしています。ドキュメントとサンプルを読む限り、これは単純な「プラグ アンド プレイ」操作であるはずです。理想的には、私の例では、次のようにドキュメントをサービスからフェッチする必要があります。

fetch('/myservice/GetXOD')
.then(function(data) {
    $(function() {
        var viewerElement = document.getElementById("viewer");
        var myWebViewer = new PDFTron.WebViewer({
            initialDoc: data.body
        }, viewerElement);
    });
});

残念ながら、次のエラーが表示されます。

Uncaught TypeError: Cannot read property 'DisplayModes' of undefined

で実行している理由はfetch、Handlebars テンプレートをレンダリングしており、コールバックでインスタンス化するデータを渡すためです。ただし、コードを「空の」HTML ドキュメントに分離しました。以下の単純化された例では、ページの読み込み時に PDFTron によって提供される XOD を指しているだけです (fetch今回はありません)。

$(function() {
    var viewerElement = document.getElementById("viewer");
    var myWebViewer = new PDFTron.WebViewer({
        initialDoc: 'GettingStarted.xod' // Using the XOD provided by PDFTron
    }, viewerElement);
});

残念ながら、これは別のエラー (HTTP ステータス 416) を返します。

Uncaught Error: Error loading document: Error retrieving file: /doc/WebViewer_Developer_Guide.xod?_=-22,. Received return status 416.

localhost で PDFTron のサンプルを実行すると、同じエラーが表示されます。

これをさらにデバッグする方法を完全に失っています。すべてのサンプルは、すべてがそのままで機能していることを前提としています。

実際には、ローカルホストでは問題なく動作する PDF を取得できますが、サーバーでは動作しないことに注意してください。XOD は、サーバーとローカルホストの両方で問題があります。

4

1 に答える 1

0

サンプルの実行で問題が発生しているとのこと、申し訳ございません。

エラーメッセージには、「要求された範囲が満足できない」という意味の 416 と表示されます。開発サーバーがバイト範囲リクエストをサポートしていない可能性があります ( https://en.wikipedia.org/wiki/Byte_serving )。

オプションを渡してみてくださいstreaming: true。ストリーミングが true の場合、事前にファイル全体を要求しているだけで、どのサーバーでも問題になることはありませんが、ファイルが大きい場合は、最初に完全にダウンロードして解析する必要があるため、WebViewer では問題になります。遅い。

于 2016-04-19T16:48:05.570 に答える