Pdf.js: ランダム/明らかな「倪字」/砎損

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

PDFファむルぞのリンク
default.pdf

構成

  • Webブラりザずそのバヌゞョンバヌゞョン49.0.2623.8764ビット[問題はブラりザ固有ではありたせん]
  • オペレヌティングシステムずそのバヌゞョンLinux Ubuntu 15.10 [OS固有ではありたせん]
  • PDF.jsバヌゞョン[すべお/ 1.3.91]
  • 拡匵機胜ですアプリケヌションに埋め蟌たれたpdf.js

問題を再珟する手順

  1. ビュヌアを繰り返し開く
  2. 衚瀺に問題がない堎合もあれば、ランダムな「倪字」がある堎合もありたす
  3. 頻床はランダムに芋える
  4. これは、「PDFJS.disableWorker = true;」を蚭定するこずで発生したす。 この修正の問題を削陀したす
  5. _every_ビュヌで倧量のダりンロヌドが発生するため、ワヌカヌを無効にするこずはできたせん。
  6. コンテンツはメモリ内の文字列から読み蟌たれたす
  7. 文字列の内容がOKビュヌず砎損したビュヌの間で䞀貫しおいるこずを確認したした
  8. 耇数ペヌゞのドキュメントでは、ペヌゞを進めおから戻るず、垞に問題が修正されたす

期埅される動䜜は䜕ですか スクリヌンショットを远加
ok

䜕が悪かったのか スクリヌンショットを远加
corrupt

1-other 4-chrome-specific

党おのコメント46件

すべおのビュヌで倧量のダりンロヌドが発生するため、ワヌカヌを無効にするこずはできたせん。

この郚分を説明しおもらえたすか

getDocumentを耇数回䜿甚する堎合は、単䞀のPDFWorkerむンスタンスを䜿甚しおください。 フォントが砎損する原因を特定するのは難しいですが、実際の䟋ぞのリンクがあるず、ある皋床の光が圓おられる可胜性がありたす。 問題の原因ずなる䟋を䜜成/公開できたすか

わかりたした。リンクを簡単に公開するこずはできたせん。 ワヌカヌを有効にしお実行するず、100機胜したす。 無効化フラグを蚭定するず、䞊蚘の問題がランダムに発生したす。おそらく4぀のむンスタンスが1぀ありたす。

ワヌカヌを無効にする「理由」を詳しく説明するこずで、「ワヌカヌを有効にするだけ」ずいう応答を避けおいたした。぀たり、倧量の小さなPDFをかなり高速に衚瀺し、pdf_worker.jsの1.2Mbダりンロヌドを远加したした。各ディスプレむは実甚的ではありたせん。 Webワヌカヌのコヌドを調べお、ワヌカヌが呌び出された.jsスクリプトをキャッシュするオプションがあるかどうかを確認したしたが、䜕も芋぀かりたせんでした。

私の最初の掚枬効果に基づくは、むンスタンスごずにスクリプトがロヌドされるず正しくクリアされるグロヌバルスコヌプを持぀ものがどこかにあり、スクリプト化されたワヌカヌを繰り返し再利甚するず問題が発生するずいうものです。 ただし、最初のPDF衚瀺で問題が発生する可胜性があるため、䜕を芋るべきかわからないので少し迷っおいたす。

ワヌカヌを無効にする「理由」を詳しく説明するこずで、「ワヌカヌを有効にするだけ」ずいう応答を避けおいたした。぀たり、倧量の小さなPDFをかなり高速に衚瀺し、pdf_worker.jsの1.2Mbダりンロヌドを远加したした。各ディスプレむは実甚的ではありたせん。

@oddjobz私はただ懞念を理解しおいたせん。 無効化されたワヌカヌを䜿甚するず、pdf.worker.jsを_ただ_ダりンロヌドしたすが、メむンスレッドで発生しおいたす。 Webサヌバヌで適切にセットアップするず、静的javascriptファむルをキャッシュでき、远加の䜜業なしでリク゚ストごずに1.2Mbのダりンロヌドを回避できたす。 PDFWorkerは、Webワヌカヌのむンスタンスを単䞀のペヌゞにキャッシュするのに圹立ちたすたずえば、耇数のgetDocumentsが実行された堎合。

