Печать материалов в рельсах (буквально на принтер)
Мне интересно, есть ли в 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()
}
Ответы
Ответ 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();
Ответ 5
Я использую wkhtmltopdf, http://code.google.com/p/wkhtmltopdf/ и PDFKit, http://railscasts.com/episodes/220-pdfkit.
У RailsCast будет полный пример, в то время как wkhtmltopdf - это утилита для стойки, которая захватывает и выводит документ PDF.