Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何打印从服务器接收的html页面?_Javascript_Html_Ajax_Node.js - Fatal编程技术网

Javascript 如何打印从服务器接收的html页面?

Javascript 如何打印从服务器接收的html页面?,javascript,html,ajax,node.js,Javascript,Html,Ajax,Node.js,我正在尝试打印一个HTML页面,该页面是我在服务器上使用Node.js生成的。我将页面作为对AJAX请求的响应带到客户端,并将其保存在javascript变量中 var resp_json=printRequest.getResponseJson 现在我正在尝试打印呈现的HTML页面,即不带标记,而不是将要发送的DOM对象 我读过关于window.print的文章,但它只在浏览器中打印当前页面。有人能给我一个方法吗 另外,在节点上生成HTML页面是正确的方法,或者应该是任何其他类型的文档。页面应

我正在尝试打印一个HTML页面,该页面是我在服务器上使用Node.js生成的。我将页面作为对AJAX请求的响应带到客户端,并将其保存在javascript变量中

var resp_json=printRequest.getResponseJson

现在我正在尝试打印呈现的HTML页面,即不带标记,而不是将要发送的DOM对象

我读过关于window.print的文章,但它只在浏览器中打印当前页面。有人能给我一个方法吗

另外,在节点上生成HTML页面是正确的方法,或者应该是任何其他类型的文档。页面应该在节点上动态生成,最终结果应该是打印的文档。 提前谢谢

另外,我正在使用闭包库,不要问为什么,我已经决定了


p.p.S.我对javascript和node.js相当陌生,所以不要害怕长篇大论,我洗耳恭听

常见做法是打开包含要打印内容的新浏览器窗口,然后调用窗口。打印常见做法是打开包含要打印内容的新浏览器窗口,然后调用窗口。打印您可以使用

使用它,您可以直接从url或通过文件从任何页面呈现pdf。它会将页面呈现为pdf,然后您可以打印整个pdf

注意:您可以打印一页或连接多页。

您可以使用

使用它,您可以直接从url或通过文件从任何页面呈现pdf。它会将页面呈现为pdf,然后您可以打印整个pdf

注意:您可以打印一页或连接多页。

无需弹出窗口

带弹出窗口

如果由于某种原因无法使用,请在打印前添加以下行

popupWindow.window.location.reload(); 
在打印之前,还需要将json对象转换为字符串

JSON.stringify(jsonObject)
但要使所有这些都起作用,浏览器必须能够将其作为HTML页面读取,以便能够呈现它。JSON对象无法工作。

没有弹出窗口

带弹出窗口

如果由于某种原因无法使用,请在打印前添加以下行

popupWindow.window.location.reload(); 
在打印之前,还需要将json对象转换为字符串

JSON.stringify(jsonObject)

但要使所有这些都起作用,浏览器必须能够将其作为HTML页面读取,以便能够呈现它。JSON对象无法工作。

您可以创建一个iframe,将html页面添加到iframe.src,然后调用print:

window.frames[yourIframeName].focus();
window.frames[yourIframeName].print();

您可以创建iframe,将html页面添加到iframe.src,然后调用print:

window.frames[yourIframeName].focus();
window.frames[yourIframeName].print();


这是一个选项,但它会先显示页面,然后再打印,这是我试图避免的。如果情况变得更糟,这就是我决定采用的方式。这是一种选择,但它会在打印页面之前先显示页面,这是我试图避免的。如果情况变得更糟,这就是我决定采用的方式。@Amo渲染应该在服务器端执行。如果我这样做,我将不得不向客户端发送一个pdf文件,从那里我可以去哪里?你可以在服务器端执行wkhtmltopdf,这就是我要做的。好吧,假设我这样做了,我将如何在客户端打印pdf文件?如何通过javascript打开文件的打印提示?使用服务器端脚本或应用程序打印,您可以使用表单或get或任何客户机-服务器通信形式从网页调用这些脚本或应用程序。然后可以将文件发送到客户端。@Amo渲染应该在服务器端执行。如果我这样做,我将不得不向客户端发送一个pdf文件,从那里我可以去哪里?你可以在服务器端执行wkhtmltopdf,这就是我要做的。好吧,假设我这样做了,我将如何在客户端打印pdf文件?如何通过javascript打开文件的打印提示?使用服务器端脚本或应用程序打印,您可以使用表单或get或任何客户机-服务器通信形式从网页调用这些脚本或应用程序。然后,您可以将文件发送到客户端。它不起作用。首先,我必须在浏览器上允许弹出窗口,这是一个很大的禁忌。其次,在我允许弹出窗口并在其中打印我的页面后,它打开了一个弹出窗口,但打印提示没有出现。引用错误:未定义弹出窗口检查变量名称。我添加了一个没有弹出窗口的解决方案。如果它对你有用的话,试试看。没有弹出窗口的方法工作得很好,只是有点小问题。只有在用户在打印提示下按“确定”后,才会显示原始页面,直到显示要打印的html文档。是。很抱歉。一个优雅的解决方案是使用htmlString打开一个隐藏的iframe,然后打印它。您的当前页面将完全不受影响。如果有帮助的话,请接受这个答案。它不起作用。首先,我必须在浏览器上允许弹出窗口,这是一个很大的禁忌。其次,在我允许弹出窗口并在其中打印我的页面后,它打开了一个弹出窗口,但打印提示没有出现。引用错误:未定义弹出窗口检查变量名称。我添加了一个没有弹出窗口的解决方案。试试看它是否适合你
没有弹出式方法的e工作得很好,只是有一点小问题。只有在用户在打印提示下按“确定”后,才会显示原始页面,直到显示要打印的html文档。是。很抱歉。一个优雅的解决方案是使用htmlString打开一个隐藏的iframe,然后打印它。您的当前页面将完全不受影响。如果答案有帮助,请接受。