How to make a booklet: Difference between revisions
No edit summary |
mNo edit summary |
||
Line 73: | Line 73: | ||
4) Transform it back to pdf: | 4) Transform it back to pdf: | ||
ps2pdf fileB.ps | ps2pdf -sPAPERSIZE=a4 fileB.ps | ||
This creates the file 'fileB.pdf'. | This creates the file 'fileB.pdf'. If you leave out the PAPERSIZE directive, Ghostscript will generate a letter sized output page. If you are running these commands under Windows then please type the papersize directive as "-sPAPERSIZE#a4" otherwise you will end up with an "/undefinedfilename" error from Ghostscript because ps2pdf is a batch file. | ||
5) Print 'fileB.pdf' with the program of your choice. | 5) Print 'fileB.pdf' with the program of your choice. |
Latest revision as of 04:18, 6 December 2012
The Imposition tools list may inspire further ways to create a booklet.
HOWTO print an A5 booklet
Requirements:
- psutils
- 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!
HOWTO print a booklet of other sizes
Requirements:
- psutils
- 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-1: 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 -w21cm -h16.3cm -W10.5cm -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 -pa4 -Pa5 fileA.ps fileB.ps
which will take two A5 pages and put them on A4 paper.
4) Transform it back to pdf:
ps2pdf -sPAPERSIZE=a4 fileB.ps
This creates the file 'fileB.pdf'. If you leave out the PAPERSIZE directive, Ghostscript will generate a letter sized output page. If you are running these commands under Windows then please type the papersize directive as "-sPAPERSIZE#a4" otherwise you will end up with an "/undefinedfilename" error from Ghostscript because ps2pdf is a batch file.
5) Print 'fileB.pdf' with the program of your choice.
Method A-2: 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-3: 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!!!
Making booklets via Laidout
You can use Laidout as a Scribus plugin, and fold things on screen. Watch a booklet demo here. You have to install Laidout, then use the script that is available here. It will produce a new, imposed Scribus document. There can be any number of folds, not just a single vertical fold down the middle. As of November 2010, there are still some big limitations, such as that Master Pages are ignored, and it does not apply any printer marks. You should definitely consider this experimental software!
If it doesn't work on your Scribus file, export to PDF. Then you can make a blank dummy document with the same page size and number of pages in Laidout. Now export a PLAN file that podofoimpose can use to impose your pdf.