Сделайте HTML встроенный ресурс PDF переходящим на следующую / предыдущую страницу, используя JavaScript - PullRequest
0 голосов
/ 17 января 2020

Я работаю над очень простой веб-страницей, которая встраивает ресурс PDF в тег <object>. Я хочу, чтобы на моей веб-странице было две кнопки: одна для создания PDF go на следующей странице, а другая go для предыдущей. Основная проблема, с которой я сталкиваюсь, заключается в том, что я не могу знать, сколько страниц PDF имеет, поэтому, когда PDF достигает последней страницы, и я нажимаю кнопку «Следующая страница», PDF автоматически переходит на первую страницу, и даже хуже того, переменная JavaScript, которую я использую для представления номера текущей страницы, становится бессвязной, поскольку фактический диапазон страниц переполняется.

Мой базовый код следующий:

HTML:

<object id="pdf" type="application/pdf" data="demo.pdf#page=1" width="240" height="320"></object>
<div id="footer">
    <button type="button" onclick="GoPrevPage();">Go Prev Page</button>
    <button type="button" onclick="GoNextPage();">Go Next Page</button>
</div>

JavaScript:

var pageNumber=1;

function GoPrevPage()
{
    if (1!=pageNumber)
    {
        pageNumber--;
        document.getElementById('pdf').setAttribute('data', 'demo.pdf#page='+pageNumber);
    }
}

function GoNextPage()
{
    pageNumber++;
    document.getElementById('pdf').setAttribute('data', 'demo.pdf#page='+pageNumber);
}

Я заметил, что Firefox выводит следующее сообщение об ошибке после выхода за пределы последней страницы PDF:

PDFViewer.currentPageNumber: "#" is not a valid page.

где # - это страница, на которой я пытаюсь go.

Цель: Я хочу определить, что в PDF-файле отображается последняя страница действовать правильно и / или иметь действительно и всегда связную переменную pageNumber. Кроме того, я хотел бы использовать кросс-браузерное решение, поскольку до сих пор я пробовал это только в Firefox.

Ниже я попытался решить эту проблему следующим образом:

1. Измените функцию GoNextPage, чтобы попытаться перехватить некоторое состояние ошибки следующим образом:

function GoNextPage()
{
    try
    {
        pageNumber++;
        document.getElementById('pdf').setAttribute('data', 'demo.pdf#page='+pageNumber);
    }
    catch (error) // PDFViewer.currentPageNumber: "#" is not a valid page.
    {
        console.log(0);
        pageNumber--;
    }
}

2. Есть окно onerror Обработчик:

window.onerror=function(e,u,l)
{
    console.log(1);
    // Detect some error condition and act properly
}

3. Иметь обработчик тела onerror:

<body onerror="console.log(2);">

4. Иметь обработчик onerror на самом элементе <object> :

<object id="pdf" type="application/pdf" data="demo.pdf#page=1" width="240" height="320" onerror="console.log(4);"></object>

Обратите внимание, что все эти попытки просто выводят что-то с помощью console.log(), чтобы увидеть, можно ли как-то перехватить условие ошибки, но исключение не выдается в любом случае.

Ссылки: https://medium.com/@flipbook / 3 шага к встраивают-PDF-документов-in html -website-56f14b904174 Рекомендуемый способ встраивания PDF в HTML? Перейти на определенную страницу при встраивании документа PDF в HTML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...