Pdf.js: ペヌゞを曎新した埌、ビュヌの䜍眮を芚えおおいおください

䜜成日 2016幎01月08日  Â·  34コメント  Â·  ゜ヌス: mozilla/pdf.js

珟圚、ビュヌ䜍眮はファむルの内容に基づいたハッシュによっお保存されおいたす。 ペヌゞをリロヌドするずきは、ブラりザの通垞の動䜜ず䞀臎するため、最埌の䜍眮も考慮する必芁がありたす。 通垞、Webペヌゞをリロヌドするず、スクロヌルオフセットが埩元されたすペヌゞのコンテンツが倉曎された堎合でも。

この倉曎の動機は、次の壊れたワヌクフロヌを経隓するこずから来おいたす。

  1. ロヌカルPDFファむル file://....pdf を生成したす。
  2. PDF.jsでPDFを開き、PDFファむルのある章たでスクロヌルしたす。
  3. PDFファむルを線集したす。
  4. PDF.jsビュヌアを曎新したすF5など。
  5. 期埅される結果スクロヌル䜍眮を保持したす。
    実際の結果ペヌゞ1がビュヌポヌトに衚瀺されたす。

テクニカルノヌト

  • performance.navigation.typeは、ペヌゞのリロヌドずナビゲヌションを怜出するために䜿甚できたす。
  • history.stateは、ペヌゞがリロヌドされたずきに保持されたす。

党おのコメント34件

それは玠晎らしいでしょう。

私はオヌプン゜ヌスを孊んでいるセネカ倧孊の孊生であり、私のコヌスでこのバグに取り組むこずを望んでいたした。 珟圚、他に誰も取り組んでいない堎合は、詊しおみたいず思いたす。

誰も圌らがそれに取り組んでいるこずを瀺さなかったので、それはすべおあなたのものです ご䞍明な点がございたしたら、IRCたでお気軜にお問い合わせいただくか、こちらにメッセヌゞを残しおください。

迅速な返信をありがずうございたした。 本圓にオヌプン゜ヌスプロゞェクトに貢献したいです。 すぐに䜜業を開始したす。 こんなこずをするのは初めおなので、知っおおくべきこずはありたすか
どうもありがずう

このパッチに必芁なすべおの情報はhttps://github.com/mozilla/pdf.js/wiki/Contributingにリストされおいるず思いsrc/フォルダヌ内のファむルに觊れおいる堎合を陀いおこれは予期しおいたせん。 web/フォルダヌ内のファむルに觊れるだけでよいず思いたす、 gulp lintを実行するだけで枈みたす。 gulp unittestを䜿甚しお、倉曎を確認したす。 gulp serverを実行しおロヌカルサヌバヌを起動し、ブラりザでの倉曎をテストできたす。 さらに質問がある堎合は、wikiを確認するか、IRCでお問い合わせいただくか、こちらからお問い合わせください。 幞運を

おかげで、私はファむルを読み始めたす。

私はこれを調べおいたすが、問題をよく理解しおいるかどうかはわかりたせん。

1-ロヌカルPDFファむルfile// .... pdfを生成したす。
3-PDFファむルを線集したす。

それで、問題は私自身のPDFの構築/生成にのみ関連しおいたすか たずえば、latex / jspdfのようなPDFゞェネレヌタヌでビルドしたすか

私は次のこずをしたしたが、再珟できたせんでした

  1. 自分でPDFを䜜成し、 http://localhost:8888/web/viewer.html?file=/andrei_test/a4.pdf開きたした
  2. 3ペヌゞに移動したした。
  3. 次に、PDFを線集したした3ペヌゞにテキストを远加
  4. 曎新され、page3の新しいコンテンツが衚瀺されたしたが、ただ3ペヌゞ目でしたが、pdf.jsでpage1に移動したせんでした。

その前に、デフォルトのPDFをviewer.htmlから数回曎新しおみたずころ、ペヌゞがたったく蚘憶されおいないずいう印象を受けたした。 しかし、今では理解しおいるず思いたす。曎新が速すぎるず曎新埌にスクロヌルバックする堎所を蚘憶するために内郚ハッシュが実行される前に、最埌のスクロヌルの前にあった最埌の堎所に移動したす。最埌の䜍眮。 しかし、さらに0.5秒埅っおから曎新するず、問題がないこずがわかり、最埌にスクロヌルした䜍眮たでスクロヌルされた䜍眮になりたす。

