Here you will find a (GNU/Linux/OS X) tool 'PDFcrop'. It uses ghostscript to crop the margins from PDFs.
SpringerLink is a great tool! If your library offers it. But the books available on there are split into chapters. This annoys me, so I've MacGyver'd a java app that will concatenate those individual chapters into a single PDF. It will also place a bookmark in the final PDF to mark the beginning of each original file. So if you start with ten chapter files, you name them "ch1.pdf", "ch2.pdf", etc., and run this script on them, the result will be a single PDF with bookmarks "ch1", "ch2", etc at the appropriate places. I'm currently working to pack this into a portable app; if you're really interested in dealing with it in its raw form, send me an email zn217 [at] cam [dot] ac [dot] uk.
I should mention that my app is a variation on an app called joinPDF that I found somewhere in iText examples. Now I have no idea where to find it, though.
Ultimately I would like to write a shell script that only appeals to ghostscript to accomplish what the current app does. This shouldn't be too difficult, but I haven't had time to do it.
After you've smashed your chapter files into a single book PDF, you might want to change that PDF's metadata. To do that, I recommend pdftk. For your convenience (and mine) I've paraphrased from another site instructions for using pdftk to change PDF metadata:
First get your PDF's metadata as a text file using the command
$ pdftk file.pdf dump_data > metadata.txt
.
Then modify the newly created file 'metadata.txt': simply change the fields you want changed, add any new fields you
want to add, and delete any field you don't want by changing its 'InfoValue' to blank.
To change a field, simply change its 'InfoValue'. For instance, I might want a PDF to have author 'Isaac Newton', so
somewhere the metadata file should include the following text:InfoKey: AuthorComplication: You have to use HTML format to use special characters in metadata fields. Google this. It isn't so bad.
InfoValue: Isaac Newton
$ pdftk old.pdf update_info metadata.txt output new.pdf
.
That's it.