Hi All,
I am generating a pdf doccument from an xls sheet on click of button in windows forms with following code and i am opening the created pdf doccumnet using System.Windows.Diagnostics.Process.Start("name") :
private void button8_Click(object sender, EventArgs e)
{
wb = new Workbook();
FileStream fstream = new FileStream("C:\\download.xls", FileMode.Open);
//Opening the Excel file through the file stream
wb.Open(fstream);
//Adding a new worksheet to the Workbook object
//Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = wb.Worksheets[0];
worksheet.Name = "My Worksheet";
//Saving the Excel file
wb.Save("c:\\samplesearch.xml", FileFormatType.AsposePdf);
pdf2 = new Pdf();
pdf2.BindXML("c:\\samplesearch.xml", null);
pdf2.Save("c:\\samplesearchpdf.pdf");
fstream.Close();
//System.Diagnostics.Process.Start(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), string.Format("{0}.{1}","sample" ,"doc")));
proc = System.Diagnostics.Process.Start("C:\\samplesearchpdf.pdf");
}
Now if i close the form(application) i am getting an error that process is already in use.So,
i am closing the process in form close event and trying to delete the file from disk as follows:
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
proc.WaitForExit(0);
//proc.Dispose();
proc.CloseMainWindow();
proc.Close();
//proc.Kill();
try
{
System.IO.File.Delete("C:\\samplesearchpdf.pdf");
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message);
return;
}
}