如何在Angular中单击按钮发送pdf以进行打印?

时间:2019-01-02 09:19:21

标签: javascript angular

我需要为Angular 6应用程序实现打印操作。将从服务中获取pdf,然后单击按钮,我需要将其发送到打印。 PDF将没有预览。因此,我不能使用PDF的打印选项。有人可以在这方面帮助我吗?

我尝试了print.js和jsPdf。 jsPdf需要下载pdf,然后将其打开以进行打印。但是我需要通过单击按钮来完成。 Print.js抛出此错误- (我正在使用Chrome)

ERROR DOMException: Blocked a frame with origin "http://localhost:4200" from accessing a cross-origin frame.
at performPrint (http://localhost:4200/modules-deposit-dashboard-deposit-dashboard-module.js:1025:33)
at finishPrint (http://localhost:4200/modules-deposit-dashboard-deposit-dashboard-module.js:1061:5)
at HTMLIFrameElement.printFrame.onload [as __zone_symbol__ON_PROPERTYload] (http://localhost:4200/modules-deposit-dashboard-deposit-dashboard-module.js:980:11)
at HTMLIFrameElement.wrapFn (http://localhost:4200/polyfills.js:12361:39)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:4200/polyfills.js:11594:31)
at Object.onInvokeTask (http://localhost:4200/vendor.js:42637:33)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:4200/polyfills.js:11593:36)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (http://localhost:4200/polyfills.js:11361:47)
at ZoneTask.push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (http://localhost:4200/polyfills.js:11669:34)
at invokeTask (http://localhost:4200/polyfills.js:12713:14)

1 个答案:

答案 0 :(得分:1)

对于打印,您需要将文件加载到一个框架内的单独窗口中,然后才能将其发送到打印机进行打印。