web-dev-qa-db-ja.com

Googleのドキュメントビューアで特定のページを開く方法

Googleのドキュメントビューアを使用してhtmlページにpdfドキュメントを表示しています。たとえば、1ではなく20ページからドキュメントを開きたいのですが。

Googleのドキュメントビューアサービスに関するドキュメントはほとんどありません。彼らはそのウェブページで https://docs.google.com/viewer サービスは2つのパラメーター(URLと埋め込み)のみを受け入れると言いますが、 "a"のような他のパラメーターがウェブを検索するのを見ました、「ページ番号」、「v」、「attid」のいずれも、私には何もしませんでした。私は私のURLの最後に#:0.page.19を追加しようとしましたが(それはgoogleが作成する本文内にページ番号20を含むdivのIDです)、それを無視するか、ランダムに機能します。

あなたは特定のページから始まるドキュメントを表示するようにGoogleドキュメントビューアに指示する方法を知っていますか?

19
Juan

誰かが同じ状況にある場合に備えて、ここに投稿する解決策を見つけました。

Googleのドキュメントビューアiframe内のすべてのページには、:0.page.XのようなIDがあり、Xはページの番号です。このようなサービスを呼び出す

<iframe id="iframe1" src="http://docs.google.com/gview?url=http://yourpdf&embedded=true#:0.page.20">

動作しません(ページがレンダリングされたときにページIDがまだ作成されていないためか?)

したがって、iframeにonload属性を追加するだけです。

<iframe id="iframe1" src="http://docs.google.com/gview?url=http://yourpdf&embedded=true" onload="javascript:this.contentWindow.location.hash=':0.page.20';">

ちなみに、iframeはロード後に自動的に下にスクロールします。

ページインデックスはゼロから始まります。ドキュメントの20ページ目をビューアで表示する場合は、パラメータ:0.page.19を使用する必要があります。

16
Juan

私にとって、このソリューションは現在のバージョンのGoogleビューアでは機能しませんでした。 iPadのGoogleドキュメントビューアの特定のページへのリンク が役立ちました。追加のURLパラメータとして&a = bi&pagenumber = xxを使用します。

3
FSaccilotto

私はこれらの2つを見つけました:

1)特定のページのスクリーンショット(画像)のみ(なしナビゲーション):

_https://docs.google.com/viewer?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true&a=bi&pagenumber=12
_

2)PDF IFRAMEの特定のページへのリンク(withナビゲーション):

_<script>
var docURL='https://docs.google.com/viewer?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true';
var startPAGE=7;

document.write('<iframe id="iframe1" onload="javascript:go_to_page('+ startPAGE +')" src="https://docs.google.com/viewer?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true"width="600" height="400" ></iframe>');
function go_to_page(varr) { document.getElementById("iframe1").setAttribute("src", docURL + '#:0.page.'+ (varr-1) );}
</script>
_



p.s。それからあなたはあなたのウェブサイト上に持つことができます<a href="javascript:go_to_page('3');">go to page 3</a>

2
T.Todua

組み込みビューアで機能するようになりました

Timout関数でURLを変更すると、PDFが直接表示されなくなります

$(window).load(function() {
    setTimeout(function() { $('.gde-frame').attr('src', 'https://docs.google.com/viewer?url=http://yourdomain.com/yourpdf.pdf&hl=nl&embedded=true#:0.page.15'); }, 1000);

});

埋め込みURLをコピーして、ページのハッシュを追加するだけです(#:0.page.15> 15ページに移動します)

言語を自分の&hl = nlに変更することをお勧めします

そして人々のためにどのようにie8をサポートする必要があります

このようなボイラープレートを使用する場合:

<!--[if IE 8 ]> <html class="no-js ie8" lang="en"> <![endif]-->

このようにリンクの出力を直接PDFに変更できます、

if( $("html").hasClass("ie8") ) {


           $('#linkID').attr('href', 'http://yourdomai.com/yourpdf.pdf');


        };

pDFはIEのPDFリーダーに表示されます

0
user2319918

私のPDFは13ページですが、ハッシュを使用した場合:0.page.13、10ページにジャンプしただけです。setTimeoutを実行して、同じ関数を再度呼び出す必要がありました。

ページの読み込みごとに1回だけ実行する必要があるので、適切に同期されているようです。よりエレガントな解決策があると確信しています:

var is_caught_up = false;
function pdf_go(page){
     $('pdf_frame').contentWindow.location.hash=':0.page.'+page;
     if (!is_caught_up){
         setTimeout('pdf_catchup('+page+')', 500);
     }
}

function pdf_catchup(page){
    $('pdf_frame').contentWindow.location.hash=':0.page.'+page;
     is_caught_up = true;
}
0
Dan