Home |  Electronics |  Toolbox |  Gini and Karl's world |  E-cards |  Photos |  Online-Shop


story time | science club | math blog | computer corner | penguin page | Antoin's blog

DIY book printing and binding


If you have a good laser printer with a duplex unit and a Linux PC (or a Mac) then you can quite easily print your own books. To bind the printed books in hard cover is not difficult either. It requires a sewing machine, a paper cutter, some glue, cardboard and a linnen sheet or an old cutrain.


Do it your self book printing and binding


Linux comes with two command line utilities which can be used to re-order postscript pages and print them onto normal letter (or A4) sized paper such that they become a book when folded in the middle. The commands we need are psbook and psnup (part of psutils). When you send the resulting postscript files to a laser printer with duplex unit then you get a book.

Formatting and printing the book

The book that I wanted to print is the handbook of a pocket calculator and I had it only as PDF file.

First we need to print the PDF file into batches of postscript files for further processing. I recommend to avoid acroread for this task. The adobe acroread has too many faults in the generated postscript and this is not suitable for further processing with psbook.

A very good quality PDF reader for Linux is evince and it generates sytactically correct postscript. We use evince and print ranges of consecutive pages into postscript files. 32 pages at a time is a good number. 4 logical pages will be printed on one physical letter (or a4) sized page (two pages onto the front and 2 onto the back of the paper). Thus 32 PDF file pages result in 8 sheets of paper. 8 sheets can easily be sewed together with a household swing machine and it is also not too thick for a normal office paper cutter.

This little perl one line command can help you to calculate the page ranges to print. This way you just copy paste the next page range to print into the print dialog window of evince:
> perl -e '$i=2;while($i<200){print "$i - ".($i+31)."\n";$i+=32;}'

2 - 33
34 - 65
66 - 97
98 - 129
130 - 161
162 - 193
194 - 225
We start with page 2 because page 1 is the cover page and it needs to be printed separately.

Print the pages into individual files and number the file names. Something like output1.ps output2.ps output3.ps ... If the book has e.g only 205 pages or any other number that can not be divided into batches of 32 pages then just print the last batch until the last page (e.g 194 - 205).

We use the following command to print one of those files such that they can be folded in the middle and result in a book:
psbook output1.ps | psnup  -b1.4cm -s0.6 -pletter -2 > book_output1.ps
To print on A4 pages just replace -pletter with -pa4. The command does this:
  1. psbook re-orders the pages such that it becomes a book when the paper sheets are folded in the middle.
  2. "psnup -2" places 2 logical pages onto one physical page (on one side of the paper)
  3. I want a "handy" handbook and -s0.6 scales the to 60%
  4. -b1.4cm places a border of 1.4cm around the page. You need to experiment with this value until your printer's duplex unit has the pages on the front and back of the paper exactly aligned.
To print this on a duplex laser printer you need to print it as short side binding duplex also called tumble duplex mode. I use a Xerox phaser6250 laser printer and Xerox provides so called ppd-files with the printer to control the behaviour of the duplex unit. ppd-files are essentially files with post script commands inside and you can load them into the Linux (or apple mac) cups printing system such that you can define several logical printers for one physical printer. You can then e.g define a phaser6250book printer which will print in tumble duplex mode. In other words you just send the above book_output1.ps file to the phaser6250book printer and you get your book.

If you do not have the possibility to define logical printer queues then you can edit each postscript file (with a text editor) and pre-pend the commands that will tell the printer that this is a file which needs to be processed in tumble duplex mode. Edit the text file, save it and then send it raw (without further processing) to the postscript laser printer. The postscript code that you would need to add depends on the printer model but something like this works for many different postscript laser printer:
%%BeginProcSet: tumble
statusdict /setduplexmode known
        {statusdict begin true setduplexmode true settumble end} if
%%EndProcSet
You would add this at the beginning of the file after the first line (the line that defines that this is postscript). Again you need this only if you do not have ppd-files and no means to define logical printer queues in cups (because you have e.g. a linux pc for generating and processing the postscript files but the printer is only connected to a windows machine).

Now verify that you can print in duplex tumble mode. Just print one sheet of paper for testing purposes. You can use the command ghostscript or kghostscript to print only the first 4 logical pages out of the file book_output1.ps to your printer. This will result in one physical page with two pages on both sides of the paper.

After the printer test passed you need to play with the "-b1.4cm" paramter until the pages are perfectly alligned. To make this easier we print a frame around each logical page (option "-d1").
psbook output1.ps | psnup  -b1.4cm -s0.6 -d1 -pletter -2 > book_output1.ps
Use again ghostscript or kghostscript to just print 4 pages onto a single sheet of paper and hold it against the light such that you can see the other side of the page shining through. Increase or decrease the 1.4cm until the frames around the page are perfectly aligned on the left and right. You might need to print 2-3 sheets of paper until it is right. Note down the value. 1.4cm was what my printer needed.

