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

86

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

CodeGuy
источник

Ответы:

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>
Bradenkeith
источник
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
источник
Наконец, кто-то, кто знает, о чем они говорят, для этого ответа. Это лучший и самый простой ответ. @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>

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

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

Вы также можете встроить, используя JavaScript, через стороннее решение, такое как PDFObject .

Нильс Магне Лунде
источник
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>

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

Asuquo12
источник
Это отлично работает, спасибо. Но как быть в случае, если пользователь хочет просмотреть 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.

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

Маркус
источник
-4

Вы пробовали использовать простой тег img?

<img scr="https://www.typomania.co.uk/pdfs/lipsum.pdf">
Мэт Барнетт
источник
Кто-нибудь знает, как это поддерживается?
Берт Брюнооге
1
Это невозможно.
Энрике Ван Клаверен,