Как использовать base64 или getBuffer на PDFmake и получать данные - PullRequest
0 голосов
/ 11 июня 2019

Я хочу сохранить сгенерированный файл pdfmake на сервере.

Я пробовал другое решение, но буфер или base64 всегда возвращают пустую строку.Я могу создать файл, но он пуст.

Но я могу создать файл pdfmake и скачать его, и он идеален.

    <script type='text/javascript'>
        window.onload = function getscreenshot() {
        html2canvas(document.getElementById('container'), {
        onrendered: function (canvas) {
            var data = canvas.toDataURL();
            var docDefinition = {
                content: [{
                    image: data,
                    width: 500,
                }]
            };

            pdfMake.createPdf(docDefinition).download('Bekraeftelse' + ".pdf");

            var data2;
            var pdfDocGenerator = pdfMake.createPdf(docDefinition).ba;
            pdfDocGenerator.getBuffer((buffer) => {
                data2 = buffer;

            });





                  $.ajax({
                  url: 'Invoice.aspx?pdfinput=1',
                  type: 'post',
                  async: false,
                  contentType: 'application/json; charset=utf-8',
                  data: data2,
                  dataType: 'json'
              });
        }
    });
  }
  </script>


       var pdfinput = Request.QueryString["pdfinput"];
        if (pdfinput != null)
        {
            var jsonString = string.Empty;
            HttpContext.Current.Request.InputStream.Position = 0;
            using (var inputStream = new StreamReader(Request.InputStream))
            {
                jsonString = inputStream.ReadToEnd();
            }
            var byteArray = Convert.FromBase64String(jsonString);
            //Get your desired path for saving file
            File.WriteAllBytes(Server.MapPath("/PDF/Ordre/" + "Test1.pdf"), byteArray);
        }

Как я уже писал, я исключаю строку возврата излибо буфер, либо строка.

...