Есть ли способ повернуть PDF на 90 градусов перед печатью с помощью API FluentReports? - PullRequest
0 голосов
/ 17 мая 2019

Я создаю отчет на своем сервере, используя fluentreports, и отправляю его клиенту для печати. У меня уже есть все, что работает, но формат для печати все еще не подходит для моего начальства, поскольку бумага, которую они используют в бизнесе, наполовину легальна, и если отчет печатается в портретном режиме, как я его сейчас настроил, он выигрывает ». не подходит под бумагу, которую они используют. Мне нужно сгенерировать отчет в портретной ориентации, так как мне нужно, чтобы информация отображалась таким образом, однако я хотел бы знать, могу ли я в любом случае повернуть документ на 90 градусов перед печатью, чтобы он мог уместиться на бумаге, которую я должен использовать используя API FluentReports. Есть ли какое-либо свойство в «опциях», которое я могу использовать для того, чтобы это произошло?

функция, которая печатает PDF на клиенте:

printIframe: function(url) {
      var proxyIframe = document.createElement('iframe');
      var body = document.getElementsByTagName('body')[0];
      body.appendChild(proxyIframe);
      proxyIframe.style.width = '100%';
      proxyIframe.style.height = '100%';
      proxyIframe.id='iframe'
      proxyIframe.style.display = 'none';

      var contentWindow = proxyIframe.contentWindow;
      contentWindow.document.open();

      // Set dimensions according to your needs.
      // You may need to calculate the dynamically after the content has loaded
      contentWindow.document.write('<iframe src="' + url + '" width="1000" height="1800" frameborder="0" marginheight="0" marginwidth="0">');
      contentWindow.document.close();
      var x=0
      var func=function (event) {
        if(x===0)
        {
          body.removeChild(proxyIframe)
          ++x
        }
        else
        {
          document.removeEventListener('mousemove', func)
        }
      }
      contentWindow.document.body.onload=() => {
        contentWindow.document.body.focus()
        setTimeout(()=>{
          document.addEventListener('mousemove', func)
        }, 5000)
      }
    },

Код на сервере, который генерирует отчет:

var options = {
              landscape: true,
              data: rows,
              paper: 'A5',
              autoPrint: true,
              fullScreen: true
            }
            var myreport=new Report.Report("buffer", options)
              .data(rows)
              .pageHeader(repairheaderFunction)
              .detail(repairdetailFunction)
              .pageFooter(repairfooterFunction)
            myreport.render(function (err, data) {
              callbackfn({authenticated: true, pdf: 'data:application/pdf;base64,' + data.toString('base64')})
            })
...