How to make a booklet

From Scribus Wiki
Jump to navigation Jump to search
This article is part of the HOWTOs series.
Installation Usage PDF issues Imposition Other

HOWTO print an A5 booklet

Requirements:

  1. psutils
  2. KDE (specifically kprinter)

Ok, strictly speaking this is only tangentially related to Scribus, but I think it's very useful to know.

If you have a bunch of stuff laid out in A4 (or letter if you're a foreigner) you can easily turn it into an A5 booklet / pamphlet. In my opinion this makes for a more readable, tree-friendlier, smarter-looking end-product.

The workhorse of the method I will describe is the psutils suite of commandline utilities, but don't let that put you off, you don't ever have to even see them. This is because kprinter provides us with a nice frontend which means we can do everything via nice and easy pointing and clicking.

To use this method you'll need KDE (specifically kprinter) and psutils installed. Oh, and Scribus. Ok, actually that last one's optional but I thought it would be polite to mention it under the circumstances.

  • So, find or make a document on A4 (or letter) pages, er, using Scribus. In the printer dialogue select Alternative printer command and type kprinter in the box. Click Print.
  • You should now be at the kprinter dialogue. Select the printer you want to print to (which can be a pdf file or whatever) and click on Properties. Click on the tab labeled Filters (you'll might have to scroll to the right to see it). Click on the funnel (Add filter) icon.

If like me you've only got a bog-standard non-duplex printer, you'll have to do this the slightly longer way. If you've got a better printer than me I'm too envious to help you, sorry.

  • Select Pamphlet Printing - Even pages and click OK until you're back at the main kprinter dialogue. Click Print. Wait for the pages to come out of your printer. Put them back in your printer - on my printer they go in the tray printed side up, with the top of the text to the left. It might be the same with your printer, if not you'll have to experiment.
  • Print the document again using the same process but selecting Pamphlet Printing - Odd Pages.

If it's all worked properly, the pages are all in the right place, the right way up etc, you can fold the pamphlet, stick a staple through it and you're done. A good long-arm stapler is good, but you can get away with a smaller one at a pinch. Hint: the end of the stapler needs to go further over the fold than you think, or that's what I find anyway.

If you want a slightly smarter looking product you could print the outer sheet on coloured paper. Ok, it's not quite the Gutenberg bible, but it's something you could charge money for more easily than a wodge of A4 you've printed out and stuck a staple through the corner of.

This is great for printing out lengthy texts from the internet, manuals etc. Viva Samizdat!

Booklet printing1.png

HOWTO print a booklet of other sizes

Requirements:

  1. psutils
  2. KDE (specifically kprinter) — only if you choose the method B


To print a booklet with pagesizes other than A5 you have two possibilities:

A) You use Scribus to create a pdf and you do the necessary changes on the command line (with psutils).

B) KDE users can create a filter. The booklet can than simply be printed from within Scribus.

Method A: using psutils only

1) Change the document format to postscript:

pdf2ps file.pdf

This creates a postscript file named 'file.ps'

2) Change the order of the pages:

psbook -s16 file.ps fileA.ps

Where 16 is the number of pages that your document has. It should be a multiple of four.

3) Arrange the pages so two logical pages are printed on one physical sheet:

psnup -2 -w10.5cm -h16.3cm -W21cm -H16.3cm fileA.ps fileB.ps

Which arranges two logical pages of the size 105x163mm on a sheet of the size 210x163mm. If you have different page sizes, then simply change the dimensions. (Take a look to the man page of psnup) You can alternatively use the -p and -P flags to indicate page sizes:

psnup -2 -pa5 -Pa4 fileA.ps fileB.ps

which will take two A5 pages and put them on A4 paper.

4) Transform it back to pdf:

ps2pdf fileB.ps

This creates the file 'fileB.pdf'.

5) Print 'fileB.pdf' with the program of your choice.

Method A': using ps2book

This is a slight modification of Method A that uses ps2book, a wrapper around the psutils commands. It requires only 3 steps, but I am cheating ;-).

1) Change the document format to postscript:

pdftops -level3 file.pdf

This creates a postscript file named 'file.ps' (pdftops [from the xpdf family] does a much better job than pdf2ps [from ghostscript] in my opinion).

If you want to print the resulting PS file, rather than converting it to PDF, you might need to use `-level2' if your printer only understands PostScript level 2.

2) Call ps2book:

ps2book file.ps

This creates a file named 'file_book.ps'.

ps2book has a number of options; a few useful ones are

ps2book -Pdisplay file.ps  # show result in gv
ps2book -f1.0 file.ps      # set `fill factor' to 1, based on document bounding box
ps2book -F0.87 file.ps     # set `fill factor' to 0.87, based on true bounding box
ps2book -m letter file.ps  # set output medium

The option `-f1.0' will do the right thing for 2xA5 -> A4 booklets, provided the document bounding box covers the whole paper size (which is the case with pdftops).

The `-F0.87' is what I normally use for printing almost anything as a booklet (leaves a 6.5% margin on each side).

ps2pdf tries to be clever about the output medium, but if it fails, use `-m' to set it explicitly.

3) Either print 'file_book.ps' directly, or transform it back to pdf:

ps2pdf13 file_book.ps

This creates the file 'file_book.pdf' (ps2pdf13 or ps2pdf14 often produce much more compact PDF than ps2pdf which by default writes PDF version 1.2; it is very hard to find somebody who cannot read PDF 1.3).

Method A' ': using Acrobat reader

If you have Acrobat Reader, you can also replace the first step with

acroread -toPostScript file.pdf file.ps

This often gives better results.

Method B: creating your own filter for kprinter

Find the KDE-directory on your system login as user root and go to

$KDE-DIR/share/apps/kdeprint/filters/

On my system it is

/opt/kde3/share/apps/kdeprint/filters/

In this folder you have to create two files mypsbook.desktop and mypsbook.xml.

1) myfilter.desktop:

[KDE Print Filter Entry]
Name=mypsbook
Name[de]=MyPS-Book
Name[fr]=MonPS-Book
Require=exec:/psbook,exec:/psnup
Comment=Pamphlet Printing for 105x163mm documents
Comment[de]=Booklet-Druck für 105x163mm Dokumente
Comment[fr]=Impression au format livret mesures:105x163mm
MimeTypeIn=application/postscript
MimeTypeOut=application/postscript


You have to adapt the translation in your KDE-language. Have a look to the other filter-files as an example.

2) mypsbook.xml

<?xml version="1.0"?>
<kprintfilter name="mypsbook">
   <filtercommand data="psbook %filterinput | psnup -2 -w21cm -h16.3cm -W10.5cm -H16.3cm %filterargs %filteroutput" />
   <filterargs>
   </filterargs>
   <filterinput>
       <filterarg name="file" format="%in" />
       <filterarg name="pipe" format="" />
   </filterinput>
   <filteroutput>
       <filterarg name="file" format="> %out" />
       <filterarg name="pipe" format="" />
   </filteroutput>
</kprintfilter> 


From '<filtercommand data=' to '%filteroutput" />' everything in one line. Don't forget to change the page-sizes in this line to your needs.

Restart KDE. Now you can print your document from within scribus to kprinter. In the kprinter dialog you go on Properties change to the Filter tab click on the button to add a filter. Now chose your new filter and print.

Have fun!!!

See also