Page 1 of 1

Using PrintPreview component

PostPosted: May 29th, 2003, 1:48 pm
by zvaranka
Hi from Hungary...

My Name is Zoltán Varanka, I am working on a special map application
and I use the PrintPreview component developed by you. I have a big
problem. I have a topographic map loaded in an image on a form and
I'd like to print a part of this map, placing this part on the canvas of the
printpreview. How can I do it? I tried to use CopyRect function but it my
map is in JPEG format. On the preview from I made an Image that must
contain the part of the map but I don't know how fill this image
component with th part of the map. Can you help me?

Thank you!

Zoltán
:shock:

PostPosted: May 29th, 2003, 3:17 pm
by Kambiz
Hi Zoltán,

The image resolution differs from the print resolution, so you cannot copy an image with the same dimensions on the printer's canvas.

To have the right result on all kind of printers, you have scale the image to the printer resolution, and then the DIB Bitmap (Device Independent Bitmap) version of the image on the printer.

In the PrintPreview component, the PaintGraphic and PaintGraphicEx methods internally scale the image and convert it to DIB Bitmap. You can also avoid converting the image to DIB Bitmap by yourself, by setting the FastPrint property to False.

In your case, the easiest solution is to use an intermediate bitmap to copy the part of the image that you want to print, and then to call either PaintGraphic or PaintGraphicEx method for rendering it on the printer.

By the way, I moved your post to this forum, which is more related to your question.

Cheers,
Kambiz

PostPosted: May 30th, 2003, 3:10 pm
by zvaranka
Hi Kambiz!

Thank you very much for your advices, I could make the copy of the part of the map. I also have another question. Can the PrintPreview render transparent bitmaps? I have to place some triangles on the maps but it is necessary the triangles to be transparent. I made a bitmap un a bmp file with red triangle on white background but the white backgroun is rendered on the canvas of the preview and I want only the trianle be seen on the printing without white background.

Thank you.

Zoli

PostPosted: May 31st, 2003, 12:45 am
by Kambiz
The PaintGraphicEx method does not support transparency and you have to draw your bitmap directly using canvas. In this case, if your bitmap is not DIB you may need to set FastPrint property to False.

By the way, are you going to darw the triangles on your map? If yes, it's more effecient to draw the triangles on the intermediate bitmap, which you made it for copying part of the map.

Cheers,
Kambiz