Некорректное масштабирование 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>";
Показать
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
В этой теме еще нет сообщений.
Оставьте свое сообщение
Вакансии
Аналитик-консультант 1C:ERP
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день

Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Программист 1С (ERP, УХ, КА 2, УТ 11), удаленно
Москва
зарплата от 160 000 руб.
Полный день

Аналитик 1С
Москва
зарплата от 200 000 руб.
Полный день

Консультант 1С / Специалист поддержки 1C
Екатеринбург
зарплата от 70 000 руб.
Полный день