2017-02-20 24 views
0

Я пытаюсь загрузить некоторые PDFS, которые будут отображаться внутри аккордеона Bootstrap. Проблема в том, что они загружаются по-разному, в зависимости от браузера. Я пытаюсь использовать теги iframe и object html с разными результатами, и у меня огромный поток в Safari, где функция аккордеона полностью ломается, когда я вставляю PDF внутри панели.Загрузить PDF внутри бутстрапа Accordion

Итак, я думаю, мой вопрос: есть ли какой-либо стандарт относительно скрещивания, чтобы сделать встроенную работу PDF в Chrome, Safari, IE11 и Firefox?

Поскольку мне нужно это для работы на мобильных устройствах, ситуация даже хуже. Некоторые советы будут действительно оценены.

+0

Взгляните на PDF.js. Он будет рендерить PDF без использования встроенных средств просмотра PDF или плагинов браузера. Это единственный способ, которым я нашел, чтобы PDF-файл отображался последовательно ... если не идеально ... в основных браузерах. Я не добавлял это как ответ, потому что он может не работать для ваших конкретных файлов PDF. – joelgeraci

+0

Я дам ему попробовать (выглядит довольно сложно для реализации tho), но любая конкретная причина, почему вы думаете, что PDF.js не будет работать для моей конкретной ситуации? Благодаря ! @joelgeraci – Lowtrux

+0

PDF.js не реализует полную спецификацию PDF. Он работает на большинстве вещей очень хорошо, но если вы используете определенные режимы прозрачности или другие продвинутые цвета, вы можете не получить те же результаты, что и в Adobe Reader. И PDF.js очень просто. URL-адрес, подобный этому, сделает трюк .... http://mozilla.github.com/pdf.js/web/viewer.html?file=compressed.tracemonkey-pldi-09.pdf – joelgeraci

ответ

0

Создайте элемент холста с классом «панель-тело» и укажите его по вашему выбору. Затем добавьте следующий код к событию, готовому к документу.

PDFJS.getDocument('YOURPDF.pdf').then(function(pdf) { 
    pdf.getPage(1).then(function(page) { 
     var scale = 1; 
     var viewport = page.getViewport(scale); 
     var canvas = document.getElementById('pdfOne'); // The id of your canvas 
     var context = canvas.getContext('2d'); 
     canvas.height = viewport.height; 
     canvas.width = viewport.width; 
     var renderContext = { 
      canvasContext: context, 
      viewport: viewport 
     }; 
     page.render(renderContext); 
    }); 
}); 

Это будет отображаться на первой странице. Вам нужно будет создать кнопки, позволяющие пользователю перемещаться по документу, но это должно быть достаточно легко, чтобы работать на основе того, что я предоставил, и образцов.

+0

спасибо большое @joelgeraci – Lowtrux