I use #1 and a version of #3. My rtf has an object that I paste an image into, and replace fields that I have in the rtf, like [001]. I use .Find to find [001] and then .select to replace it. All of the tags are embedded in a table, so that things look very nice.

I use this method for half of the reports, and the printer object for the other half, as they are less complex.