Printing HTML file

  • Thread starter Thread starter news.microsoft.com
  • Start date Start date
N

news.microsoft.com

Hello!
I would like to print an HTML file in C#.
I can open the file as a stream and send it to the printer.... but
obviously, the source code is printed.
What I need is to print the document content itself, not the HTML source
code.

Thanks.

Arcadius
 
Hi Arcadius
One easy way to do it is to save this area as an image then print that
image . fist of course you need to capture that area of the screen ( where
your HTML document is displayed ) as an image , they you send this image to
the printed .
Here you are code that capture a selected area of the screen and save it as
an image

[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
);

Graphics g1 = this.CreateGraphics();
Image MyImage = new Bitmap(this.ClientRectangle.Width,
this.ClientRectangle.Height, g1);
Graphics g2 = Graphics.FromImage(MyImage);
IntPtr dc1 = g1.GetHdc();
IntPtr dc2 = g2.GetHdc();
BitBlt(dc2, 0, 0, this.ClientRectangle.Width,
this.ClientRectangle.Height, dc1, 0, 0, 13369376);
g1.ReleaseHdc(dc1);
g2.ReleaseHdc(dc2);
MyImage.Save(@"c:\Captured.jpg",
System.Drawing.Imaging.ImageFormat.Jpeg);
Hope this helps

Mohamed Mahfouz
MEA Developer Support Center
ITworx on behalf of Microsoft EMEA GTSC
 
You need to render the HTML code.
To achieve this just write something like MS Internet Explorer.

You can also use MS HTML WebBrowser control if you want to save time.
 
Back
Top