@Ramazan-Ahriev
Изучаю frontend по американскому ютубу

Отображение содержимого pdf файла на сайте?

Доброй ночи.
Хотел бы узнать возможно ли отобразить содержимое pdf на сайте именно содержимое а не просто открыть pdf в новой вкладке где есть кнопки такие как распечатать, скачать и так далее. чтобы содержимое отобразилось так:
https://dozhdikdesign.ru/bikepoint
Начиная фотки с байка, возможно ли это реализовать
  • Вопрос задан
  • 366 просмотров
Решения вопроса 1
Aetae
@Aetae
Тлен
Можно взять pdf.js и допилить как тебе надо. Будет жирно и тяжело.
Либо моджно сохранить pdf как набор картинок и просто положить их на сайт. Будет просто и жирно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
Раньше можно было embed'дить документы гугл к себе на сайт, не только ПДФ.
Сейчас - не скажу, плюс надо следить, чтобы не отвалилось.

Также изучите сайты крупных сетевых супермаркетов. Насколько я помню, я видел, что больше, чем у одного каталог наподобие "акции этой недели" на самом деле был файлом .ПДФ как-то хитро вставленным на сайт.
Там и зум, и листание, и, возможно, миниатюры страниц (этот момент уже подзабыл).

У кого конкретно такое видел - увы, не вспомню, не вчера было.

Также можете посмотреть на сайты наподобие scribd и прочие, выкладывающие мануалы и даташиты. Пользователи туда обычно как раз PDF загружают.

чтобы содержимое отобразилось так:

Это не ПДФ.

ПДФ у той девушки выложен в виде ссылки "Моё портфолио в pdf" в подвале сайта: https://cloud.mail.ru/public/3Kav/6muKQ2Zoy
Ответ написан
Комментировать
@Qoragar
То есть я смогу отображать, каждую А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 на сайте)).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы