簡単な質問は次のとおりです。「私は - Safari で - iPad で (排他的に - 他のブラウザやデバイスは必要ありません) - 固定幅の iframe またはオブジェクト タグに合わせて PDF ドキュメントを拡大または縮小できますか?」
そして長い質問です。次のマークアップがあります-DIV内にスクロール可能なPDFを表示するために使用されます。このマークアップは、iPad 用の Cordova/Phonegap アプリで使用されます。Javascript スマートはバックボーン経由です。
<div class="pdf-container-outer">
<div class="pdf-container">
<iframe src="..." />
</div>
</div>
関連する CSS (読みやすくするために省略)。
.pdf-container-outer {
width: 800px;
height: 800px;
overflow: scroll !important;
-webkit-overflow-scrolling: touch;
}
.pdf-container {
width: 800px;
}
iframe {
width: 800px;
}
PDF ドキュメント自体は A4 サイズで、PDF ページのピクセル寸法は 595px X 841px になります。Safari では、ドキュメントは常に「100%」で表示されます。つまり、iframe に設定した幅 (またはオブジェクト タグ - 結果は同じです) に関係なく、表示される内側の PDF は常に ~595px 幅 (+ 約両側に 7 ~ 8 ピクセルのマージン)。ズームしません。
iframe の幅は、ユーザーがサイトを縦向きまたは横向きモードで表示しているかどうかに応じて変更する必要があります...横向きで最大 800 ピクセル、縦向きで最大 520 ピクセルです。
表示しているドキュメントのページ数を知っているとすれば、すべてのドキュメントを表示するために必要な iframe の全サイズを知っています。私がいじったテクニックの 1 つは、いくつかのインライン スタイルで iframe のサイズを設定し、それに変換を適用することです。
<iframe src="..." style="width: 610px; height: 14000px; -webkit-transform: scale(1.31); -webkit-transform-origin: top left;" />
つまり、適用された変換は、610px を 131% = 幅 800px 拡大します (横向きモード)。縦向き - 倍率は約 0.8 です。
これは、実際には iOS6 に付属する Safari では非常にうまく機能しますが、iOS5.1 ではそれほどうまく機能しません。回避できないように見えるクリッピングの問題があるため、この解決策は理想的ではありません。
私はそれを考えすぎていると確信しています - そしてもっと簡単な解決策があると確信しています。しかし、私の人生では、PDFをSafariのiframeで幅方向に拡大縮小することはできません...
少し助けて?