Подтвердить что ты не робот

Печать материалов в рельсах (буквально на принтер)

Мне интересно, есть ли в Rails библиотека или драгоценный камень для печати содержимого веб-страницы, как буквально на бумаге через принтер. Мне также интересно, можно ли указать, что будет напечатана только определенная часть страницы (например, div или что-то еще)? Любые указатели, советы или ссылки на учебные пособия будут оценены!

ИЗМЕНИТЬ

поэтому я сделал удар по созданию таблицы стилей, которая создаст дружественный для печати вид, позвольте называть его "print.css":

div.transpose-keys, div#editSong, div#navigation, div#debug{
    display: none;
}

И мне было интересно, можно ли применить его только тогда, когда мое приложение вызывает действие печати? Таким образом, когда нажата следующая ссылка приложение применяет css выше перед печатью? Здесь ссылка в моем встроенном ruby ​​html:

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

И, наконец, мой javascript вызывает функцию печати:

function printpage()
  {
  window.print()
  }
4b9b3361

Ответ 1

Если вы добавите print.css следующим образом

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

и используйте диалог печати браузера, он должен автоматически форматировать страницу в соответствии со стилем в print.css

Ответ 2

Я воспользовался этим простым решением:

print.css

@media print {
  div.info, div#editStuff, div#navigation, div#debug {
    display: none;
  }
}

тег @media гарантирует, что они не будут отображаться в печатной версии

application.js

function printpage()
{
   window.print()
}

show.html.erb

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

Ответ 3

<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') %>

Ответ 4

Я полагаю, что это обычно делается, чтобы открыть окно, удобное для печати, с только необходимой информацией на нем, и оттуда пользователь печатает через свой веб-браузер. Вы можете сделать его более удобным для пользователя, добавив в него несколько javascript:

window.print();