PDFファイルを開くためのRFC 8118で参照)によると:
viewrect = _left _、_ top _、_ wd _、_ ht_
座標系で浮動小数点値または整数値を使用してビューの長方形を設定します。0,0は、ドキュメントの回転に関係なく、表示されているページの左上隅を表します。
PDF URLフラグメント識別子のviewrect
パラメータは現在サポートされていないようです。 確認するために、次のようにテストしました。
構成:
問題を再現する手順:
npm install
とgulp server
を実行してから、ページサイズが8.5 "x 11"のPDFにビューアを移動します(例:http:// localhost:8888 / web / viewer。 html?file =%2Ftest%2Fpdfs%2Ftracemonkey.pdf)。#page=1&viewrect=72,72,288,432
を追加し、ページをリロードします。期待される動作は何ですか?
閲覧者は、ページの上部から1インチ、左端から1インチオフセットされた(おおよそ)4 "x6"の長方形にズームインする必要があります。
何が悪かったのか?
PDF JSはviewrect
サポートしていないため、ビューポートは期待どおりに変換されません
私も走った
$ git grep viewrect
結果は0で、GitHubで次の検索を実行しましたが、どちらも何も返されませんでした。
やあ、
私はここで新しく、修正する問題を探しています。誰かがすでに修正していない限り、この問題を修正したいと思います。 また、viewRectに関するドキュメントも読みましたが、wdとhtが何を指しているのかよくわかりません。
誰かがそのwdとhtについて私に教えてもらえますか? 前もって感謝します。
これに自由に取り組んでください。 wd
は「幅」、 ht
は「高さ」だと思います。
こんにちは@AndrewMyint 、私はこれに関連するいくつかの問題を指摘したいと思います。これは、(誤った名前の)「 zoom
」パラメータの現在の実装の誤った動作を文書化しています: https:// github .com / mozilla / pdf.js / issues / 10773およびhttps://github.com/mozilla/pdf.js/issues/2843。
pdf_link_service.jsを調べてきたます。 「 zoom
」パラメータがFit
引数を処理しているのに対し、「 view
」で処理する必要があることに驚いています。ドキュメントによるとパラメータ。
@markmatney私が間違っていなければ、 (left, top, scale, Fit, ...)
などの引数として提供されたすべての値がBaseViewer.scrollPageIntoView
で使用されています。 また、 scrollPageIntoView
には、いくつかのスイッチケース(Fit, FitB, FitH,......)
処理があります。 そして、私が見つけた興味深いケースの1つは、 FitR
これは、ドキュメントにそのFitR
引数が表示されていません。
しかし、URLアドレスバーに#zoom=FitR,72,72,288,432
を追加すると、「 FitR
」が「 viewrect
」の動作を生成しているように見えます。
それがviewrect
の予想される動作であることを確認できますか? ありがとうございました。
はい、 BaseViewer.scrollPageIntoView
はこれらすべての引数を調べ、それらに基づいてビューポートを何らかの方法で変換するメソッドだと思います。
また、最初にこれを調べたときにFitR
見たことを思い出します。 これは、 d30fac0 (2011年9月4日)のmaster
に、残りのFit*
引数とともに導入され、 PDFリファレンス仕様で定義されています。 「PDFファイルを開くためのパラメータ」の仕様から省略された理由(または、さらに言えば、2つの個別の仕様が存在する理由)がわかりません。
とにかく、 viewrect
はFitR
とは異なる方法で実装する必要があるという強い意見があります。 これは確かに議論の余地がありますが、:
FitR
とは異なり、結果のビューがユーザーのWebブラウザーウィンドウのサイズに依存しないviewrect
実装を見たいと思います。 私が何を意味するかを確認するには、 https ://mozilla.github.io/pdf.js/web/viewer.html#zoom = FitR、0,0,144,144にください。 そのURLフラグメントは、視聴者に約2 "x 2"の正方形の領域(_w_ x _h_、1 "〜72 px)を表示するように要求します。現在、ブラウザが1080 x 720(3:2の比率)のディスプレイで全画面表示の場合横向きの場合、実際には3 "x 2"の領域が表示されます。ディスプレイを90度回転させ、同じ長方形をフルスクリーンブラウザで表示すると、2 "x3"の領域が表示されます。これはPDFリファレンス仕様の583ページに従って、PDF.JSは残りの使用可能なスペースを埋めます。
[_page_ / FitR _left_ _bottom_ _right_ _top_]
_page_で指定されたページを表示します。その内容は、座標で指定された長方形に収まるように拡大され、ウィンドウ内に完全に収まります[...]必要な水平方向と垂直方向の拡大率が異なる場合は、小さい方を使用します。二つ [...]
「PDFファイルを開くためのパラメータ」は、 viewrect
はるかに大まかに定義します(定義については、この問題に関する冒頭のコメントを参照してください)。 ブラウザのウィンドウサイズに関係なく同じ領域を表示する実装が必要です。これにより、指定された領域の_外側_に焦点が合わなくなります(「グレー表示」または「ブラックアウト」)。 私が何かを見逃していない限り、そのような実装はまだ仕様に準拠しています。
私のコメントを読んで、 FitR
のPDFjs実装がPDFリファレンス仕様とは異なることに気づきました。 長方形を_x、y、w、h_として解釈しますが、_left、bottom、right、top_として解釈する必要があります。
最も参考になるコメント
これに自由に取り組んでください。
wd
は「幅」、ht
は「高さ」だと思います。