Подтвердить что ты не робот

Как открыть определенную страницу в Google docs viewer

Я использую google docs viewer, чтобы показать pdf-документ на html-странице, и я хотел бы открыть документ, начинающийся на странице 20 вместо 1, например.

Вряд ли есть какая-либо документация о службе просмотра документов Docs. На веб-странице https://docs.google.com/viewer говорят, что служба принимает только два параметра (url и embedded), но я видел другие параметры, которые искали в Интернете, как "a", "pagenumber", "v" и "attid", ни один из них ничего не сделал для меня. Я попытался добавить #: 0.page.19 в конце моего url (что идентификатор div, содержащий номер страницы 20 внутри тела google создает), но он просто игнорирует его или работает случайным образом.

Вы, ребята, знаете, как сказать google docs viewer, чтобы показать документ, начинающийся с определенной страницы?

4b9b3361

Ответ 1

Я нашел решение, которое я опубликую здесь, на случай, если кто-то находится в той же ситуации.

Каждая страница внутри google docs viewer iframe имеет идентификатор типа :0.page.X, являющийся X номером страницы. Вызов службы, подобный этому

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

не будет работать (возможно, потому, что идентификаторы страниц еще не созданы, когда страница отображается?)

Итак, вам просто нужно добавить атрибут onload в iframe:

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

и voilà, iframe автоматически прокрутит вниз после загрузки.

Обратите внимание, что индексы страниц основаны на нуле. Если вы хотите просмотреть 20-ю страницу документа в средстве просмотра, вам нужно будет использовать параметр :0.page.19

Ответ 3

Я нашел эти два:

1) просто снимок экрана (изображение) конкретной страницы (без):

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

2) ссылку на конкретную страницу PDF в формате IFRAME (с):

<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>



постскриптум то вы можете иметь на своем сайте <a href="javascript:go_to_page('3');">go to page 3</a>

Ответ 4

Мой PDF файл - 13 страниц, но когда я использовал хэш: 0.page.13, он только подскочил на страницу 10. Мне пришлось установить Timeout и снова вызвать ту же функцию:

Требуется только один раз на загрузку страницы, тогда он, похоже, правильно синхронизирован. Я уверен, что есть более элегантное решение:

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;
}

Ответ 5

Получил работу в встроенном средстве просмотра

Изменив 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 будет показан в PDF-ридере из IE