Встроенный просмотрщик PDF - PullRequest
3 голосов
/ 07 апреля 2011

Существует ли средство просмотра PDF, которое я могу встраивать в свой HTML и которое я могу стилизовать по своему усмотрению.

На самом деле мне нужно показать некоторую страницу файла PDF и настроить свой собственный пользовательский интерфейс (несколько кнопок для поворотапо страницам и комментариям).

И если есть какое-либо решение Ruby (на самом деле это не программирование, насколько я понимаю), это будет здорово.

Я хочу показать pdf, потому что:

  • Пользователь может копировать текст
  • Текст в оригинальном макете

Поэтому я не хочу отображать его в виде изображений или в виде преобразованного текста.Но я хочу показать страницу в простом дизайне.Без флекса или чего-то еще.

Ответы [ 7 ]

14 голосов
/ 31 января 2013

Да, это возможно, с HTML5!

https://github.com/mozilla/pdf.js/

Это библиотека на чистом javascript, которая использует функции HTML5 для открытия файла PDF и его рендеринга на странице. Я успешно протестировал библиотеку в следующих браузерах:

  • IE9 и текущая версия Google Chrome, Firefox, Safari
  • IE8 и ниже не поддерживают pdf.js (без функций HTML5)

Использование

Включите библиотеки javascript в файл HTML и добавьте -element (это элемент HTML5, поэтому он будет работать только в браузерах HTML5):

<body>
  <canvas id="the-canvas" style="border:1px solid black;"/>
</body>

Используйте вызов javascript, подобный этому, чтобы отобразить PDF внутри этого холста:

PDFJS.getDocument('your-file-goes-here.pdf').then(function(pdf) {
  pdf.getPage(1).then(function(page) {
    var scale = 1.5;
    var viewport = page.getViewport(scale);

    var canvas = document.getElementById('the-canvas');
    var context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    var renderContext = {
      canvasContext: context,
      viewport: viewport
    };
    page.render(renderContext);
  });
});
4 голосов
/ 07 апреля 2011

За исключением нескольких браузеров, в которых есть встроенные средства просмотра PDF (на ум приходит Chrome), отображение PDF обрабатывается внешними плагинами, над которыми у вас нет контроля.Вы не можете встраивать PDF-файл в страницу, кроме как через iframes, и даже в этом случае это полностью внешнее приложение из браузера, и оно не подчиняется правилам CSS-стилей.

Я не вижу, что есть в Rubyделать это, поскольку это будет операция на стороне сервера, а вы говорите о подготовке на стороне клиента.Вы можете использовать Ruby (или почти любой другой язык) для извлечения текста в PDF, но вы явно говорите, что не хотите этого делать.

3 голосов
/ 08 апреля 2011

Самое близкое к тому, что вы спрашиваете, будет Google Doc Viewer .По крайней мере, он не требует ничего, кроме JavaScript.

2 голосов
/ 01 февраля 2013

В качестве альтернативы вы можете конвертировать PDF в HTML5 и отображать эти страницы, используя продукт PDF2HTML5 от IDRSolutions.Вывод может быть размещен внутри вашей собственной CMS, и вы можете добавить свой собственный графический интерфейс или использовать существующие параметры.Вы можете взглянуть на потенциальный вывод на бесплатный конвертер и опробовать его, если хотите, это 100% библиотека Java, которая может быть или не быть проблемой.

Примечание: Ради прозрачности стоит упомянуть, что я в настоящее время являюсь разработчиком указанного продукта, поэтому очень хорошо знаком с его возможностями.

Стоит также отметить, что pdf.js не всегда идеально соответствует реальному pdf, но очень сложно получить точное совпадение и при этом сохранить некоторые ключевые функции, которые вы хотите.Однако большую часть времени он довольно неплохо работает.

1 голос
/ 08 апреля 2011
  • Учитывая совместимость, лучше всего использовать подлинное программное обеспечение Adobe для рендеринга PDF. Сторонние рендеры работают в большинстве случаев, но иногда возникают проблемы с некоторыми аспектами форматирования. Вы можете просто загрузить программу чтения PDF с веб-сайта Adobe, выполнить простую настройку в веб-браузере и позволить браузеру открыть файл PDF с помощью подлинного средства рендеринга PDF. По крайней мере, в Firefox вы можете сделать это.

  • Если вы хотите отображать файл PDF программно без использования веб-браузера, это означает, что вам нужен набор инструментов с графическим интерфейсом, который работает с средством визуализации PDF. Все, что я знаю, это poppler on ruby ​​/ gnome2 . Когда-то я мог использовать его с ruby ​​1.8, но поскольку я перешел на ruby ​​1.9, я не пробовал его. Другие стандартные наборы инструментов GUI для ruby: wxruby , fxruby , ruby ​​/ qt , shoes и т. Д., Но я не уверен, какой из у них есть рендерер PDF.

Извините, если не помог.

1 голос
/ 08 апреля 2011

Единственное, что мне известно об этом, - это Adobe Flashpaper (могут быть альтернативы с открытым исходным кодом? Не уверен).

Примеры здесь:

0 голосов
/ 24 октября 2017

Нет необходимости во внешних библиотеках.Многие браузеры уже поддерживают несколько способов конкурировать с PDF-файлами.Как объект, iframe, вставлять.Вы можете использовать объект с резервным элементом iframe, который в свою очередь возвращает откат при загрузке:

<object data="/pdf/sample-3pp.pdf#page=2" type="application/pdf" height="100%" width="100%">
<iframe src="/pdf/sample-3pp.pdf#page=2" style="border: none;" height="100%" width="100%">
This browser does not support PDFs. Please download the PDF to view it: <a href="/pdf/sample-3pp.pdf">Download PDF</a>
</iframe>
</object>

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...