Отображение PDF в веб-браузере


86

Как я могу отобразить PDF-файл в веб-браузере на странице .html?

Ответы:


121

Я использую встраиваемую программу просмотра PDF-файлов Google Docs. Документы не нужно загружать в Google Docs, но они должны быть доступны в Интернете.

<iframe src="http://docs.google.com/gview?url=http://path.com/to/your/pdf.pdf&embedded=true" 
style="width:600px; height:500px;" frameborder="0"></iframe>

3
С помощью этого решения некоторые пользователи не видят PDF-файл, но Google просит сначала войти в систему.
Филипп Зедлер

41
У меня есть вопрос по этому решению. Будет ли Google хранить копию моего PDF-файла на своих серверах? Сохранится ли конфиденциальность моего контента?
hd.

@Alex, чтобы знать наверняка, попробуйте ... Я бы попробовал -: //docs.google.com/gview? Url =: //path.com/to/your/pdf.pdf&embedded=true как iframe src
bradenkeith

Чем это отличается / лучше от решения @Will, чтобы напрямую установить src iFrame в pdf? Я полагаю, что прямая ссылка будет зависеть от программного обеспечения на стороне клиента, чтобы фактически отображать pdf, но разве документы Google не будут делать то же самое?
Феликс Ганьон-Гренье

3
@hd. Да, Google просто отображает PDF-файл через встроенный дисплей. Я не думаю, что они хранят копию, хотя им придется переводить ее на отображение страницы за страницей, поэтому в какой-то момент я ожидаю, что они конвертируют в PNG постранично. Для тех, кто использует этот ответ, обратите внимание, что у Google есть ограничение пропускной способности для документов, не относящихся к Google Document. После исчерпания PDF-файл не отображается, только сообщение о превышении пропускной способности и повторная попытка позже.
Джон

37

вместо использования iframe и в зависимости от сторонних разработчиков подумайте об использовании flexpaper или pdf.js.

Я использовал PDF.js , у меня он отлично работает. Вот демо .


3
Как это не третья сторона?
Alex

41
Это сторонний код, а не сторонний сервис.
Коллин Андерсон

Лучшее решение для приложения для среды VPN.
Ерлан

19

предпочтительно с использованием тега объекта

<object data='http://website.com/nameoffolder/documentname.pdf#toolbar=1' 
        type='application/pdf' 
        width='100%' 
        height='700px'>

обратите внимание, что вы можете изменить ширину и высоту на любое значение, которое вы посетите http://www.w3schools.com/tags/tag_object.asp


То, что вы опубликовали, не дает более глубокого понимания ответа.
Даниэль В. Кромптон

2
вопрос заключался в том, как я могу отобразить PDF-файл в веб-браузере на странице .html? использование тега объекта html 5 поможет ... <object width = "400" height = "400" data = "helloworld.swf"> </object> Используйте этот элемент для встраивания мультимедиа (например, аудио, видео, Java-апплетов, ActiveX, PDF и Flash) на ваших веб-страницах.
BAKARI SHEGHEMBE

Вы полностью правы, однако ссылка на w3schools не дает дополнительной информации, дополняющей ответ в том виде, в котором вы его написали.
Daniël W. Crompton

Это не сработает, если в вашем браузере нет программы просмотра PDF-файлов
Умайр Хамид

1
Да это правда. Тег объекта хорош тем, что он может это обнаружить. И это позволяет вам предоставить посетителям дополнительные параметры для просмотра страницы через gdrive, onedrive и т. Д. <Object data = ' example.com/path.pdf#toolbar=1'type='application/pdf ' width = ' 100% 'height =' 700px '> <p> Похоже, ваш веб-браузер не настроен для отображения файлов PDF. Не беспокойтесь, просто <a href=' example.com/path.pdf'> нажмите здесь, чтобы загрузить файл PDF. </a> или <a href = " drive.google.com/[drive path] / view? Usp = sharing "> нажмите здесь для просмотра </a> </p> </object>
BAKARI SHEGHEMBE

19

Самый простой способ - создать iframe и указать в качестве источника URL-адрес PDF-файла.

(уклоняется от сумасшедших HTML-дизайнеров) Сделал сам, отлично работает, кроссбраузерность (залезает в бункер).


8
не работает, если у вас не установлен плагин pdf в IE
Коллин Андерсон

3
Как это очевидно? Похоже на полезное дополнение к кроссбраузерности.
showdev

1
это было намного проще настроить, чем все остальные сторонние. Я не знаю, как он работал в 2011 году, но в 2016 году он очень быстрый и полон полезных функций. Также, кажется, отлично работает в Chrome, FF и IE
slaw

