質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2883閲覧

pdf.js 初期表示 向き rotate 設定

mahoken

総合スコア85

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/10/29 07:40

前提・実現したいこと

PDF.jsを用いて、画面にいろんなPDFファイルを表示させています。

発生している問題・エラーメッセージ

PDFファイルによって、デフォルトの表示向きが異なるという問題が発生しています。
例えば、
sample1.pdf(width: 552.75
, height: 369)
sample2.pdf(width: 1031.76, height: 728.4)
をPDF.jsで表示させてみると、sample1は、正常に横向きで、
sample2は、縦で表示されてしまいます。
(どちらも設定しているrotate値(回転値)は、0です。)

試したこと

rotate値を0ではなく、未設定で表示してみたところ、sample1、sample2共に横向きで表示されました。

が、当アプリケーションでは、回転機能を備えていて、
rotate値に+90すると右に90度回転した状態で表示させるような仕組みになっています。

sample2.pdfでrotate値を90に設定し、表示してみたところ、横向きで表示されてしまいます。

おそらく、
sample1.pdfをrotate値0で表示すると、横向き表示され、
sample2.pdfをrotate値0で表示すると、縦向き表示になるので、
それぞれ、
sample1 rotate値90は、縦向き表示。
sample2.rotate値90は、横向き表示になるのだと思います。

sample1もsample2もrotate値0の時は、横向き表示、+90した場合は縦向き表示で表示したいです。

動作環境

chrome55
IE11
edge
safari

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ファイル自体が、既に回転されたものか否か、の差が原因ではないでしょうか。

例えば、元々縦向きのPDFを、右に90度回転して横向きで保存し直す。。そんな感じのことをした時に、ファイル自体に回転値の情報がつくことがあったと思います。
(PDFファイルを編集したソフトウェアによって変わると思われます)

つまり、sample1.pdfは「0」、sample2.pdfは「+90」という「回転値の情報」を持っているのかと・・。

PDF.jsは、rotateを未設定の場合、この「ファイルの回転値の情報」を元に「正しい向き」で表示させてくれる、そして0を指定した場合は「ファイルの回転値の情報」を無視して「0」の向きにするため、sample2.pdfの向きが縦になってしまう・・ということかな、と。

PDFファイルを作り直せるのであれば、この情報をリセットする手段があるかもしれません。

ただ、回転されたPDFファイルがあるたびに、ファイル自体を作り直すのでは、かなり手間がかかります。

なので、ファイルの初期表示の向きは、PDF.jsにお任せ(※お任せしたくなければ、ファイルの回転値を取得して、それをrotateに指定)。
回転時は、ファイルの回転値を取得し、それに右回転なら+90とかしていくのが良いのではないかな、と思われます。

PDF.jsのページを扱うあたりでpage.rotateのようにすれば、ファイル(というかページですが)の回転値を参照できそうでしたよ。

※現在手元に、動作確認をする環境がないため、上記の提案について未検証です。その点ご了承を。。。

投稿2018/10/29 11:31

mix-peach

総合スコア1910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mahoken

2018/10/30 00:50

回答ありがとうございます! page.rotateでPDFのページの回転値取得できました。 PDF.jsに設定する回転値にpage.rotateを設定したところ、 PDF1、PDF2共に横向き(正常)表示されました。 やはり、PDFを作った際に回転値?が縦に表示されてしまう方は90、正常に表示される方は0になっていたので、90の方は、回転値に+90することで横向き表示され、0の方は、0のまま設定するようにしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問