Непосредственно распечатайте pdf файл без сохранения или открытия
Всем привет,
У меня есть форма windows с определенными метками,текстовыми полями и кнопкой.
При нажатии на кнопку будет создан pdf-файл .Теперь мне нужно непосредственно распечатать pdf-файл на принтере, не сохраняя его и не открывая.То есть при нажатии на кнопку pdf-файл должен быть создан и напечатан непосредственно.
Что я уже пробовал:
private void button1_Click(object sender, EventArgs e) { try { string lab7 = label7.Text.Length.ToString(); int countSpaces = label7.Text.Count(Char.IsWhiteSpace); PdfDocument pdf = new PdfDocument(); PdfPage pdfPage = pdf.AddPage(); pdfPage.Orientation = PageOrientation.Portrait; XGraphics graph = XGraphics.FromPdfPage(pdfPage); XFont font = new XFont("Verdana", 10, XFontStyle.Regular); graph.DrawString(dateTimePicker1.Text, font, XBrushes.Black, new XRect(5.708661 * 72, 0.787402 * 72, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); graph.DrawString(label3.Text, font, XBrushes.Black, new XRect(1.5748 * 72, 1.37795 * 72, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); graph.DrawString("***" + label5.Text + "***", font, XBrushes.Black, new XRect(5.708661417 * 72, 2.165354331 * 72, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); if (countSpaces >= 9) { var firstSpaceIndex = label7.Text.IndexOf(" ", label7.Text.IndexOf(" ", label7.Text.IndexOf(" ", label7.Text.IndexOf(" ", label7.Text.IndexOf(" ", label7.Text.IndexOf(" ", label7.Text.IndexOf(" ", label7.Text.IndexOf(" ") + 1) + 1) + 1) + 1) + 1) + 1) + 1); var firstString = label7.Text.Substring(0, firstSpaceIndex); var secondString = label7.Text.Substring(firstSpaceIndex + 1); graph.DrawString("***" + firstString, font, XBrushes.Black, new XRect(1.06299 * 72, 1.771653543 * 72, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); graph.DrawString(secondString + "***", font, XBrushes.Black, new XRect(0.393701 * 72, 2.12598 * 72, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); } else { graph.DrawString("***" + label7.Text + "***", font, XBrushes.Black, new XRect(1.06299 * 72, 1.771653543 * 72, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft); } SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = "PDF document (*.pdf)|*.pdf"; DialogResult result = dialog.ShowDialog(); string fileName = dialog.FileName; if (result == DialogResult.OK) { pdf.Save(fileName); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Именно это я и пытался сделать.Это позволит сохранить pdf-файл на нашем компьютере.Но мне не нужно, чтобы мне нужно было непосредственно распечатать pdf-файл при нажатии кнопки.Любая помощь будет очень признательна.Заранее спасибо.
Sibasisjena
Пожалуйста, попробуйте ссылку
Создать-прочитать-заранее-pdf-отчет-используя iTextSharp-в
Suvendu Shekhar Giri
winforms - как распечатать PDF с помощью C# - переполнение стека[^]