Source: io/export/pdf.js

let AbstractExporter = require('./abstractExporter');
let FileSaver = require('file-saver');

class PdfExporter extends AbstractExporter {
   constructor(params) {
      super(params);
   }

   /**
    * Метод выполняет сохранение изображения карты в файл с расширением pdf с заданным именем
    * @param {object} params
    * @param params.fileName {string} - имя файла для сохранения
    */
   saveAs(name) {
      let self = this;
      let params = self.params;
      let fileName = name !== undefined ? name + ".pdf" : params.name + ".pdf";
      let map = params.map;

      map.once('postcompose', function (event) {
         let canvas = event.context !== null ? event.context.canvas : event.glContext.getGL().canvas;
         if (navigator.msSaveBlob) {
            navigator.msSaveBlob(canvas.msToBlob(), fileName);
         }
         else {
            canvas.toBlob(function (blob) {
               FileSaver.saveAs(blob, fileName);
            });
         }
      });
      map.renderSync();
   }
}

module.exports = PdfExporter;