Я создаю отчет на своем сервере, используя 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')})
})