1С 8.3 Отобразить PDF в HTML
Данные > Примеры кода 1С > 1С 8.3 HTML
Перейти в раздел примеры кода 1С 8.3:
Процедура через WebKit отображает PDF документ на форме в поле HTML.
Отобразить PDF в HTML через WebKit из 1С 8.3:
Процедура Отобразить_PDF_в_HTML(HTMLДок, Данные) Экспорт
// Параметры:
// HTMLДок - Поле HTML документа - поле, в которое надо вывести pdf.
// Данные - Двоичные данные - pdf документ.
// Параметры:
// HTMLДок - Поле HTML документа - поле, в которое надо вывести pdf.
// Данные - Двоичные данные - pdf документ.
// Внимание! При копировании в 1С могут некорректно вставиться данные(метатеги)
PDFФайлСтрока = ПолучитьBase64СтрокуИзДвоичныхДанных(Данные);HTMLДок = "<!DOCTYPE html>
|<html>
| <head>
| <meta http-equiv=""Content-Type"" content=""text/html; charset=UTF-8"" />
| <meta name=""viewport"" content=""width=device-width, initial-scale = 1.0, maximum-scale = 1.0, user-scalable=no"">
| <script src=""https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.min.js""></script>
| <script src=""https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.worker.min.js""></script>
| <canvas id=""the-canvas""></canvas>
| <script>
| var currPage = 1; //Pages are 1-based not 0-based
| var numPages = 0;
| var thePDF = null;
|
| var loadingTask = pdfjsLib.getDocument({data: atob(`"+PDFФайлСтрока+"`)});
| loadingTask.promise.then(function(pdf) {
|
| thePDF = pdf;
| numPages = pdf.numPages;
|
| pdf.getPage(1).then(handlePages);
|
| function handlePages(page) {
| var scale = 1.5;
|
| var viewport = page.getViewport({scale: scale});
|
| var canvas = document.createElement( ""canvas"" );
| canvas.style.display = ""block"";
| var context = canvas.getContext('2d');
| canvas.height = viewport.height;
| canvas.width = viewport.width;
|
| var renderContext = {
| canvasContext: context,
| viewport: viewport
| };
| var renderTask = page.render(renderContext);
|
| document.body.appendChild( canvas );
|
| currPage++;
| if ( thePDF !== null && currPage <= numPages )
| {
| thePDF.getPage( currPage ).then( handlePages );
| }
| };
|
| });
| </script>
| </body>
|</html>";
КонецПроцедуры
3
комментарии
Владимир
16 ноя 2024
Дай Бог Вам здоровья, добрый человек! У меня заработало!
Андрей
22 май 2023
При выводе пдф на форму нет возможности выделять текст, как это можно поправить?
Олег
17 апр 2023
А для отображения, нужна публикация на веб-сервере ?
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник