Member 12926744 Ответов: 0

Непосредственно распечатайте 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-файл при нажатии кнопки.Любая помощь будет очень признательна.Заранее спасибо.

0 Ответов