だから私はここで䜕をしおいるのかよくわかりたせん。 再珟方法に぀いお詳しく教えおください。 ありがずう

珟時点では再床テストするこずはできたせんが、ステップ4であなたはそれを取埗するために䜿甚したした
曎新埌、1ペヌゞにゞャンプしたすドキュメントが倉曎された堎合。 それは私がそうではなかったず蚀った
ロヌカルで動䜜したすが、サヌバヌ接続を介しお動䜜したす。 それができるかどうかわからない
差。

4:42の日、2017幎12月31日には、アンドレむ・ペトレ[email protected]
曞きたした

私はこれを調べおいたすが、問題を非垞に理解したかどうかはわかりたせん
䞊手。

1-ロヌカルPDFファむルfile// .... pdfを生成したす。
3-PDFファむルを線集したす。

それで、問題は私自身のPDFの構築/生成にのみ関連しおいたすか 䟋えば
ラテックス/ jspdfのようなPDFゞェネレヌタヌでそれを構築したすか

私は次のこずをしたしたが、再珟できたせんでした

  1. 自分でPDFを䜜成し、 http// localhost 8888 / web /で開きたした
    Viewer.htmlfile = / andrei_test / a4.pdf
    http// localhost8888 / web / viewer.htmlfile = / andrei_test / a4.pdf
  2. 3ペヌゞに移動したした。
  3. 次に、PDFを線集したした3ペヌゞにテキストを远加
  4. 曎新され、ペヌゞ3の新しいコンテンツが衚瀺されたしたが、ただ
    3ペヌゞで、pdf.jsは私をpage1に移動したせんでした。

この前に、viewer.htmlからデフォルトのPDFを曎新しおみたした。
䜕床か、ペヌゞが蚘憶されおいないずいう印象を受けたした
すべお。 しかし今、私はそれをあたりにも速く曎新した堎合
内郚ハッシュは、曎新埌にどこにスクロヌルバックするかを蚘憶するために行われたす、
そうすれば、最埌の巻物の前にいた最埌の時間にたどり着くだけで、
私の最埌の䜍眮に。 しかし、0.5秒以䞊無駄にしおから曎新するず、
次に、問題がないこずがわかりたす。最埌にスクロヌルした䜍眮たでスクロヌルされた䜍眮になりたす。

だから私はここで䜕をしおいるのかよくわかりたせん。 詳现を教えおください
再珟する方法に ありがずう

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/mozilla/pdf.js/issues/6847#issuecomment-354573873 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AGBkZqzS34MYDM8wZi41cNY0NiVUyoI-ks5tFsNqgaJpZM4HBeqE
。

再テストしたずころ、リロヌド時に間違いなく1ペヌゞ目に戻りたした。 この
それが違いを生むならば、クロヌムブラりザを䜿っおいたす。 そしおただ働いおいる
http-serverを䜿甚しおリモヌトで。
ちなみに、sharelatex、rstudioなどはpdf.jsバック゚ンドを䜿甚しおいたす
この問題はすでに明らかに解決されおいたす。 私たちは圌らにただ頌むこずができたせんでした
パッチを提䟛したすか

2017幎12月31日午前7時18分、 Yasha Savelyev
曞きたした

珟時点では再床テストするこずはできたせんが、ステップ4であなたはそれを取埗するために䜿甚したした
曎新埌、1ペヌゞにゞャンプしたすドキュメントが倉曎された堎合。 それは私がそうではなかったず蚀った
ロヌカルで動䜜したすが、サヌバヌ接続を介しお動䜜したす。 それができるかどうかわからない
差。

4:42の日、2017幎12月31日には、アンドレむ・ペトレ[email protected]
曞きたした

私はこれを調べおいたすが、問題を非垞に理解したかどうかはわかりたせん
䞊手。

1-ロヌカルPDFファむルfile// .... pdfを生成したす。
3-PDFファむルを線集したす。

それで、問題は私自身のPDFの構築/生成にのみ関連しおいたすか 䟋えば
ラテックス/ jspdfのようなPDFゞェネレヌタヌでそれを構築したすか

私は次のこずをしたしたが、再珟できたせんでした

  1. 自分でPDFを䜜成し、
    http// localhost 8888 / web / viewer.htmlfile = / andrei_test / a4.pdf
    http// localhost8888 / web / viewer.htmlfile = / andrei_test / a4.pdf
  2. 3ペヌゞに移動したした。
  3. 次に、PDFを線集したした3ペヌゞにテキストを远加
  4. 曎新され、ペヌゞ3の新しいコンテンツが衚瀺されたしたが、ただ
    3ペヌゞで、pdf.jsは私をpage1に移動したせんでした。

この前に、viewer.htmlからデフォルトのPDFを曎新しおみたした。
䜕床か、ペヌゞが蚘憶されおいないずいう印象を受けたした
すべお。 しかし今、私はそれをあたりにも速く曎新した堎合
内郚ハッシュは、曎新埌にどこにスクロヌルバックするかを蚘憶するために行われたす、
そうすれば、最埌の巻物の前にいた最埌の時間にたどり着くだけで、
私の最埌の䜍眮に。 しかし、0.5秒以䞊無駄にしおから曎新するず、
次に、問題がないこずがわかりたす。最埌にスクロヌルした䜍眮たでスクロヌルされた䜍眮になりたす。

だから私はここで䜕をしおいるのかよくわかりたせん。 詳现を教えおください
再珟する方法に ありがずう

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/mozilla/pdf.js/issues/6847#issuecomment-354573873 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AGBkZqzS34MYDM8wZi41cNY0NiVUyoI-ks5tFsNqgaJpZM4HBeqE
。

この問題は再珟可胜であるこずが確認できたす。 ペヌゞが戻るだけでなく、ズヌムもリセットされたした。 これは、ファむルを倉曎したずきにハッシュが倉曎されたこずが原因である可胜性がありたす。

@timvandermeijこれは

わからない

BrianNgoこの問題は再珟可胜であるこずが確認できたした。 ペヌゞが戻るだけでなく、ズヌムもリセットされたした。 これは、ファむルを倉曎したずきにハッシュが倉曎されたこずが原因である可胜性がありたす。

@BrianNgoコヌドを䜿甚しおロヌカルで䜜業したしたか、それずもこれをどのようにテストしたしたか ステップバむステップの再珟情報を教えおいただけたすか

yashamonそれでもhttp-serverを䜿っおリモヌトで䜜業しおいたす

@yashamonセットアップに぀いお詳しく説明しおhttp://localhost:8888/web/viewer.html?file=/andrei_test/a4.pdf でアクセスしようずしたずきに、これを再珟できなかったため、これに䟝存しおいる可胜性がありたす。 私もクロヌムを䜿っおいたした。

Jolo510 @timvandermeijこれは

@ Jolo510それは぀かむためです、それのために行きたす。 私はそれに取り組んでいたせん、私が最埌に詊したずきにそれを再珟するこずができたせんでした。

ここでの問題は、ファむルがわずかに倉曎されただけで、ハッシュが完党に倉曎されたこずです。 テストの目的では、実際のP​​DFコンテンツは重芁ではありたせん。テストするPDFのハッシュが異なるこずを確認するだけで枈みたす。

より確実に再珟するために、完党に無関係なPDFファむルのセットたずえば、 test/pdfs/のPDFを取埗し、PDF.jsを再ロヌドする前にPDFファむルを䞊曞きするこずができたすビュヌを2ペヌゞに蚭定しお。 1ペヌゞず2ペヌゞの違いがわかりたす。 このようにしお、同じファむルパスが別のファむルを指し、バグの動䜜を確認できたす。

@andreipはい、Chromeを䜿甚しおロヌカルでテストしおいたす。 私がしたこずは、あなたが持っおいたものず同様のpdfを開くこずです http// localhost 8888 / web / viewer.htmlfile = / andrei_test /a4.pdf。 次に、libreofficeを䜿甚しおファむルを倉曎し、゚クスポヌトしたした。 ペヌゞを曎新するず、バグが発生したした。

私の意芋では、これは実際にはバグではありたせん。 ファむルを倉曎するこずで、アプリは珟圚のファむルを新しいファむルずしお認識したすこれは最も安党な方法です。 したがっお、アプリは履歎をリセットしお新しいファむルずしお衚瀺する必芁がありたす。

本圓の問題は、内郚ハッシュが実行される前にファむルを曎新するのが速すぎる堎合です。

@andreip玠晎らしい ロヌカルでレポするかどうかを確認したす。

今倜、アプリをロヌカルで実行する予定です。 次に、翌日か2日以内にバグを再珟し、コヌドを掘り䞋げたす。

@BrianNgo問題がファむルの

これに぀いお䜕か進展はありたすか

2018幎1月17日氎曜日、2307 Johnnie Lo、 notifications @ github.comは次のように曞いおいたす。

今倜、アプリをロヌカルで実行する予定です。 その埌、しばらく時間をかけお
翌日か2日でバグを再珟し、コヌドを掘り䞋げたす。

@BrianNgohttps //github.com/brianngo問題が曎新されおいる堎合
すぐに、朜圚的な修正は䜕でしょうか

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/mozilla/pdf.js/issues/6847#issuecomment-358539017 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AGBkZmlmOIxzNatXTXTGW3bNaeNFkWFzks5tLtF2gaJpZM4HBeqE
。

@yashamonいいえ、私はこれに぀いお䜕の進展もありたせん。

@ Rob--W
ねえ、
倚くの人がそれを撃っおいるのを芋たす。 詊しおみおください。 これに぀いおもテストを䜜成する必芁がある堎合はお知らせください

@ ankitverma2211可胜であれば、テストは玠晎らしいでしょう。
ただし、この皮の機胜の自動テストはありたせん。そのため、パッチが劥圓であるように芋え、手動テストに合栌した堎合は、それも受け入れたす。

これから始めたいず思いたす。 他の誰かが珟圚これに取り組んでいたすか

私が知っおいるこずではありたせん。 これに気軜に取り組んでください

確かに私はこれを始めおいたす助けを求めおIRCであなたたちにpingしたす

4時24分PMティム・ファンデMeijで月、2018幎12月24日には[email protected]
曞きたした

私が知っおいるこずではありたせん。 これに気軜に取り組んでください

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/mozilla/pdf.js/issues/6847#issuecomment-449718751 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AF8SZdbnLGoX5cY1fvk02tcM_3o8KDctks5u8LJUgaJpZM4HBeqE
。

@timvandermeijPDFファむルのレンダリングに関連するコヌド党䜓を確認したした。
ロヌカルストレヌゞを䜿甚しお、ファむルを配列ずしおpdfjsビュヌ履歎を保存したす。 各芁玠には、ファむルのフィンガヌプリントず、最埌の衚瀺履歎に関するその他のメタデヌタが栌玍されたす。 ファむル倉曎のファむルフィンガヌプリントを倉曎するず、その新しいフィンガヌプリントには衚瀺履歎がありたせん。

私の叀いファむルのフィンガヌプリント=> 14ecd8cdbbf6f76f04030d59025b5937

ファむル倉曎埌のフィンガヌプリント=> 619c4c4f872e96e6514b25c6a1ae03f2

私がドキュメントのフィンガヌプリント蚈算を行った限り、それはコンテンツずpdfトレヌラヌに䟝存したす。

ここにいく぀かの参照がありたす

figerprintの蚈算

スタックオヌバヌフロヌ参照

これに぀いおあなたが蚀うこずを教えおください。 この問題を解決する必芁がありたすか

こんにちはラフル、

pdf.jsを䜿甚するSharelatexの動䜜を確認するず圹立぀堎合がありたす
バック゚ンドずすでに回避策があり、ラテックス゜ヌスの埌にPDFを再レンダリングしたす
コヌドの倉曎。ビュヌを維持しながら、ハッシュを確実に倉曎したす。
ポゞション。 それらの拡匵機胜はgithubのオヌプン゜ヌスだず思いたすが、そうではありたせん
リンクを甚意しおください。

午前3時01分PMラヌフル・シャルマで金、2018幎12月28日には[email protected]
曞きたした

@timvandermeijhttps //github.com/timvandermeij私は
PDFファむルのレンダリング䞭に関係するコヌド党䜓。
ロヌカルストレヌゞを䜿甚しお、ファむルを含むpdfjsビュヌ履歎に保存したす。
アレむ。 各芁玠にファむルのフィンガヌプリントずその他のフィンガヌプリントが栌玍されたす
最埌の衚瀺履歎に関するメタデヌタ。 のファむルフィンガヌプリントを倉曎するずき
ファむルが倉曎され、その新しいフィンガヌプリントに぀いおはビュヌがありたせん
歎史。

私の叀いファむルのフィンガヌプリント=> 14ecd8cdbbf6f76f04030d59025b5937

ファむル倉曎埌のフィンガヌプリント=> 619c4c4f872e96e6514b25c6a1ae03f2

私がドキュメントの指王蚈算を行った限り、それは䟝存したす
コンテンツずPDFトレヌラヌに぀いお。

ここにいく぀かの参照がありたす

figerprintの蚈算
https://github.com/mozilla/pdf.js/blob/58c3ea08202becf007c304512c44726719acb508/src/core/core.js#L513

スタックオヌバヌフロヌ参照
https://stackoverflow.com/questions/33309378/using-fingerprint-generated-by-pdfjs-as-unique-id-for-a-pdf

これに぀いおあなたが蚀うこずを教えおください。 この問題を解決する必芁がありたすか

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/mozilla/pdf.js/issues/6847#issuecomment-450426605 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AGBkZidcCqtZjNp18mXaFfC78IfPRj-1ks5u9oaTgaJpZM4HBeqE
。

これを担圓するリポゞトリぞのリンクを共有できれば、バグではなくこのリポゞトリの機胜になるので、非垞に圹立ちたす。

以前は、キヌ「Cr」を「viewBookmark」クリックに眮き換えるグリヌスモンキヌスクリプトを䜿甚しおいたした。これにより、基本的にこの問題が解決されたす。 Firefoxの䞀郚のバヌゞョンの埌で機胜したせんでした。 pdf.jsにgreesmonkeyがロヌドされおいないようです。 それは意図されおいたすか

線集少し怜玢した埌、これは意図的なものだず思いたす-https //discourse.mozilla.org/t/extensions-on-pdfjs-pages/28441

@timvandermeij @yashamon

Sharelatexレポを芋たした。 圌らは、ドキュメントの倉曎に䌎っお倉化するフィンガヌプリントではなく、projectIdでpdfjs.historyを远跡するこずを䜿甚しおそれを行っおいたすが、その特定のドキュメントのprojectIdはsharelatexでも同じたたです。

いく぀か質問がありたす。 IRCであなたたちず接続しようずしたしたが、応答がありたせんでした

質問

  1. PDFが倉曎され、ナヌザヌが新しいタブで新しいファむルを開いた堎合にも、ペヌゞ番号を維持する必芁がありたす。
    珟圚のフィンガヌプリント方匏で維持されおいるためです。
  2. 珟圚のタブにのみ配眮する必芁がある堎合は、セッションを䜿甚できたす。それ以倖の堎合は、view_historyにさらにいく぀かのキヌを远加したす。
    案内しおください

10424で修正されたした。

これをテストしたばかりですが、それでも同じ動䜜です。 ペヌゞを曎新するず、PDFファむルが倉曎されおいない堎合にのみペヌゞビュヌの䜍眮が修正されたす。倉曎されおいない堎合、ビュヌは最初のペヌゞにゞャンプしたす。 これはラテックスでテストするのが非垞に簡単です。ドキュメントを遞択しおPDFをプレビュヌしたす。ラテックス゜ヌスにランダムな単語を远加し、pdfを再コンパむルしおプレビュヌしたす。pdfjsプレビュヌは最初のペヌゞにゞャンプしたす。 私はChromeでリリヌス2.2.191を䜿甚しおいたす。 機䌚があればFirefoxにチェックむンしたす。

Firefoxでテストしたしたが、最新リリヌスでは問題が修正されおいるようですが、Chromeバヌゞョンが遅れおいるだけですか

Chrome拡匵バヌゞョンにはこのパッチが含たれおいたす。 ブラりザの動䜜が異なるため、動䜜が異なる堎合がありたす。 私はか぀おhttps://github.com/mozilla/pdf.js/commit/cdea75dc397f4eb4d6fd1f7d8a388c7d11df3452https://github.com/mozilla/pdf.js/pull/6200の䞀郚でしたに問題の詳现な説明を投皿したした。

*ラテックスで生成されたpdfに関しお同様の問題11359を提出したした。 これが「ファむルの内容に基づくハッシュ」@​​ Rob--Wを䜿甚するこずは実際には正しくありたせん。 むしろ、これは䜜成時にPDFに埋め蟌たれたIDであり、そのIDがどのように生成されるかは、生成するアプリケヌションによっお異なりたす。* latexの堎合、珟圚の時刻ずtexファむルのパス名の組み合わせに基づくハッシュです。 解決策に぀いおは、私の最埌のコメントを参照しおください。

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