We are on 2016, so without REST it wouldn’t be very feasible to delve into. I’ve got it working by creating the report with SubmitToAgent, then calling a BAQ to fetch the RptData column from the Ice.SysRptLst table based on certain criteria. I send that pdf binary to the client, where I open the PDF in a new tab.
let pdfWindow = window.open("");
pdfWindow.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64, " + encodeURI(data[0]['SysRptLst_RptData']) + "'></iframe>" );