Как распечатать PDF-файл и ошибка при экспорте в pdf, когда экспортированный pdf-файл открыт
Я хочу распечатать PDF-файл, который экспортируется из datagridview в PDF с помощью кнопки. И есть одна ошибка появляется (необработанное исключение произошло в вашем приложении) при экспорте в PDF-файл во второй раз, когда экспортированный pdf-файл открыт. Как показать уведомление на экране о том, что PDF-файл открыт. Код выглядит следующим образом:
private void pDFəÇıxartToolStripMenuItem_Click(object sender, EventArgs e) { if (dataGridView1.RowCount == 0) { DialogResult result = MessageBox.Show("Table is empty.", "Export to PDF", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { //Full path to the Unicode Arial file string ARIALUNI_TFF = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF"); //Create a base font object making sure to specify IDENTITY-H BaseFont bf = BaseFont.CreateFont(ARIALUNI_TFF, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //Create a specific font object iTextSharp.text.Font h = new iTextSharp.text.Font(bf, 20); //Create a specific font object iTextSharp.text.Font f = new iTextSharp.text.Font(bf, 12); //Create a specific font object iTextSharp.text.Font g = new iTextSharp.text.Font(bf, 5); //Creating iTextSharp Table from the DataTable data PdfPTable pdfTable = new PdfPTable(dataGridView1.ColumnCount); pdfTable.DefaultCell.Padding = 3; pdfTable.SetWidths(new int[6] { 35, 90, 70, 70, 70, 90 }); pdfTable.TotalWidth = 425; pdfTable.LockedWidth = true; pdfTable.HorizontalAlignment = Element.ALIGN_LEFT; //pdfTable.DefaultCell.BorderWidth = 1; //Adding Header row foreach (DataGridViewColumn column in dataGridView1.Columns) { PdfPCell cell = new PdfPCell(new Phrase(column.HeaderText, f)); cell.BackgroundColor = new iTextSharp.text.Color(188, 222, 248); cell.FixedHeight = 18; pdfTable.AddCell(cell); } //Adding DataRow foreach (DataGridViewRow row in dataGridView1.Rows) { foreach (DataGridViewCell celli in row.Cells) { try { pdfTable.AddCell(celli.Value.ToString()); } catch { } } } SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "PDF File |*.pdf"; if (sfd.ShowDialog() == DialogResult.OK) { Document pdfDoc = new Document(PageSize.A4, 85f, 10f, 28f, 20f); PdfWriter wri = PdfWriter.GetInstance(pdfDoc, new FileStream(sfd.FileName, FileMode.Create)); pdfDoc.Open(); Paragraph paragraph = new Paragraph("Kreditin ödəmə planı", h); paragraph.Alignment = Element.ALIGN_LEFT; pdfDoc.Add(paragraph); pdfDoc.Add(new Paragraph(" ")); pdfDoc.Add(new Paragraph("Ödəniş metodu:" + " " + comboBox3.Text, f)); pdfDoc.Add(new Paragraph("Kreditin məbləği:" + " " + kreditmeblegi.ToString() + " " + comboBox1.Text, f)); pdfDoc.Add(new Paragraph("Faiz dərəcəsi:" + " " + illikfaiz.ToString() + "% illik", f)); pdfDoc.Add(new Paragraph("Kreditin müddəti:" + " " + Convert.ToDouble(textBox3.Text) + " " + comboBox2.Text, f)); pdfDoc.Add(new Paragraph("Verilmə tarixi:" + " " + dateTimePicker1.Text, f)); pdfDoc.Add(new Paragraph(" ", g)); pdfDoc.Add(new Paragraph("Aylıq ödəniş:" + " " + label9.Text, f)); pdfDoc.Add(new Paragraph("Cəmi məbləğ:" + " " + umumiodenis.ToString("N2") + " " + comboBox1.Text, f)); pdfDoc.Add(new Paragraph("Ödənilən faiz:" + " " + odenilenfaiz.ToString("N2") + " " + comboBox1.Text + "\n" + "\n", f)); pdfDoc.Add(pdfTable); pdfDoc.Close(); MessageBox.Show("Table has been exported to PDF", "Export to PDF", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } private void printToolStripMenuItem_Click(object sender, EventArgs e) { // How to print? }
Что я уже пробовал:
Ничего.
Mehdi Gholam
Очевидно, что вы не можете перезаписать открытый файл, попробуйте записать его в другое имя файла.