Некорректное масштабирование PDF при отображении в поле HTML документа

1. user1906363 08.02.23 14:10 Сейчас в теме
Добрый день.
Для отображения PDF использую библиотеку PDFJS. У отображаемого документа смазываются шрифты и портится масштаб, т.к. если выгрузить его в файл, то он будет меньше исходного.
Сначала загружаю PDF из временного файла в двоичные данные. Потом преобразовываю в строку Base64.
Код использую следующий:
СтрокаPDFФайла = ПолучитьBase64СтрокуИзДвоичныхДанных(ДанныеДД);
				HTMLТекст = "<!DO CTYPE html>
				|<ht ml>
				|    <head>
				|        <met a http-equiv=""Content-Type"" content=""text/html; charset=UTF-8"" />
				|        <met a name=""viewport"" content=""width=device-width, initial-scale = 1.0, maximum-scale = 1.0, user-scalable=yes"">
				|        <sc ript src=""https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.min.js""></sc ript>
				|        <sc ript src=""https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.4.456/pdf.worker.min.js""></sc ript>
				|	     <st yle>
				|		 	
				|		 </style>
				|	   <body>
				|      <sc ript>
				|      		 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;
				|            
				|                    var viewport = page.getViewport({scale: scale});
				|            
				|                    var canvas = document.createElement( ""canvas"" );
				|                    canvas.style.display = ""block"";
				|                    canvas.height = viewport.height;
				|                    canvas.width = viewport.width;
				|                    var context = canvas.getContext('2d');
				|            
				|                    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 );
				|                    }
				|                   };
				|            
				|            });
				|      </sc ript>				
				|	   </body>
				|</html>";
Показать
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот