last week I was involved in developing an internal windows application for my company and we wanted to print simple report and keep the application simple to deploy ( xcopy way ) and as we use Windows 7 in all our company computers which already have .NET framework but nothing else ( not crystal reports or MS reporting tools ) , I decided to use ABCpdf.NET to create our simple report via creating html page and converting it to PDF for printing & archiving .
hint : if you don’t have ABCpdf.NET already installed you can download it from this link http://www.websupergoo.com/download.htm ( the 32bit version is about 43MB )
here I am going to explain the first steps to get started with ABCpdf.NET library ..
-
after downloading and installing ABCpdf.NET library go to Visual Studio and create new windows forms application
-
add webBrowser control to show the report and a button to save it in PDF file format like this image
-
add HTML page to your project and put the following HTML in it :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> </head> <body> <p> Fayedcom Company <br /> Simple Report Test</p> <br /> <br /> <table width="100%"> <tr style="font-weight: bold; background-color: #E0E0E0"> <td> Client Name </td> <td> Client Mobile Phone </td> <td> Client Address </td> </tr> <tr> <td> [name] </td> <td> [mobile] </td> <td> [address] </td> </tr> </table> </body> </html>
-
change
copy to output Directory
property of this HTML file tocopy if newer
oralways copy
-
write the following code to form load event
string mFileName = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath) ,"HTMLPage1.htm"); string mHTML = File.ReadAllText(mFileName); mHTML = mHTML.Replace("[name]","Mohammed Fayed"); mHTML = mHTML.Replace("[mobile]","1234567890"); mHTML = mHTML.Replace("[address]","My Address :)"); webBrowser1.DocumentText = mHTML;
-
now run your application , it should be like this
-
now add reference to ABCpdf.NET library
-
add this code to button click event
string mPdfFileName = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath) ,"tempFile.pdf"); Doc myPDF = new Doc(); myPDF.AddImageHtml(webBrowser1.DocumentText); myPDF.Save(mPdfFileName); System.Diagnostics.Process.Start(mPdfFileName);
this will export your report to PDF and run it the default PDF viewer like this