1
У меня это не работает в Chrome на телефоне Android: он загружает pdf и открывает его в отдельном приложении (если оно у вас есть). И я не могу прокручивать другие страницы в Safari на iOS. Я просто вижу первую страницу pdf.
Василий Зверев

7

Плагин браузера контролирует эти настройки, поэтому вы не можете его принудительно использовать. Однако <a href="whatver.pdf">вместо <a href="whatever.pdf" target="_blank">.


Наконец, кто-то, кто знает, о чем они говорят, для этого ответа. Это лучший и самый простой ответ. @jschorr абсолютно прав. Эти настройки контролируются браузером. Наиболее эффективным!!
Val

4

Пока вы размещаете PDF-файл, целевой атрибут - это правильный путь. Другими словами, для относительных файлов использование целевого атрибута со значением _blank будет работать нормально.

<e>
  <a target="_blank" alt="StackExchange Handbook" title="StackExchange Handbook"
     href="pdfs/StackExchange_Handbook.pdf">StackExchange Handbook</a>

Для абсолютных путей двигатели будут идти к U nified R esource L ocator и открыть их. Итак, подавите целевой атрибут.

<e>
  <a alt="StackExchange Handbook" title="StackExchange Handbook"
     href="protocol://url/StackExchange_Handbook.pdf">StackExchange Handbook</a>

Браузеры отлично справятся в обоих случаях.


Это решение сработало для меня лучше, чем принятый ответ. Также следует отметить, что я работаю с некоторой конфиденциальной информацией, поэтому для меня было важно, чтобы мои документы не были общедоступными.
Каспер Уилкс,


3

Вы можете использовать этот код:

<embed src="http://domain.com/your_pdf.pdf" width="600" height="500" alt="pdf" pluginspage="http://www.adobe.com/products/acrobat/readstep2.html">

Или используйте встраиваемую программу просмотра PDF-файлов Google Docs:

<iframe src="http://docs.google.com/gview?url=http://domain.com/your_pdf.pdf&embedded=true" 
style="width:600px; height:500px;" frameborder="0"></iframe>

1

Вы также можете использовать этот простой подход GoogleDoc.

<a  style="color: green;" href="http://docs.google.com/gview?url=http://domain//docs/<?php echo $row['docname'] ;?>" target="_blank">View</a>

Это создаст новую страницу для просмотра документа без искажения потока.


Это отлично работает, спасибо. Но как быть в случае, если пользователь хочет просмотреть PDF без подключения к Интернету?
User

вы можете использовать библиотеку JQuery, такую ​​как pdf.js github.com/mozilla/pdf.js .. 2. Ознакомьтесь с PDFObject, библиотекой Javascript для встраивания PDF-файлов в HTML-файлы. Он довольно хорошо справляется с совместимостью с браузером и, скорее всего, будет работать с IE8.
Asuquo12

0

Простое решение - поместить его в iframe и надеяться, что у пользователя есть подключаемый модуль, который его поддерживает.

(Я не знаю, плагин Acrobat был настолько ресурсоемким и источником нестабильности, что я стараюсь удалить его из любого браузера, которого он касается).

Сложное, но относительно популярное решение - отобразить его во флэш-апплете.


0

Мы визуализируем страницы файлов PDF как файлы PNG на сервере с помощью JPedal (библиотеки java). Это, в сочетании с некоторым javascript, дает нам высокий контроль над визуализацией и навигацией.


Я считаю, что это здорово, но для этого нужно много ресурсов.
eveevans 08

Но пользователи не могут копировать / вставлять текст из PNG.
Василий Зверев

0

Недавно мне потребовалось предоставить более удобную для мобильных устройств и адаптивную версию документа .pdf, потому что на узких экранах телефона требовалось много прокручивать вправо и влево. Чтобы разрешить только вертикальную прокрутку и избежать горизонтальной прокрутки, у меня сработали следующие шаги:

  • Откройте .pdf в браузере Chrome.
  • Нажмите "Открыть в Google Документах".
  • Щелкните Файл> Загрузить> Веб-страница.
  • Щелкните загруженный документ, чтобы распаковать его.
  • Нажмите на распакованный HTML-документ, чтобы открыть его в браузере Chrome.
  • Нажмите fn F12, чтобы открыть Chrome Dev Tools.
  • Вставьте копию (document.documentElement.outerHTML.replace (/ padding: 72pt 72pt 72pt 72pt; /, '') .replace (/ margin-right:. *? Pt / g, '')) в консоль и нажмите Enter. скопировать измененный документ в буфер обмена
  • Откройте текстовый редактор (например, Блокнот) или, в моем случае, VSCode, вставьте и сохраните с расширением .html.

Результат выглядел хорошо, и его можно было использовать как в настольной, так и в мобильной среде.



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.