То есть я смогу отображать, каждую А4 страницу как фотографию?
Простейший способ, строго на ванильном HTML+CSS+JS —
iframe
. Насколько помню, работает в любом более-менее современном браузере.
Дешёво и сердито:
<div id="BlockForPDFpages">
<iframe class="elPDF" id="PDF_Page01" src=""></iframe>
</div>
<style>
.elPDF {
display: block;
position: relative;
width: XX; /*Рассчитать ширину и высоту под пропорции страницы*/
height: YY; /*Рассчитать ширину и высоту под пропорции страницы*/
overflow: hidden; /*Убрать скроллбары*/
z-index: 0;
/*...
Прочая стилизация iframe (позиционирование, рамки и т.д.)
...*/
}
/*Накладываем поверх фрейма "защитный экран",
чтобы контент внутри случайно не скроллился
(плюс, как полезный побочный эффект — нельзя сохранить через ПКМ):*/
#elPDF::after {
content: "";
display: block;
position: absolute;
width: 100%;
height: 100%;
top 0;
left: 0;
background-color: rgba(0,0,0,0);
pointer-events: none;
z-index: 1;
}
</style>
<script>
function ViewPDFpage(PageNum) {
document.getElementById("elPDF ").contentWindow.location =
"./source.pdf"
+ "#toolbar=0&page="
+ String(PageNum)
+ "&view=Fit";
}
ViewPDFpage(5); /*Во фрейме будет страница 5*/
</script>
Параметры — начинаются с
#
, разделитель
&
:
toolbar=0
— скрывает всё, кроме самой страницы;
page=String(PageNum)
— номер страницы, которая откроется во фрейме;
view=Fit
— страница заполняет всю область фрейма по ширине и/или высоте.
Для многостраничного документа — запустить циклом генерацию фреймов в
BlockForPDFpages
(через
document.write
или
innerHTML+=
) и циклом
ViewPDFpage
с разными номерами страниц для каждого фрейма.
P.S. Понятно, что исходный вопрос уже решён "в лоб" через картинки. Всего лишь предложил более универсальный вариант — сугубо ради академического интереса (да и сам сейчас вожусь как раз с PDF на сайте)).