Now we are ready to print the entier book (without the -d1 option):
psbook output1.ps | psnup  -b1.4cm -s0.6  -pletter -2 > book_output1.ps
lpr -P phaser6250book book_output1.ps

psbook output2.ps | psnup  -b1.4cm -s0.6  -pletter -2 > book_output2.ps
lpr -P phaser6250book book_output2.ps

...and so on until all pages are printed...
The command lpr sends the postscript file to the printer.

Take each batch of printed pages out of the printer individually and fold them in the middle.


The cover page and the printed and folded pages of the book.


Book binding

All the pages are still loose and we use a swing machine to sew the pages of each batch togher. Just sew straigt along the middle where the pages are folded.


Sew each batch of pages together along the middle of the page



One batch of pages. Loose thread ends pulled to the outside.



One batch of pages. Loose thread ends pulled to the outside.


Once all batches are processed through the sewing machine you just take a needle and pull the loose thread ends from inside the book to the outside.

Next you use a paper cutter and you trimm all the batches to exactly the same size. Quite a bit of paper needs to be cut off in this case because we down-scaled the book with the "-s0.6" option during re-formatting with psnup.


Using a paper cutter to trimm down all the batches.


For the actual book binding you just put all the batches in the right order and align them perfectly. You press them together between 2 pieces of wood. I just use a Black & Decker Workmate for this.


Securing the batches of nicely trimmed sheets firmly in a Black & Decker Workmate. Top view.



Securing the batches of nicely trimmed sheets firmly in a Black & Decker Workmate. Side view.


Now we need to apply book binding glue. The most important property of this glue is that it remains flexible after drying. You can use any glue that remains flexible and is good for paper. I am using a water based "Lepage contact cement" which is a water based low odor contact glue and you can find it in most hardware stores.


Applying a flexible book binding glue.


We stick the back of the pages to a piece of fabric. Any fabric from an old shirt or a piece of old curtain will do.


We stick the back of the pages to a piece of fabric.


Let the glue dry completely (takes about one day).


The book is ready but the cover is still missing.


Our book is now ready. It just does not have any cover yet. You can see and feel that this is a really good book. You can bend it and open it many times. The pages will not fall out. Cheap paper back books have sometimes problems with the binding. This book will not have such problems.

Making a book cover

We will make a real hardcover out of cardboard wrapped in fabric. We use some cardboard from the the grocery store (pizza boxes) and stick a white sheet of paper onto the print. It makes a perfectly good book cover.


We make a cover from cardboard and a piece of fabric.



Card board for the cover.


We cut out one large pice of card board that goes all around the book and then a few smaller pieces which we stick on top of the larger piece. The idea is that the cover is a bit thinner near the binding of the book such that it bends there and opens easily.

We use ordinary white wood glue or school glue to stick the different parts of the cover together. Contact glue is not suitable for this as it sticks immediately. Wood glue dries hard (good for a hardcover) and the position can be slightly corrected after putting the parts together. We can as well squize out any air pockets while the glue is still wet.

When I did my first book I made the mistake that assebleled the the cover around the book. The problem is then that you have to manage the humidity from the glue somehow. I had to put plastic bags between cover and book until the cover was dry.


Assembly of the cover arround the book. This works but is not the best way.



The book is ready


It is much better to assemble to cover seperately and let it dry completely before sticking the book inside the cover. That's what I did for a second book and the following pictures show that book.


Assembly of the cover without the book. This is better.



Assembly of the cover without the book. The picture shows the outside of the cover. We apply glue to the cardboard and then wrap fabric around.


We glue the cardboard with a water based glue. That means it will bend while drying unless we fix it somehow to keep it straight. To avoid this bending and to give the moisture a way to escape. We fix the cover between a wooden board and the grill from a kitchen oven.


Letting the assembeled book-cover dry.


It's time to insert the book once the cover is completely dry. To insert the book we apply some glue to the fabric wings of the book. Just glue on the side of the wings. No glue directly on the back of the book. This will make it easy to open the book and it will lay flay on the table when opened. Contact glue is good for inserting the book. We apply glue in the right places to the book plus the cover and let it dry for 5min. We place the book inside the cover, close it and press it togehter. The contact glue will stick immediatley. You can temporarily insert some paper between the fabric wings and the first and last page of the book. This is to prevent any excess glue from sticking to the book pages.


The cover is ready



We apply glue, insert the book into the cover and press it together.



The final book.


It's fun to print and bind a book yourself. It is very easy and not expensive. Some pizza boxes and a piece from an old curtain make a perfect cover.
Back to: "No preservatives added"



Copyright © 2004-2014 Guido Socher