Нужно распечатать документ из программы, при этом, чтобы конечный пользователь не увидел поверх главного окна окошко с прогрессом печати

Необходимо создать локальный сервер печати

code: #csharp
using System;
using System.IO;
using System.Printing;
using System.Text;
 
namespace PrintTest
{
    class Program
    {
        static void Main(string[] args)
        {
            LocalPrintServer localPrintServer = new LocalPrintServer();
            localPrintServer.NetPopup = false; // Убираем поп-ап о завершении печати
 
            // Задаем принтер для печати (можно выставить принтер по умолчанию)
            PrintQueue defaultPrintQueue = localPrintServer.GetPrintQueue("HP PSC 1500 series"); ;
            localPrintServer.DefaultPrintQueue = defaultPrintQueue;
            localPrintServer.Commit();
 
            // Добавление задания
            PrintSystemJobInfo myPrintJob = defaultPrintQueue.AddJob();
 
            // Отправляем нужный текст в поток задания
            Stream myStream = myPrintJob.JobStream;
            Byte[] myByteBuffer = UnicodeEncoding.Unicode.GetBytes("This is a test string for the print job stream.");
            myStream.Write(myByteBuffer, 0, myByteBuffer.Length);
            myStream.Close();
 
            Console.WriteLine("Задание на печать добавлено в очередь печати");
            Console.ReadLine();
        }
    }
}
Поделиться:

Похожие статьи: