I created an ECG workbook for medical students on a linux workstation using only open source tools. I used Gimp to rotate the scanned ECG curves, Inkscape to manually draw the ECG curves so that they line up with the scanned original. This was a lot of work, but it gave me an opportunity to fix some problems like e.g. a wandering baseline. I also created appropriate blocks of gridlines.
The SVG files were imported to Scribus, the program I used for layout and to produce the print-ready PDF files. The largest Scribus file was 90 pages, containing complex SVG curves of real life ECGs and gridlines. Scribus had absolutely no problem dealing with it. Small pieces of texts were directly input into Scribus, for long ones I used OpenOffice. The OpenOffice ODT files were then imported into Scribus.
Here are a few pages for illustration (72dpi PNG, exported from Scribus). The quality of the booklet printed at 2400dpi on paper, is obviously much better, these files are just here to give you an idea what the booklet is about. I am very pleased with the result, Scribus is a very good tool, if you need precise, high quality layout.
I used Scribus 1.2 for the first edition of the workbook (in 2005). It is far from being a perfect layout program, but it did most things I needed, and did them well. Overall, I was very impressed with the stability of the program. For the second edition, I used Scribus 1.3.5svn, a development version (in 2009). I experienced a few bugs and stability problems with it, but this is expected in a development version. However, backing up my work frequently, I had no major headaches, I used Scribus productively.