Проект PDFTOprinter позволяет печатать PDF -файлы, использует UTIL PDFTOPRINTE. Пакет содержит pdftoprinter_m.exe и копирует его в выходную папку перед событием сборки. Также он предоставляет класс PDFTOprinterPrinter, который запускает pdftoprinter_m.exe внутри метода «печати» в отдельном процессе с тайм -аутом по умолчанию на 1 минуту (тайм -аут может быть переоборудован 3 -м аргументом). Метод «Печать» запускает новый экземпляр pdftoprinter_m.exe за вызов. По умолчанию Новая печать не запустится, в то время как предыдущий из того же экземпляра PDFTOprinterPrinter не завершена. Но вы можете использовать установленный уровень параллелизма, используя конструктор с аргументами.
ПРИМЕЧАНИЕ. Уровень параллелизма работает внутри экземпляра Pdftoprinterprinter.
Пример использования:
Используйте местный принтер
var filePath = @"c:pathtopdffile.pdf" ;
var printerName = "Vendor Color Printer Name" ;
var printer = new PDFtoPrinterPrinter ( ) ;
printer . Print ( new PrintingOptions ( printerName , filePath ) ) ;Используйте сетевой принтер с тайм -аутом
var filePath = @"c:pathtopdffile.pdf" ;
var networkPrinterName = @"\myprintserverprinter1" ;
var printTimeout = new TimeSpan ( 0 , 30 , 0 ) ;
var printer = new PDFtoPrinterPrinter ( ) ;
printer . Print ( new PrintingOptions ( networkPrinterName , filePath ) , printTimeout ) ;Используйте сетевой принтер с 5 печатью параллелизма. В этом случае до 5 экземпляров pdftoprinter_m.exe будет запущено одновременно
var filePath = @"c:pathtopdffile.pdf" ;
var networkPrinterName = @"\myprintserverprinter1" ;
var allowedCocurrentPrintings = 5 ;
var printer = new PDFtoPrinterPrinter ( allowedCocurrentPrintings ) ;
for ( var i = 0 ; i < 10 ; i ++ )
{
wrapper . Print ( new PrintingOptions ( networkPrinterName , filePath ) ) ;
}Если вам нужно удалить файлы после печати, вы можете использовать "CleanupFilesprinter":
var filePath = @"c:pathtopdffile.pdf" ;
var networkPrinterName = @"\myprintserverprinter1" ;
var printer = new CleanupFilesPrinter ( new PDFtoPrinterPrinter ( ) ) ;
printer . Print ( new PrintingOptions ( networkPrinterName , filePath ) ) ; Пакет Pdftoprinter доступен только на машинах Windows. Если приложение ссылается на Framework Net5.0 , а затем, то необходимо изменить «TargetFrameWork» на Net [версия] .0-Windows в файле CSPROJ . Например
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net7.0-windows</TargetFramework>
</PropertyGroup>
</Project>