如何从groovy webApp在客户端打印pdf?

时间:2017-06-12 14:07:23

标签: javascript java groovy itext

我知道开发一个webapp,用于创建pdf文档并在客户端打印。 这是我的问题:

我使用itext创建了pdf并将其存储在共享文件夹中。我是在服务器端做的。 现在我需要在客户端打印创建的pdf,客户端知道pdf的路径并可以访问它。 为了在客户端,我试图使用javascript或jquery打印该文档。

我尝试在我的HTML中使用嵌入但它不起作用。

求助,

这是服务器端的工作代码:

FileInputStream fis = new FileInputStream("test.pdf");
    DocFlavor psInFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc pdfDoc = new SimpleDoc(fis, psInFormat, null);
    PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();  
    PrintService services = PrintServiceLookup.lookupDefaultPrintService(); 
    DocPrintJob job = services.createPrintJob(); 
    job.print(pdfDoc, aset); 

以下是我在客户端尝试的内容:

                                   // Grabs the Iframe  
                                    document.write('<embed type="application/pdf" src="\\SN782629\TempPartage\test.pdf" id="PDF" name="PDF" width="100%" height="100%" />');
                                    var ifr = document.getElementById("PDF");
                                    //PDF is completely loaded. (.load() wasn't working properly with PDFs)
                                    ifr.onreadystatechange = function() {
                                        if (ifr.readyState == 'complete') {
                                            ifr.contentWindow.focus();
                                            if ($.browser.msie) {
                                                document.execCommand('print', false, null);
                                            } else {
                                                window.print();
                                            }
                                        }
                                ifr.parentNode.removeChild(ifr);

第二个代码在ajax请求的成功部分,我可以根据需要放置整个函数。

1 个答案:

答案 0 :(得分:0)

fyi:Recommended way to embed PDF in HTML?

另一点:当将本地文件系统中的pdf包含到通过HTTP加载的页面时,您将在不同的浏览器中遇到很多限制。

我建议您在服务器上通过网址公开您的pdf。例如http://myhost/getPdf/SN782629/TempPartage/test.pdf而不是“”\ SN782629 \ TempPartage \ test.pdf“并在渲染页面中使用此链接。