Создание прокручиваемого div, который охватывает всю высоту PDF - PullRequest
7 голосов
/ 23 мая 2019

Я встраиваю PDF в мою веб-страницу. Я делаю некоторые tom-foolery, чтобы скрыть строку состояния (включая кнопки загрузки и номера страниц), чтобы я мог управлять ими извне (я хочу иметь возможность принудительно загружать другие файлы, когда они пытаются загрузить документ). Если это имеет какое-либо значение (например, решение, которое будет работать / не будет работать при наличии инфраструктуры), я использую React.

Я могу установить активную страницу PDF, используя URL, но после загрузки этой страницы я не могу получить позицию прокрутки документа, чтобы обновить номер страницы.

Я думаю, что решение для этого - поместить встроенный PDF в div, который я могу контролировать лично. Чтобы сделать это, я хочу, чтобы внедренный объект имел высоту, которая является суммой вертикальной высоты всех страниц PDF вместе, а затем заключил это в div с заданной высотой. Оттуда я могу контролировать положение прокрутки документа, чтобы определить текущую страницу.

<div class='encasing-div'>
    <div class='toolbar'/>
    <object data='some.pdf' type='application/pdf'>
        <embed src='some.pdf' type='application/pdf' wmode='opaque'/>
    </object>
</div>

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

Как можно сделать внедренный объект высотой всего PDF, исключив таким образом прокрутку из внедренного объекта и разрешив использовать внешнюю прокрутку?

Редактировать: Вот картина, пытающаяся объяснить, что я ищу. Во второй части рисунка материал за пределами div будет скрыт, но прокручиваться до. enter image description here

Ответы [ 3 ]

2 голосов
/ 31 мая 2019

Вы можете использовать iframe вместо object & embed

<!DOCTYPE html>
<html style="height:100%">
<body style="height:100%">

<h2>HTML Iframes</h2>
<p>You can use the height and width attributes to specify the size of the iframe:</p>
<div style="height:100%">
        <iframe src="some.pdf" height="100%" width="100%""></iframe>
</div>

</body>
</html>
2 голосов
/ 28 мая 2019

хорошо, как только у меня возникла такая же проблема, я узнал этот код, и он решил все для меня, надеюсь, он вам тоже поможет

<div class="PDfDiv">
     <object data="some.pdf" type="application/pdf"  height="100%" width="100%">
          <param name="src"value="some.pdf" />
     </object>
  </div>

и в вашем CSS добавьте:

.PDfDiv{
    height: 100vh;
}
0 голосов
/ 17 июня 2019

Переосмыслите свое решение.Если вы используете браузер для отображения PDF, вы не сможете заставить его работать во всех случаях.Каждый браузер использует разные интерфейсы для отображения PDF, и они меняются ... часто.Вместо этого используйте что-то вроде pdf.js, чтобы самостоятельно управлять отображением.Затем вы можете добавлять и удалять навигационные элементы по мере необходимости.

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