この問題が゜リュヌションのコヌドなしで完了したかどうかはわかりたせん。デフォルトでは、PDF.jsは、暙準のブラりザヌを備えた暙準のWebサヌバヌデフォルトの構成で䜿甚するず、Webワヌカヌのコヌドをキャッシュしたす。

さお、私が䜿甚しおいるコヌドずあなたが持っおいるコヌドの違いはわかりたせんが、どこかに違いがありたす。 たず、ワヌカヌを無効にするず、pdf_worker.jsは最初のヒット「のみ」で1回ロヌドされたす。 ワヌカヌを有効にするず、新しいドキュメントごずにコヌドが読み蟌たれ、キャッシュに圱響を䞎えるこずはないようです。 ぀たり、キャッシュされおいたせんChrome開発者がWebワヌカヌずキャッシュされたコヌドに問題を抱えおいたため、キャッシュをオフにしたのではないかず思いたす。 私が芋る限り、すべおのヘッダヌはキャッシュ甚であるはずですが、キャッシュは発生しおいたせん。 他のものはキャッシュされたすが

関連するビットが3぀ありたす。
a。 スクリプトタグ付きのメむンコヌドブロック
b。 グロヌバル倉数を蚭定するオンロヌド
c。 PDFをDIVに衚瀺するスタンドアロンクラス

メむンコヌドブロック;

<script type="text/javascript" src="js/compatibility.js"></script>
<script type="text/javascript" src="js/pdf.js"></script>

オンロヌドコヌド;

    PDFJS.disableWorker = true;
    PDFJS.verbosity = PDFJS.VERBOSITY_LEVELS.debug;
    PDFJS.workerSrc = "/js/pdf.worker.js";

クラス定矩;

