Как сохранить масштаб PDF документа при загрузке с помощью библиотеки PDFJS

Необходимо в поле HTML документа отобразить PDF документ в натуральную величину. Так же он должен в натуральную величину выгружаться назад в файл. Загружаю PDF с помощью библиотеки PDFJS. Если в предпросмотре всё выглядит более-менее адекватно, то при выгрузке в файл изображение размывается. Я знаю, что, можно использовать тег но это не мой случай, так как просмотрщика на компьютере может не быть а документ отобразить всё равно нужно. Версия платформы - 8.3.17, так что использовать объект ДокументPDF тоже не получится.

Использую следующий код:

Строка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>";

Ответы (0 шт):