Escorp.Printing 1.0.1

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Escorp.Printing --version 1.0.1
NuGet\Install-Package Escorp.Printing -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Escorp.Printing" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Escorp.Printing --version 1.0.1
#r "nuget: Escorp.Printing, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Escorp.Printing as a Cake Addin
#addin nuget:?package=Escorp.Printing&version=1.0.1

// Install Escorp.Printing as a Cake Tool
#tool nuget:?package=Escorp.Printing&version=1.0.1

Escorp Printing

API для управления виртуальными устройствами печати

NuGet | Habr


Работа со службой печати

Безопасный перезапуск
if (PrintingApi.TryRestart()) Console.WriteLine("Служба печати перезапущена");

Работа с монитором печати

Традиционная установка
Monitor monitor = new("mfilemon", "drivers/x64/mfilemon.dll");
monitor.Install();
Безопасная установка
Monitor monitor = new("mfilemon", "drivers/x64/mfilemon.dll");

if (monitor.TryInstall()) Console.WriteLine("Монитор установлен");
Безопасная установка с перехватом исключений
Monitor monitor = new("mfilemon", "drivers/x64/mfilemon.dll");

if (!monitor.TryInstall(out PrintingException? ex)) Console.WriteLine(ex?.Message);
Каноническая установка
Monitor monitor = PrintingApi.CreateMonitor("mfilemon", "drivers/x64/mfilemon.dll");
Традиционное удаление
monitor.Uninstall();
Безопасное удаление
if (monitor.TryUninstall()) Console.WriteLine("Монитор удалён");
Безопасное удаление с перехватом исключений
if (!monitor.TryUninstall(out PrintingException? ex)) Console.WriteLine(ex?.Message);

Работа с портом

Традиционная установка
Port port = new("TESTPORT:", "Description for TESTPORT:", "mfilemon");
port.Install();
Безопасная установка
Port port = new("TESTPORT:", "Description for TESTPORT:", "mfilemon");

if (port.TryInstall()) Console.WriteLine("Порт открыт");
Безопасная установка с перехватом исключений
Port port = new("TESTPORT:", "Description for TESTPORT:", "mfilemon");

if (!port.TryInstall(out PrintingException? ex)) Console.WriteLine(ex?.Message);
Каноническая установка
Port port = PrintingApi.OpenPort("TESTPORT:", "Description for TESTPORT:", monitor);
Традиционное удаление
port.Uninstall();
Безопасное удаление
if (port.TryUninstall()) Console.WriteLine("Порт закрыт");
Безопасное удаление с перехватом исключений
if (!port.TryUninstall(out PrintingException? ex)) Console.WriteLine(ex?.Message);

Работа с драйвером

Традиционная установка
const string root = "drivers/x64";
Driver driver = new("Test Driver", $"{root}/pscript5.dll", $"{root}/testprinter.ppd", $"{root}/ps5ui.dll", $"{root}/pscript.hlp", "mfilemon");
driver.Install();
Безопасная установка
Driver driver = new("Test Driver", $"{root}/pscript5.dll", $"{root}/testprinter.ppd", $"{root}/ps5ui.dll", $"{root}/pscript.hlp", "mfilemon");

if (driver.TryInstall()) Console.WriteLine("Драйвер установлен");
Безопасная установка с перехватом исключений
Driver driver = new("Test Driver", $"{root}/pscript5.dll", $"{root}/testprinter.ppd", $"{root}/ps5ui.dll", $"{root}/pscript.hlp", "mfilemon");

if (!driver.TryInstall(out PrintingException? ex)) Console.WriteLine(ex?.Message);
Каноническая установка
const string driverFile = $"{root}/pscript5.dll";
const string dataFile = $"{root}/testprinter.ppd";
const string configFile = $"{root}/ps5ui.dll";
const string helpFile = $"{root}/pscript.hlp";
Driver driver = PrintingApi.InstallDriver("Test Driver", driverFile, dataFile, configFile, helpFile, 3, Environment.Current, DataType.RAW, null, monitor);
Традиционное удаление
driver.Uninstall();
Безопасное удаление
if (driver.TryUninstall()) Console.WriteLine("Драйвер удалён");
Безопасное удаление с перехватом исключений
if (!driver.TryUninstall(out PrintingException? ex)) Console.WriteLine(ex?.Message);

Работа с принтером

Традиционная установка
Printer printer = new("Test Printer", "TESTPORT:", "Test Driver");
printer.Install();
Безопасная установка
Printer printer = new("Test Printer", "TESTPORT:", "Test Driver");

if (printer.TryInstall()) Console.WriteLine("Принтер открыт");
Безопасная установка с перехватом исключений
Printer printer = new("Test Printer", "TESTPORT:", "Test Driver");

if (!printer.TryInstall(out PrintingException? ex)) Console.WriteLine(ex?.Message);
Каноническая установка
Printer printer = PrintingApi.RunPrinter("Test Printer", port, driver);
Традиционное удаление
printer.Uninstall();
Безопасное удаление
if (printer.TryUninstall()) Console.WriteLine("Принтер закрыт");
Безопасное удаление с перехватом исключений
if (!printer.TryUninstall(out PrintingException? ex)) Console.WriteLine(ex?.Message);

Тестирование

  • Тесты реализованы на базе xUnit.
  • Все необходимые файлы для теста установки виртуального принтера доступны после сборки в каталоге drivers.
  • Тесты необходимо запускать в логическом порядке. Первым должен быть установлен монитор, затем порт, затем драйвер и после этого - принтер. Удаление должно происходить в обратном порядке.

Демо

Product Compatible and additional computed target framework versions.
.NET net6.0-windows7.0 is compatible.  net7.0-windows was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated