I normally use a desktop feed reader, but I’ve recently been trying out web based feed readers. Google Reader seems to be the best, but it lacks the ability to print more than one full text item in the Expanded View. A simple hack to the Google Reader Print Button script for Greasemonkey fixes this.

The Problem

I find printing multiple full text entries useful when catching up with feeds I’ve gotten behind on. Unfortunately, Google Readeronly prints the currently selected item. There is no way to select more than one item.

Bloglinesdoes allow you to print multiple entries, so I’ve been using Google Reader to read feeds I’m up to date with, and using Bloglines to print feeds for those I’m not. Messy!

Google Reader Print Button

Enter K-IntheHouse over at ShanKri-la, who has a habit of making my life easier by writing about Firefox extensions I don’t know about. This time he mentioned the Google Reader Print Button script in his Top 15 Greasemonkey Scripts for GMail & Google Reader post. The description (from userscripts.org) sounded promising:

Add a print button to Google Reader at the bottom bar (with Previous/Next Item). This button open a new window with the content of the selected item, and launches the printing window. If no item is selected, prints all loaded items.

I installed this ASAP. The initial results were a little disappointing. In Google Reader’s List View, it prints all items loaded (Google Reader doesn’t load all items until you scroll down), but it only prints a one line summary.

When you first go to the Expanded View, it prints the full text for all items loaded. However, there may may only be a handful of items loaded and as soon as you scroll down, Google Reader automatically selects an item. After this, it will only print the full text for the one item that is selected.

Note: The Print Button doesn’t appear for me if I just log into Google Reader and click on a Feed. I need to enter the http://www.google.com/reader/view/ URL in the address bar (and press Enter), then click on a Feed for the button to appear.UPDATE: A solution for this can be found in the comment left by Jay below

Hacking The Script

Thankfully, this problem can be easily solved by making a very simple hack to the script. Here are the steps (assuming you have installed the script):

Right-Click on the Greasemonkey icon in Firefox

Click Manage User Scripts and a dialog box will open

Select Google Reader Print Button from the list

Click the Edit button (at the bottom of the dialog box)

If asked for the location of a text editor, find one on your hard drive (if you use Notepad, start by looking for C:\Windows\Notepad.exe)

Make the change shown below, then Save, Close and click Okay

Refresh (F5) Google Reader to make sure the changes are loaded

The change is to simply comment out two lines of code by adding // in front of them. Find the following (around line 14):

if (!entry) {
entry = document.getElementById('entries');
}

and change it to:

// if (!entry) {
entry = document.getElementById('entries');
// }

You should now be able to print all items loaded (in the Expanded View). You have to scroll down to load items, so scroll down as far as you want, then click the Print Button.

If you scroll down so that 60 entries are loaded, it will print 60 full text items. If 100 entries are loaded, 100 will be printed. For one feed, I found I could go back all the way to December 2006!

This is just a quick and dirty hack. The script now declares the entry variable (on the line before this) and sets it to the current entry, then immediately sets it to all entries. We could merge these two lines into one but it’s just simpler to do it this way.

You can easily reverse these changes if you want to return the script to its default behaviour.

The Final Word

This is just a simple hack, but it makes my life easier. Now I can print full text entries in Google Reader, going back as far as I like, so I can catchup with my reading away from the computer. I know not many people want to do this, but if it can help even a few, I’ll be happy.

27 responses on “Google Reader – Printing Full Text For All Items”

Stephen.. appreciate the overwhelming kindness you show me! Likewise, I always leave your blog learning something new like this cool hack that I’ve already added to my script. Most people who can understands this stuff don’t share the knowledge.. you do and in a succinct way that even I can understand. Great work, Stephen.

in regards to this:
Note: The Print Button doesnâ€™t appear for me if I just log into Google Reader and click on a Feed. I need to enter the http://www.google.com/reader/view/ URL in the address bar (and press Enter), then click on a Feed for the button to appear.

Hi Stephen,
thanks a lot for this one, it just saved me an afternoon full of frustration. Although I am definitely a lover of Google reader for the fact that articles are stored over the entire lifecycle and not just temporarily. However, the apparent lack of core functionality still illustrates how much in Beta this reader is: There is no support for printing, for renaming tags, there is no support for conditional views: e.g. All posts I have tagged with car and with cool or similar… So there is definitely a long way to go but I’m optimistic we will have such features soon.
In the meantime I will promote your hack.

I’m glad it helped. I’m a fan of Google Reader too, but you’re right – there’s lots of functionality that needs to be added. I’d had frustrations with everything you mentioned there. But at the end of the day I still use it and I’m hopeful they’ll get it sorted out!

Hi, i am the author of the greasemonkey script. Thanks for all your remarks. I have corrected the missing ‘*’ in the url filter, and modified a little the script. Now two buttons are available, one to print the current selected item, the second one to print all items loaded. I think this is the easier way to handle both cases, but feel free to send other hacks.

More and more bloggers these day are turning off full feed because of scrapers pawning off content and passing it off as their own. Soon it will require us to go to the page to actually print the whole article.

@Dinesh, this is a sad reality of the current state of the Web. I can understand that can be inconvenient but I also understand blog owners that don’t want to have their content stole.

Actually, some bloggers publish just excerpts intheir feeds on purpose. They can publish the most interesting bits and then this gets more readers to the actual page which is good for the blog and makes it more likely the reader will interact.

Sad? It’s quite logical that site owners want to protect their content to some extent since content is king and if there is no need to visit sites why should people do it? AKA site owners will still get their stuff out there but they will get 0 in return which isn’t such a great motivator to continue writing great content.

There are sooo.. many possible ways to steal peoples content, put it through a markov engine (or even a CURL+Google Translator if someone wants to put up spamsites about some keywords in some other language other then english) and have unique content derived from it without the the problems with duplicate content.

This can also be put into a system where different feeds about some keywords are gathered, rewritten and published. It would even be a way to outrank all the great pages that content is stolen from in with some backlinks and so on.

i agree, usually i won’t add partial feeds and even added due to some interest, will give it least attention. I consider it breaking momentum. Anyways its a personalized world so every option is there.

I am figuring out for a while how to go about my rss because more readers are coming into perspective. Always something, I just found out that all of my rss are actually also indexed. Thanks for the hack I am looking at this