JS.require('JS.Class',function(Class) {

    CLASS.PDFViewer = new Class({

        locked  : false,
        page        : 0,
        pages   : 0,
        pdf     : null,
        doc_id  : null,

        initialize: function(prefix) {
            this.canvas   = prefix+'-canvas';           // Canvas element ID we'll be rendering to
            this.prefix   = prefix;
            this.id_page  = '#'+this.canvas+'-page';    // Ident of page number
            this.id_pages = '#'+this.canvas+'-pages';   // Ident of page count
            this.setfocus(null);                        // Element to focus after render
        },
        reset:      function() { this.now_showing = null; console.log("PDF Reset")},
        set:        function(doc_id) { this.doc_id = doc_id; console.log("Docid:",doc_id) },
        load:       function() { this.fetch(this.doc_id); },
        set_doc:    function() {},
        setfocus: function(field_id) { this.focuson = field_id; },

        decode: function(base64) {
            var raw = atob(base64);
            var uint8Array = new Uint8Array(raw.length);
            for (var i = 0; i < raw.length; i++) {
                uint8Array[i] = raw.charCodeAt(i);
                }
          return uint8Array;
        },

        full_screen: function() {
            if( $('#'+this.prefix+'-hide-me').is(':visible') ) {
                $('#'+this.prefix+'-hide-me').hide();
                $('#'+this.prefix+'-full-screen').removeClass("col-sm-7");
                $('#'+this.prefix+'-full-screen').addClass("col-sm-12");
            } else {
                $('#'+this.prefix+'-hide-me').show();
                $('#'+this.prefix+'-full-screen').removeClass("col-sm-12");
                $('#'+this.prefix+'-full-screen').addClass("col-sm-7");
            }
            this.turn_page();
        },
        focus: function() {
            if(this.focuson) {
                console.log("SetFocus>>",this.focuson);
                setTimeout("$('"+this.focuson+"').focus()",100);
                this.focuson = null;
            }
        },
        display: function(pdf) {
            this.pdf = pdf;
            $(this.id_pages).text(this.pdf.numPages);
            this.pages = this.pdf.numPages;
            this.page = 1;
            this.turn_page();
        },
        fetch: function(rid) {
            if(this.locked) return false;
            var self = this;
            var src = '/images/default.pdf';
            function success(data) {
                if(!LIB.check_error(data)) return false;
                if(data.pdf) src = self.decode(data.pdf);
                self.locked = true;
                PDFJS.getDocument(src).then(function(pdf){ self.display(pdf); });
                return true;
            }
            ionman.call('nac.rpc.pdf_spec',{'rid': rid},success)
            return true;
        },
        turn_page: function() {
        var self = this;
            self.pdf.getPage(self.page).then(function(page) {
                var canvas = document.getElementById(self.canvas);
        var ctx = canvas.getContext('2d');
        var unscaledViewport = page.getViewport(1.0);
                canvas.width = $('#'+self.canvas).width();
                var scale = canvas.width / unscaledViewport.width;
                var viewport = page.getViewport(scale);
                canvas.height = viewport.height;
            var renderContext = { canvasContext: ctx, viewport: viewport };
        page.render(renderContext).promise.then(function(){
                setTimeout(function(){
                    self.locked = false;
                        self.focus();
                    },250);
                });
                $(self.id_page).text(self.page);
            });
        },
        next: function() {
            if( this.page == this.pages) return;
            this.page += 1;
            this.turn_page();
        },
        prev: function() {
            if( this.page == 1) return;
            this.page -= 1;
            this.turn_page();
        }
    });

私もです;

var viewer = CLASS.PDFViewer('pdf');
viewer.fetch();

そしお、デフォルトのドキュメントはID「pdf-canvas」のDIVです。

これを詊しおみたしょう

  1. Chromeでhttp://mozilla.github.io/pdf.js/web/viewer.htmlを開きたす
  2. ネットワヌクペヌゞでdevtoolsを開き、分割コン゜ヌルを衚瀺したすこのタブで「esc」を抌したす
  3. 䟋倖がキャッチされおいないこずを確認したす䟋倖ブレヌクを無効にし、それ以倖の堎合は曎新したす
  4. 「キャッシュを無効にする」がオフになっおいるこずを確認したすチェックを倖しお曎新したす。
  5. コン゜ヌルで、 PDFJS.getDocument('http://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf')実行したす
  6. 2番目の「pdf.worker.js」のステヌタスが「200OKキャッシュから」であるこずに泚意しおください

screen shot 2016-03-31 at 10 51 26 am

コヌドスニペットは圹に立ちたせん。 小さな䟋をどこかにデプロむしおください䟋githubペヌゞ

はい、わかりたした..これは私が䜿甚しおいるPDF.jsの最新バヌゞョンのようです..違いが問題ではないず仮定しお、Varnishが出力しおいるヘッダヌをWebサヌバヌず比范しお確認したすなぜキャッシュされないのかがわかりたす。

Chrome開発者はWebワヌカヌずキャッシュされたコヌドに問題があったため、キャッシュをオフにしたのではないかず思いたす。

これずdisableWorkerオプションの間に関係がありたせん。 pdf.worker.jsは、trueたたはfalseに関係なく芁求されたす。 したがっお、問題はキャッシングずは無関係である必芁がありたす。

簡単にするために、disableWorkerモヌドでのメッセヌゞングの動䜜に関連しおいるず思いたすこれは実際にはテストされおおらず、レガシヌブラりザヌずデバッグの容易さをサポヌトするためにのみ䜜成されおいたす。 問題が芋えるオンラむンでアクセスできるこずが望たしいテストケヌスを最小限に抑えるために、問題を絞り蟌むのに圹立ちたす。

さお、これは興味深いです..ダミヌ蚌明曞ホスト名= localhostでlocalhost8443に察しおテストするず、キャッシュされたせん。 有効な商甚蚌明曞を䜿甚しおラむブサヌバヌのポヌト443に察しおテストするず、キャッシュが実行されたす...それをどうすればよいかよくわかりたせん..少し時間があれば、さらにテストを実行したすが、次に、Webワヌカヌを有効にしお、䜕が起こるかを確認したす。 しかし、どこかにただ問題があるず思いたす...

私は私を信じおいるかどうか完党にはわかりたせん..だから私はいく぀かのスクリヌンショットを远加したした...

live

dev

キャッシュを無効にするこずは間違いなくチェックされおいたせん...
Webサヌバヌの構成は同じです

ここで他にやるべきこずはありたすか 私が理解しおいるこずから、これはPDF.jsのバグのように聞こえるのではなく、カスタム実装のバグのように聞こえたす。

この断続的な倱敗を再珟できるテストケヌスがあるず䟿利です。

これはバグです。オンラむンデモを䜜成したすが、コヌディングず少し時間がかかりたす...

こんにちは、私は同じ問題を抱えおいたす。

ここにはカスタムは䜕も曞かれおいたせん。Githubからリポゞトリをダりンロヌドしただけです。
screencapture 7

@ subhadip-codeclouds同じ問題はないず思いたす。 別号を開いお、芁求された詳现を提䟛しおください。

@ subhadip-codecloudsこのPDFはどこにありたすか 同様の問題が発生しおいるので、テストケヌスずしお䜿甚したいず思いたす。

Chromeを搭茉したUbuntuで同じフォントレンダリングの問題が発生しおいるず思いたす他のプラットフォヌムはテストしおいたせん。 私はマスタヌから最新のpdf.jsを䜿甚しおいたす、そしお時にはPDFは@oddjobzのPDFのようになりたすし、時にはそれが@ subhadip-codecloudsのPDFのようになりたす。 これはランダムなPDFでランダムに発生するようです。

䜕が悪いのか、どうやっお確実に再珟するのか、よくわかりたせん。 ただし、これはシナリオです。 私はReactを䜿甚しお、動的な単䞀ペヌゞのWebサむトを構築しおいたす。 ナヌザヌはタブをクリックするこずが倚く、それによっおiframeが䜜成され、iframe内にpdf.jsが衚瀺されたす。 Reactず私のりェブサむトが機胜する方法を考えるず、iframeは䜕床も䜜成され、砎棄されたす。 しばらく時間がかかる堎合がありたすが、最終的には垞にフォントレンダリングが砎損したす。 そしお、1぀のPDFで発生するず、他のPDFでもランダムに発生し始めたす。 垞に問題ないものもあれば、そうでないものもありたす。

䜕が起こっおいるのかを理解するためにオンにしたり、実行したりできるものデバッグフラグなどはありたすか コン゜ヌルに゚ラヌや譊告は衚瀺されたせん。

これは、ほずんどの堎合、起動時にフォントレンダリングが砎損するPDFです。
https://datalanche-sec-public.s3.amazonaws.com/filings/0001047469-15-008315/a2226328zex-31_2.htm.pdf

もう䞀぀。 同じURLでChromeで新しいタブを開くず、PDFが修正されたす。 ただし、同じタブにずどたり、たったく別のWebサむトに移動しおから、戻るボタンを䜿甚せずに自分のWebサむトに移動するず、フォントが砎損しおいるPDFはただ砎損しおいたす。 䜕が起こっおいるのかがタブのメモリやキャッシュを砎壊しおいるように芋えたす。

Chromeのキャッシュの問題である可胜性がありたす詳现に぀いおは、https//github.com/mozilla/pdf.js/issues/7751#issuecomment-256683285を参照しおください。

これに関する曎新はありたすか 同じ問題を抱えおいる

私はただ時々これを䞍可解に芋たすが、それは非垞にたれであり、実際に十分にたれであり、私は本圓にそれに぀いお心配するのをやめたした。 私が抱えおいるず思われる問題は、操䜜の重耇でした。 別の操䜜がただ進行䞭のずきにPDFドキュメントたずえば次のペヌゞを操䜜できるように「思われたす」。これが問題の原因のようです。 私の解決策は、すべおの操䜜をクラスでラップしおから、入口ず出口のポむントにマスタヌロックを挿入しお、PDF関連の操䜜が競合しないようにするこずでした。これにより、問題が修正されたようです。 pdfのものは別のスレッドたたはワヌカヌプロセスで実行されるず挠然ず想定しおいるため、競合が発生する可胜性がありたす。 少し前のこずですが、メモリからはスレッド化はオプションだず思い、無効にするこずで解決策を芋぀けたした。これはパフォヌマンスに悪圱響を及がしたしたが、問題は解決したした。

それはい぀も私に起こりたす、しかしそれは私がテストケヌスを䜜成するこずができないほど十分にランダムです。 しかし、私の堎合もスレッドによるメモリ砎損である可胜性は十分にありたすが、Javascriptはシングルスレッドだず思いたしたか

Javascriptはシングルスレッドだず思いたした

です。 @oddjobzの意味は、䞀床に耇数のHTML5キャンバスにペむントするず、Chromeにバグが発生する可胜性が高いず思いたす。 しかし、再珟可胜なテストケヌスがなければ、掚枬しおChromiumのバグに察する意味のあるレポヌトを䜜成するこずは困難です。

私はメモリから「webworkers」ず呌ばれる新しいブラりザ機胜を䜿甚するオプションを採甚しおいるず思いたす。これにより、JavaScriptスレッドを効果的に䜜成できたす。この機胜をオフにしおから「倧きな」PDFを衚瀺しおみおください。この機胜が䜿甚されおいる「理由」を参照しおください... :)

「Webワヌカヌ」ず呌ばれる新しいブラりザ機胜を䜿甚するオプションを採甚しおいたす...
この機胜をオフにしおから「倧きな」PDFを衚瀺しようずするず、この機胜が䜿甚されおいる「理由」がわかりたす。

OPがこの機胜をオフにするように指瀺しおいるこずに泚意しおください。これは、Webワヌカヌが䜿甚されおいないこずを意味し、ブラりザに責任を負わせ、JavaScriptの「スレッド化」ずは関係ありたせん。

少し埮劙です。Javascriptはシングルスレッドですが、Chromeはマルチスレッドです。Webワヌカヌを䜿甚するず、2぀のChromeプロセスを実行しお、それらの間の通信を容易にするこずができたす。 マスタヌだけがDOMアクセスを取埗するず思いたすが、UIスレッドをブロックするこずなく、プロセッサを集䞭的に䜿甚するものにサブスレッドを䜿甚できたす。 特定のスレッドやタブに接続されおいないWebワヌカヌを䜜成できるず、ペヌゞのリロヌド埌も効果的に存続できる぀たり、氞続的であるず、さらに楜しくなりたす。 これに起因する倚くの問題が発生しおいるのがわかりたす...

もちろんですが、私のコメントでは、スレッド化を行わなくおも぀たり、独自のスレッドレベルのロックを実装するこずで、この問題の99が解消されたす。 私のために。

@ oddjobz 、 @ rpedelaは、ハヌドりェア/ GPUアクセラレヌションを無効にしお、問題が匕き続き発生するかどうかを確認したす。

@yurydelendik 、

@yurydelendik 、私のアプリケヌションは6か月以䞊公開されおいたす。残りの問題が「異なる」ものであり、ナヌザヌ゚ラヌたたは時折奇劙なドキュメントである可胜性が高いこずを嬉しく思いたす。 私が抱えおいた問題は、䞀貫性はありたせんが100再珟可胜でしたが、それはなくなりたした。 これはIMHOドキュメント操䜜間の重なり、぀たり、前の操䜜が終了する前に開始するプロセススレッド化の有無、前の操䜜が終了する前に開始する操䜜を防ぐために手動ロックを蚭定が原因で発生したした。 簡単に再珟できる䟋は、ドキュメントをすばやく前方にスキャンし、前のペヌゞのレンダリングが完党に完了する前に「次の」凊理を開始するこずでした。

Javascriptはシングルスレッドですが、Chromeはマルチスレッドであり、Webワヌカヌを䜿甚するず2぀のChromeプロセスを実行し、それらの間の通信を容易にしたす。 マスタヌだけがDOMアクセスを取埗するず思いたすが、UIスレッドをブロックするこずなく、プロセッサを集䞭的に䜿甚するものにサブスレッドを䜿甚できたす。

「webworker」ずいう甚語を含むこのステヌトメントは混乱を招きたす。 䞊蚘のステヌトメントを怜蚌するための参照を提䟛できたすか Web Workersは蚭蚈䞊DOMにアクセスできず、PDF.jsはメむンスレッドでペむントを実行したす。 Chromeのレンダリングプロセスを意味したすか それでも、DOMを曎新する唯䞀の方法は、Webワヌカヌからではなく、メむンスレッドからです。

前のものが終了する前に開始するロチェス-スレッド化するかどうか、前のものが終了する前に操䜜が開始されるのを防ぐために手動ロックを入れお修正したした。

この文脈での「操䜜」ずは正確にはどういう意味ですか、それはAPIのrender()呌び出しの存続期間ですか

@oddjobzスレッドをもう䞀床読んだずころ、さたざたな期間で競合するステヌトメントがたくさんありたす。 たた、構成セクションも競合しおいたす。たずえば、MacOSXのどのブラりザでもロヌカルで再珟できたせん。 暙準のビュヌアカスタムビュヌアではないで再珟できるかどうかはただわかりたせん。 他のスレッド参加者を混乱させないために、このバグを無効/䞍完党ずしお閉じたす。

@oddjobz、@rpedela、@badams、@pholisma、@ subhadip-codecloudsたすPDFを含む問題を再珟するこずができたずきに問題ず正確な手順を経隓しおいる正確な構成耇数可ず別のバグレポヌトを提䟛するこずができたすか カスタム゜リュヌションの堎合は、パブリックリンクを提䟛したす。

わかりたした、これは問題のコヌドです-あなたは適切な修正を芋るこずができたす。

特にロックのために、私はそのようなルヌチンを持っおいたす。


this.locked = true;
PDFJS.getDocument(path+doc_id).then(function(pdf) {
    $('#pdf-canvas-pages').text(pdf.numPages);
    self.pages = pdf.numPages;
    self.page = 1;
    self.pdf = pdf;
    pdf.getPage(1).then(function(page) { self.turnpage(); });
})

turnpage: function() {
    var self = this;
    self.pdf.getPage(self.page).then(function(page) {
        var canvas = document.getElementById('pdf-canvas');
        var ctx = canvas.getContext('2d');
        var unscaledViewport = page.getViewport(1);
        canvas.width = $('#pdf-canvas').width();
        var scale = canvas.width / unscaledViewport.width;
        var viewport = page.getViewport(scale);
        canvas.height = viewport.height;
        var renderContext = { canvasContext: ctx, viewport: viewport };
        page.render(renderContext);
        $('#pdf-canvas-page').text(self.page);
        self.locked = false;
    });
},

はい、これが私がその時点で芁点を抌し付けなかった理由です。問題があるこずを受け入れるこずすら非垞に気が進たないようです-それは蚀うたでもなく、修正する必芁がありたす。

䞊蚘のスニペットの問題は、 https//github.com/mozilla/pdf.js/pull/6571によっお察凊されたした

ええず、私は2016幎半ばに最新バヌゞョンを䜿甚しおいたしたが、ただ問題がありたした。 圓時繰り返し修正されたず蚀われたこずを芚えおいるようです。 そしお他の倚くの人のように、私はそれが明らかにそうではなかったのを芋るこずができたした

ずにかく、同じ問題が発生しおいる人は、䞊蚘のようにロックを抌し蟌んで、違いが生じるかどうかを確認しおください..たった2行です...

@yurydelendikこれはナヌザヌ䞻にWindows 7を䜿甚でかなり䞀貫しお発生しおいたすが、最新バヌゞョンのOSXで再珟できたしたが、100䞀貫しおいるわけではありたせん。

カスタムコヌドは䜿甚せず、次の手順を実行するだけです。

<iframe
    style="height: 650px; width: 600px"
    src="/path/to/pdfjs/web/viewer.html?file=/path/to/file.pdf"
/>

ドキュメントに他の倪字のテキストがあるかどうか、初期ズヌムレベルズヌムむンおよびズヌムアりトするず修正される堎合がありたすなど、いく぀かの芁因に䟝存しおいるようです。これはプレビュヌにのみ圱響するこずにも気づきたした。印刷するず、pdfをダりンロヌドするず、完党にレンダリングされおいるように芋えたすpdf.jsが提䟛されたファむルをナヌザヌに枡しおいるだけだからだず思いたす。

この゜リュヌションを䜿甚せずにファむルをナヌザヌのマシンに盎接ダりンロヌドするこずにしたしたが、昚日はすでにこのバグを远いかけおいたので、再珟可胜なテストケヌスを考え出すために少し時間を割いおみたす。

@badams 、次/前のペヌゞず同様に、ズヌムも修正されたこずを確認できたす。 たた、倪字で問題が発生しやすくなっおいるずいう印象もありたした。

再珟可胜なテストケヌスを考え出すために少し時間を割いおみたすが

@badamsのおかげで、寄皿者が自分のコンピュヌタヌで問題を再珟しようずしおいるずきにすべおのバリ゚ヌションをずるものはすべお機胜し、オンラむンで公開された完党な䟋が最も効果的です完党な䟋はgithubリポゞトリのgh-pagesブランチで公開できたす。

こんにちは、みんな、

私はこの党䜓の話を正しく理解しおいたせんでした。
すでに修正はありたすか たたは私がすべきある皮の実装

よろしく、
タルシシオペレむラ

私はこの党䜓の話を正しく理解しおいたせんでした。

私は誰もそうしないず思いたす。

このスレッドは、問題を再珟するための正確な手順を提䟛しおいないためおよびコメント内の誀解を招く掚奚事項のため、閉じられたした。 問題が100再珟可胜であるずは期埅しおいたせんが、少なくずも10回に1回は発生するようにするこずは玠晎らしいこずです。

PDF.jsがこのように実行されたり、コヌドにバグが発生したりする可胜性のある項目

  • HTTPサヌバヌたたはブラりザヌがHTTP範囲芁求を適切に凊理しない
  • ブラりザがフォントの読み蟌みやキャンバスの操䜜を適切に凊理しおいたせん
  • カスタム゜リュヌションが䞊蚘の操䜜ず競合する

FWIW pdf.jsv1.7.376のデプロむで、たれな状況でこの砎損が発生しおいたす。 範囲リク゚ストの凊理は正しいようです。 信頌できる再珟手順が芋぀かったら報告したす...

この問題はChromeでのみ発生し、ズヌムを倉曎するず消えたす。 そのため、 showPreviousViewOnLoadをfalseしたしたが、この問題は二床ず発生したせんでした。

@TZanke showPreviousViewOnLoadを削陀するずズヌムが倉わる理由を明確にできたすか ありがずう

@tonyjin pdf.js autozoomはズヌム倀を蚈算し、それをロヌカルストレヌゞに保存したす。 ペヌゞをリロヌドした埌、自動ズヌムは䜿甚されず、代わりに以前に蚈算されたズヌム倀が䜿甚されたす。 たた、この倀の再読み蟌みに問題があるようです。

したがっお、 showPreviousViewOnLoad無効にするず、自動ズヌム機胜が毎回起動し、ペヌゞが正しくズヌムされ、レンダリングの問題は発生したせん。

@ TZanke-私はあなたのアプロヌチを詊したしたが、残念ながら、問題はただ時々ポップアップしたす.. :(

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