# Printing with rails

**URL:** <https://www.ruby-forum.com/t/printing-with-rails/155048>\
**Category:** Rails\
**Created:** [December 6, 2008, 11:12pm UTC](https://www.ruby-forum.com/t/printing-with-rails/155048 "2008-12-06T23:12:22Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [December 6, 2008, 11:12pm UTC](https://www.ruby-forum.com/t/printing-with-rails/155048/1 "2008-12-06T23:12:22Z")

</div>

Hello,

I have a button which when clicks sends exam\_id to server. The method  
queries results of all the students who has appeared in this exam (No.  
of  
student \> 30). I want to now print this data at client side. I am  
confused  
how do I achieve this? I dont want to display this data at client  
side…  
instead, I just want to show a progress bar that printing in progress  
and  
once I get all the data from server, I need to print it.

Any pointers to get started on this?

–  
Thanks,  
Jaikishan

---

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [December 7, 2008, 3:55pm UTC](https://www.ruby-forum.com/t/printing-with-rails/155048/2 "2008-12-07T15:55:56Z")

</div>

Maybe what you could do is to generate the data to be printed in a  
document that the user could download, then you send a page with a  
button to download it as a file that then they could print, but I  
guess this defeats the purpose of ‘automating’ the printing of the  
data.

Pepe

On Dec 6, 5:25 pm, “Maurício Linhares” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [December 6, 2008, 11:25pm UTC](https://www.ruby-forum.com/t/printing-with-rails/155048/3 "2008-12-06T23:25:51Z")

</div>

This is not possible.

You don’t tell the client to “print” something, you may write  
javascript code to print the current page, but you can not print  
something without sending it to the client (and asking the browser to  
print it).

What you may do is try to hide the content in the page until a “print”  
button is clicked, but the data has to be visible somewhere on the  
page to be printed.

The javascript code to tell the browser to print is “window.print()”.

- 

Maurício Linhares  
[http://alinhavado.wordpress.com/](http://alinhavado.wordpress.com/) (pt-br) | [http://blog.codevader.com/](http://blog.codevader.com/)  
(en)

---

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [December 7, 2008, 4:00pm UTC](https://www.ruby-forum.com/t/printing-with-rails/155048/4 "2008-12-07T16:00:02Z")

</div>

Here is what I did - something similar to what Mauricio said. I made a  
link\_to\_remote and when user clicks on it, it updates a div  
(display:none)  
with the data from the server. Using :complete attribute of  
link\_to\_remote,  
I call a javascript function which then creates a window taking data  
from  
the hidden div and then print the window via window.print() command.

It is working fine and giving me exactly what I wanted. Thanks for your  
help.

On Sun, Dec 7, 2008 at 8:24 PM, pepe [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> wrote:
> 
> > > I have a button which when clicks sends exam\_id to server. The method  
> > > Any pointers to get started on this?
> > 
> > > –  
> > > Thanks,  
> > > Jaikishan

–  
Thanks,  
Jaikishan
