Відображення PDF у веб-браузері


84

Як можна відобразити PDF-файл у веб-браузері на сторінці .html?

Відповіді:


120

Я використовую вбудований переглядач 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 docs?
Фелікс Ганьон-Греньє

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

36

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

Я використовував PDF.js , він у мене чудово працює. Ось демонстрація .


3
Як це не третя сторона?
Алекс

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


Подібне, яке ви опублікували, більше не дає розуміння відповіді.
Daniël W. Crompton

2
питання полягало в тому, як я можу відобразити PDF у веб-браузері на сторінці .html? використання тегу об’єкта html 5 допоможе ... <object width = "400" height = "400" data = "helloworld.swf"> </object> Використовуйте цей елемент для вбудовування мультимедіа (наприклад, аудіо, відео, аплети Java, ActiveX, PDF та Flash) на ваших веб-сторінках.
БАКАРІ ШЕГЕМБЕ

Ви повністю праві, проте посилання на w3schools більше не містить жодної інформації, яка доповнює відповідь, як ви її написали.
Daniël W. Crompton

Це не спрацює, якщо у вашому браузері немає переглядача pdf
Umair Hamid

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/ [драйв-шлях] / view? Usp = обмін "> натисніть тут, щоб переглянути </a> </p> </object>
BAKARI SHEGHEMBE

19

Найпростіший спосіб - створити iframe і встановити для джерела URL-адресу PDF.

(качки божевільні HTML-дизайнери) Зробив це сам, чудово працює, перехресний браузер (заповзає в бункер).


8
не працює, якщо у вас не встановлено плагін pdf в IE
Коллін Андерсон

3
Як це очевидно? Здається корисним додатком до "крос-браузера".
showdev

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

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

7

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


Нарешті хтось, хто знає, про що вони говорять для цієї відповіді. Це найкраща відповідь і найпростіша. @jschorr абсолютно правильний. Ці налаштування контролює браузер. Найефективніший !!
Валь

4

Поки ви розміщуєте PDF, атрибут target - це шлях. Іншими словами, для відносних файлів використання атрибута target зі значенням _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 і відкрити їх. Отже, придушити атрибут target.

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

В обох випадках браузери зможуть добре попрацювати.


Це рішення працювало для мене набагато краще, ніж прийнята відповідь. Слід також зазначити, що я працюю з певною конфіденційною інформацією, тому для мене важливим було відсутність моїх документів у відкритому доступі.
Casper Wilkes


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 без підключення до Інтернету?
Користувач

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

0

Просте рішення полягає в тому, щоб помістити його у фрейм і сподіватися, що у користувача є плагін, який його підтримує.

(Ні, плагін Acrobat був настільки ресурсним джерелом та джерелом нестабільності, що я хотів би видалити його з будь-якого браузера, до якого він торкається).

Складне, але відносно популярне рішення - відобразити його у флеш-аплеті.


0

Ми відображаємо сторінки файлів PDF як файли PNG на сервері за допомогою JPedal (бібліотеки Java). Це в поєднанні з деяким javascript дає нам високий контроль над візуалізацією та навігацією.


Я думаю, це чудово, але потребує великих ресурсів.
eveevans

Але користувачі не можуть копіювати / вставляти текст із 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.