Green PDF Printing: Project Web Hosting - Open Source Software

Green PDF Printing


Download Green PDF Printing files A .deb package for debian-based systems is available. Also available is a zip file for win32 systems with instructions inside on how to download and install dependencies.

Project detail and discuss

Get support

Join this project:

To join this project, please contact the project administrators of this project, as shown on the project summary page.

Get the source code:

This is a python-based project, so source code is automatically included in the project bundles in downloads

Project Information

About this project:

This is the Green PDF Printing project ("green-printing")

This program supports some elementary PDF manipulation, and is intended mainly for saving printer paper (and hence trees!) when printing. This application helps n-up-ing pages by providing auto-crop and fine-tune cropping in a GUI to enlarge readable part of pages. N-up'ing is where multiple logical pages are shrunk and printed in one physical page.

The tool also deduces the local printers available in the system and their printable regions for each paper size. It then compensates for these printable regions.

Its main capabilities are:

  • Supports printing to system printers taking their printable areas into account.
  • Prints pages in "N-up" mode.
  • Presents an interface to crop pages.
  • Can infer an "auto-crop" region for pdf pages.
  • Create and save output files with all of the above properties.

It was created to support use cases of the following kind:

  • Simple: Choose an input file from disk, crop pages as desired, and directly generate an output file from this input file. Ask for '2x1' n-up printing. Additionally, ask for page numbers to be inserted such that when pages are printed back-to-back and stapled along the longer-edge, the page numbers always appear at the farther end of the seam.
  • Two files: Choose (or more) two input files from disk. Crop the readable space as desired. Create a new output file. Paste pages from both files onto this output file. Ask for 2x1 nup. The tool should insert blank pages in between to ensure printing keeps the two files in distinct physical pages. Generate output. This case is useful when using network printers in organizations; typically, network printers always insert an extra header page to differentiate print jobs from multiple users. This way, we can save on some of the header pages.
  • Slides presentation: Take a pdf presentation. Choose some important slides. Optionally, add blank pages after some slides for notes. Print out in "notes" format: layout should switch to 1x2 if slides in landscape orientation.

The exact license terms used by this project on the project summary page and in the licensing documents included in the downloads.

How To Use:

Perhaps the best way to learn the tool is to get our hands dirty with using it. I'll use the three use-cases listed above and go through using the tool to address each. First, let's look at the important screens. I've numbered all the key elements, and will use them later to explain their usage.

Crop Window
2. Crop Window
Crop Window
3. Output's Input View
Main Window -- Inputs
4. Output View
Main Window -- Inputs
5. Choose Output

The main UI has three tabs that appear in vertical orientation at the left side of the main window: "Input Pages", "Output Pages" and "Settings". Each switches to a specific view. Let us now tackle each use-case in turn. The notation [p:n] implies a reference to the high-lighted widget (button/scrollbar/window etc.) n in the UI image p above.


A final word on managing settings on the tool: selecting the "Settings" tab takes you to the view in [6] here. Lots of settings to look after in [6:1], but the most important ones are "Printer Page"[6:2] and "Tex"[6:3].

The latter provides a folder-selection dialog which can be used to point to the "bin" directory of the LaTeX distribution being used. In the normal course of things, this location should be auto-detected by the tool, but in special cases such as custom-installations, this may not work well.

The "Printer Page" settings window presents a bunch of option to manage information about the local printers installed in the system. Note that these need not be physically local to the system, i.e. attached to the same computer, but needs to be installed on the system for local spooling access. For example, under linux, all printers installed by CUPS - be it local of network printers - are available to us. Similarly, under win32, all locally installed pritners are at our disposal. These are the various scenarios supported by this interface:

Project Web Hosted by

┬ęCopyright 1999-2009 - Geeknet, Inc., All Rights Reserved

About - Legal - Help