使用幻影-pdf 渲染 jsreport 时收到的响应显示 UTF 字符



以下是用于呈现pdf报告的代码

'

exports.renderReport_ICE = function(req, res){
var finalReports = req.body.finalreports;
var reportType = req.body.reporttype;
var shortId;
if(reportType == "html") shortId = "rkE973-5l";
else shortId = "H1Orcdvhg";
var client = require("jsreport-client")("http://"+IP+":3001/");
client.render({
template: {
shortid: shortId,
recipe: reportType,
engine: "handlebars"
},
data: {
"overallstatus": finalReports.overallstatus,
"rows": finalReports.rows
}
}, function(err, response) {
if (err) {
console.log('error when trying to render report:', err);
}
else{
response.pipe(res);
}
});
}

'

我的角度代码是,

'

reportService.renderReport_ICE(finalReports, reportType)
.then(function(data1) {
var path = "/specificreports";
openWindow = 0;
if(openWindow == 0)
{
var myWindow = window.open();
myWindow.document.write(data1);
}
openWindow++;
$('.formatpdfbrwsrexport').remove();
},
function(error) {
console.log("Error-------"+error);
})

'

以下是浏览器中显示的 UTF

%PDF-1.4 1 0 obj <</标题 ( )/创作者 ( )/制作人 ( Qt 4.8.4 (C) 2011 诺基亚公司和/或其子公司/创建日期 (D:20170328144424+05'30')>> endobj 3 0 obj <</type/ExtGState/SA true/SM 0.02/ca 1.0/CA 1.0/AIS false/SMask/None>> endobj 4 0 obj [/Pattern/DeviceRGB] endobj 5 0 obj <</type/page/parent 2 0 R/目录 8 0 R/资源 10 0 R/Annots 11 0R/MediaBox [0 0 595 842]>> endobj 10 0 obj <</ColorSpace <</PCSp 4 0 R/CSp/DeviceRGB/CSpg/DeviceGray>>/ExtGState <</GSa 3 0 R>>/Pattern <<>>/Font <</F6 6 0 R/F7 7 0 R>>/XObject <<>>>> endobj 11 0 obj [ ] endobj 8 0 obj <</Length 9 0 R/Filter/FlateDecode>> stream x [ n 6 +x. CR l ) C z(z( ۢ %-ڢ Y i % p = gH _O>

我遇到了同样的问题,我所做的克服是在控制器中调用响应。我正在使用 ASP.NET 酷睿 1.1

public async Task<IActionResult> GetPdf([FromServices] INodeServices nodeServices)
{ var theresult = await nodeServices.InvokeAsync<byte[]>("./pdf.js", requestUri);
return new FileStreamResult(new MemoryStream(theresult), "application/pdf");
}

其中:pdf.js是你的js文件帽子的名称,有jsreport代码。 在下面的链接中添加节点服务的说明。

我引用了这个链接: http://neil.red/coding/export-html-to-pdf-in-dot-net-core/

最新更新