Hi,
have a look at
this related question. Your answer will be very similar.
David
Personally, when I do this sort of thing I create a map border/frame in another package (I often use MicroStation) and read this into the workspace. Then I scale/shift the original data to fit inside the frame boundaries.
I do that by fetching the bounding box and calculating what scaling I need to apply to fit the data into my known frame size.
One of the elements of my frame template will be a piece of text that I then set using the value of the scaling I just carried out. A scale bar would be a bit more complex - I'd try include a line feature in my template and then scale it using the same scaling calculation.
Hope this is of some help
Mark
Mark Ireland
Product Evangelist
Safe Software Inc.