Отображает PDF документ в HTML поле на форме через WebKit

ChOP 87 1 2 5

Осторожнее с пересылкой кода через мессенджеры/форумы, могут испортиться теги.

//Процедура отображает 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>";
	
КонецПроцедуры
Орфографическая ошибка в charset: charset
Орфографическая ошибка в viewport (найдено 6): viewport
Орфографическая ошибка в scalable: scalable
Орфографическая ошибка в currPage (найдено 4): curr
Орфографическая ошибка в pdfjsLib: pdfjs
Орфографическая ошибка в atob: atob
Орфографическая ошибка в getViewport: Viewport
Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз

Комментарии

Razlagutt
#1, 31 мая 2021 11:37

Здравствуйте! Добавьте, пожалуйста, в Вашу публикацию </head>, <body>.


Похожие публикации

ПолеHTMLПриНажатии (БСП)

ПолучитьОписаниеОшибкиWebСервиса (БСП)

Оформление (раскраска) строки табличной части обычной формы по условию, при получении данных

ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов (БСП)

ОткрытьФормуИсторииИзменений (БСП)

Модератору