Осторожнее с пересылкой кода через мессенджеры/форумы, могут испортиться теги.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
//Процедура отображает PDF документ в HTML поле на форме через WebKit: // // Параметры: // HTMLДокумент - Поле HTML документа - поле, в которое надо вывести pdf. // // ДвоичныеДанные - Двоичные данные - pdf документ. // Процедура ОтобразитьPDF(HTMLДокумент, ДвоичныеДанные) Экспорт Строка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>"; КонецПроцедуры |
Источник: https://forum.infostart.ru