Le projet PDFTOPrinter permet d'imprimer des fichiers PDF utilise Pdftopriner Util. Le package contient pdftoprinter_m.exe et le copie dans le dossier de sortie avant l'événement de construction. Il fournit également la classe PDFtOprinterPrinter qui exécute PDFTOPRINTER_M.EXE à l'intérieur d'une méthode "Imprimer" dans un processus séparé avec un délai de temps défaut par défaut (le délai d'expiration peut être remplacé par le 3ème argument). La méthode "Print" exécute une nouvelle instance PDFTOPRINTER_M.EXE par appel. Par défaut, la nouvelle impression ne démarre pas tandis que la précédente à partir de la même instance PdftOprinterPrinter n'est pas terminée. Mais vous pouvez utiliser le niveau de concurrence set à l'aide du constructeur avec des arguments.
Remarque: le niveau de concurrence fonctionne à l'intérieur de l'instance PdftOprinterPrinter.
Exemple d'utilisation:
Utiliser l'imprimante locale
var filePath = @"c:pathtopdffile.pdf" ;
var printerName = "Vendor Color Printer Name" ;
var printer = new PDFtoPrinterPrinter ( ) ;
printer . Print ( new PrintingOptions ( printerName , filePath ) ) ;Utilisez l'imprimante réseau avec le délai d'expiration
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 ) ;Utilisez l'imprimante réseau avec 5 impressions de concurrence. Dans ce cas, jusqu'à 5 instances de pdftoprinter_m.exe seront démarrées simultanément
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 ) ) ;
}Si vous devez supprimer des fichiers après l'impression, vous pouvez utiliser "CleanupFilesPrinter":
var filePath = @"c:pathtopdffile.pdf" ;
var networkPrinterName = @"\myprintserverprinter1" ;
var printer = new CleanupFilesPrinter ( new PDFtoPrinterPrinter ( ) ) ;
printer . Print ( new PrintingOptions ( networkPrinterName , filePath ) ) ; Le package Pdftoprinter est disponible uniquement sur les machines Windows. Si une application fait référence à Framework Net5.0 et plus tard, il est nécessaire de modifier "TargetFramework" en net [version] .0-windows dans un fichier csproj . Par exemple
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net7.0-windows</TargetFramework>
</PropertyGroup>
</Project>