批量打印
如何实现批量打印,通过勾选多选框如果要前端调用的话,有几个先简单给您说一下,因为前端打印受限于浏览器,必须有浏览器打印框。所以还没办法一次打印多套模板。
还是要一个模板一个模板的手选确定。
所以咱们如果想要直接选了就直接打印,得搭配服务端的程序,去调用电脑的打印驱动。
前端方法基于我们的JS,所以需要先引入对应的JSViewer的相关JS即可。
1.首先浏览器根据模板调用打印,可以使用这个:
GrapeCity.ActiveReports.JSViewer.print({ reportID: '测试导出.rdlx'})
可以直接调用出打印。
如果咱们想实现无预览批量,推荐您其实批量导出PDF。然后把PDF流传给打印程序。
后端导出返回pdf流的代码,可以参考:
public async Task<IActionResult> getPDF(string reportName)
{
String path = Path.Combine(Directory.GetCurrentDirectory(), "resources" + Path.DirectorySeparatorChar);
// Provide the page report you want to render.
System.IO.FileInfo rptPath = new System.IO.FileInfo(path + reportName);
GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport(rptPath);
GrapeCity.ActiveReports.Export.Pdf.Page.Settings pdfSetting = new GrapeCity.ActiveReports.Export.Pdf.Page.Settings();
pdfSetting.FallbackFonts = "SimSun";
// Set the rendering extension and render the report.
PdfRenderingExtension pdfRenderingExtension = new PdfRenderingExtension();
StreamProvider outputProvider = new MemoryStreamProvider();
await Task.Run(() => { pageReport.Document.Render(pdfRenderingExtension, outputProvider, pdfSetting); });
return new FileStreamResult(outputProvider.GetPrimaryStream().OpenStream(), "application/pdf");
}然后前端用这个PDF流去打印。
打印程序可以参考这个,我们测试用的一个第三方的打印程序:
https://gcdn.grapecity.com.cn/showtopic-158871-1-1.html
这个里面有一个打印程序:
启动后给调用接口
传递pdf流即可打印
【新提醒】Web端在线设计器项目实际分享 - ActiveReports专区 - 专题教程 - 葡萄城开发者社区https://gcdn.grapecity.com.cn/fo ... 4262&extra=page%3D1
是自己做的选择框还是 wengMQ 发表于 2024-9-1 22:21
【新提醒】Web端在线设计器项目实际分享 - ActiveReports专区 - 专题教程 - 葡萄城开发者社区https://gcd ...
是自己做的选择框 Felix.Li 发表于 2024-9-2 14:30
如果要前端调用的话,有几个先简单给您说一下,因为前端打印受限于浏览器,必须有浏览器打印框。所以还没办 ...
谢谢您的解答,我这边试试 小白A 发表于 2024-9-2 22:08
谢谢您的解答,我这边试试
OK,您先试试,有问题您及时追贴回复。
页:
[1]