Cela ne nécessite pas de bibliothèque, mais nécessite Adobe Reader DC sur l'ordinateur sur lequel l'application est installée. Si vous ne souhaitez utiliser aucun type d'outil externe, vous devez créer votre propre fonctionnalité pour ce faire. Adobe Reader DC peut être appelé avec une commande pour vous permettre d'imprimer le document. Ce n'est pas une solution élégante du tout pour la gestion des erreurs ou de fermer le processus, mais il est un squelette que vous pouvez modifier:
private static void PrintDocument(string fileName)
{
var process = new Process
{
StartInfo =
{
WindowStyle = ProcessWindowStyle.Hidden,
Verb = "print",
FileName = @"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe", //You could use an app config string here
Arguments = [email protected]"/p /h {fileName}",
UseShellExecute = false,
CreateNoWindow = true
}
};
process.Start();
if (process.HasExited == false)
{
process.WaitForExit(10000);
}
process.EnableRaisingEvents = true;
try
{
//Try to gracefully exit the process first
var proccessIsClosed = process.CloseMainWindow();
//If it doesn't gracefully close, kill the process
if (!proccessIsClosed)
{
process.Kill();
}
}
catch
{
throw new Exception("Process ID " + process.Id +
" is unable to gracefully close. Please check current running processes.");
}
}
Vous pouvez imprimer sans une boîte de dialogue d'impression, mais vous ne pouvez toujours pas envoyer un PDF directement à l'imprimante . – Paparazzi