Need to save Word Doc or RTF as BMP

G

Guest

Hi
I know how to use the bitmap and graphics objects to create bitmaps and
write text on them with the drawString method. I now need to create some BMPs
of word or RTF docs. What would be the best approach here as I need to
maintain most if not all of the formatting. The docs will be about 3
paragraphs each.

Should I save the docs to rtf, then parse the rtf into the draw string
method? There has to be an easier way.

Thank you
 
V

vooose

Ok make a new windows Form, then add a RichTextBox to it. Then render
your RTF on the richtextbox and screen dump the Form (you never have to
show it)

Here is the code to dump a Form:

public static void CaptureScreen(Form form, string saveLocation)
{
Graphics g1 = form.CreateGraphics();
Image image = new Bitmap(form.ClientRectangle.Width,
form.ClientRectangle.Height, g1);
Graphics g2 = Graphics.FromImage(image);
IntPtr dc1 = g1.GetHdc();
IntPtr dc2 = g2.GetHdc();
BitBlt(dc2, 0, 0, form.ClientRectangle.Width,
form.ClientRectangle.Height, dc1, 0, 0, 13369376);
g1.ReleaseHdc(dc1);
g2.ReleaseHdc(dc2);
image.Save(saveLocation, System.Drawing.Imaging.ImageFormat.Jpeg);
image.Dispose();
}

[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern bool BitBlt(
IntPtr hdcDest, // handle to destination DC
int nXDest, // x-coord of destination upper-left corner
int nYDest, // y-coord of destination upper-left corner
int nWidth, // width of destination rectangle
int nHeight, // height of destination rectangle
IntPtr hdcSrc, // handle to source DC
int nXSrc, // x-coordinate of source upper-left corner
int nYSrc, // y-coordinate of source upper-left corner
System.Int32 dwRop // raster operation code
);
 
G

Guest

Yes, I know, I'm more than a year late on seeing this. I've been looking for
something like this for a while.

Unfortunately, vooose, this only works if the RichTextBox control is visible
and on top of all other controls/windows (topmost). It's the programmatic
equivalent of hitting Alt+PrntScrn. The part where you say "you never have
to show it" isn't correct.

I'm looking for a way to quickly convert an RTF file into a PNG file (or
bitmap or whatever). I was hoping this would help, but it's not adequate.

Is there some other way to redirect or copy a RichTextBox's rendering
(regardless of the Height) to a Bitmap object, without the RichTextBox being
visible? I was hoping to make a small and fast console app that I can add to
an RTF file's open-with menu.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top