Javascript 在rails中打印内容(字面上是到打印机)

Javascript 在rails中打印内容(字面上是到打印机),javascript,html,ruby-on-rails,ruby-on-rails-3,Javascript,Html,Ruby On Rails,Ruby On Rails 3,我想知道Rails中是否有用于打印网页内容的库或gem,就像通过打印机打印到纸上一样。我还想知道是否有任何方法可以指定只打印页面的特定部分(例如div或其他内容)?任何指向教程的提示、建议或链接都将不胜感激 编辑 因此,我尝试创建一个样式表,它将创建一个打印友好的视图,我们称之为“print.css”: 我想知道是否只有当我的应用程序启动打印操作时,我才能应用它?这样,当单击以下链接时 应用程序在打印前应用上述css?以下是我的嵌入式ruby html中的链接: <%= link_to "

我想知道Rails中是否有用于打印网页内容的库或gem,就像通过打印机打印到纸上一样。我还想知道是否有任何方法可以指定只打印页面的特定部分(例如div或其他内容)?任何指向教程的提示、建议或链接都将不胜感激

编辑

因此,我尝试创建一个样式表,它将创建一个打印友好的视图,我们称之为“print.css”:

我想知道是否只有当我的应用程序启动打印操作时,我才能应用它?这样,当单击以下链接时 应用程序在打印前应用上述css?以下是我的嵌入式ruby html中的链接:

<%= link_to "PRINT", '#', onclick: "printpage()" %>

我认为通常的做法是打开一个“打印机友好”窗口,其中只包含所需的信息,然后用户通过web浏览器进行打印。通过在该窗口中添加一些javascript,您可以使其更加用户友好:

window.print();
我使用wkhtmltopdf和PDFKit


RailsCast将有一个完整的示例,而wkhtmltopdf是一个获取并输出PDF文档的框架实用程序。

如果您按如下方式添加print.css

<link rel="stylesheet" type="text/css" media="print" href="print.css">


使用浏览器打印对话框,它会根据打印中的样式自动格式化页面。css

我通过使用以下简单的解决方案解决了我的问题:

print.css

@媒体打印{
div.info,div#editStuff,div#导航,div#调试{
显示:无;
}
}
@media标签确保这些内容不会显示在打印版本中

application.js

函数printpage()
{
window.print()
}
show.html.erb



函数PrintDiv(){
var divToPrint=document.getElementById('divToPrint');
var popupWin=window.open(“”,"u blank’,“宽度=300,高度=300”);
popupWin.document.open();
popupWin.document.write(“”+divToPrint.innerHTML+“”);
popupWin.document.close();
}
50,:height=>30,:onclick=>“PrintDiv();”,:class=>'btn')%>

可能想看看这一点:那么您在
编辑中尝试的与此解决方案之间的区别是在print.css周围添加
@media.print{}
?您可能想更好地格式化此答案(@media.print格式不正确),它应该在打印预览时应用
print.css
,还是仅在打印的文档中应用?这对我不太管用
window.print();
<link rel="stylesheet" type="text/css" media="print" href="print.css">
<script type="text/javascript">     
        function PrintDiv() {    
           var divToPrint = document.getElementById('divToPrint');
           var popupWin = window.open('', '_blank', 'width=300,height=300');
           popupWin.document.open();
           popupWin.document.write('<html><body onload="window.print()">' + divToPrint.innerHTML + '</html>');
            popupWin.document.close();
                }
     </script>
<%= image_tag("print.jpg", :width=>50, :height=>30, :onclick=>"PrintDiv();", :class=>'btn') %>