Voila un code en C# qui permet de lancer une impression acrobat en lancant acrobat reader en tache de fond.
private
bool Print(string filename)
{
bool impressionOk = false;
string leFichier = filename;
Process myProcess =
new Process();
try
{
myProcess.StartInfo.FileName = @leFichier;
myProcess.StartInfo.Verb = "Print";
//indiquer que processus ne doit pas démarré dans une nouvelle fenêtre.
myProcess.StartInfo.CreateNoWindow =
true;
//indiquer si une boîte de dialogue d'erreur sera affichée
//pour l'utilisateur si le processus ne peut pas démarrer.
myProcess.StartInfo.ErrorDialog =
false;
//définir l'état de la fenêtre à utiliser lors du démarrage du processus à cachée.
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
//Démarrer le process d'impression
impressionOk = myProcess.Start();
//Bloquer la suite des traitement afin que l'impression soit terminée
myProcess.WaitForExit(10000);
try
{
bool fermerFenetre = myProcess.CloseMainWindow();
if (fermerFenetre)
{
myProcess.Dispose();
}
else
{
myProcess.Kill();
myProcess.WaitForExit(10000);
}
MessageBox.Show("Impression Ok");
return impressionOk = true;
}
catch (Exception a)
{
MessageBox.Show("erreur:"+a.Message);
return impressionOk;
}
}
catch (Win32Exception e)
{
if(e.NativeErrorCode == ERROR_FILE_NOT_FOUND)
{
MessageBox.Show("erreur2:"+e.Message);
}
else if (e.NativeErrorCode == ERROR_ACCESS_DENIED)
{
MessageBox.Show("erreur3:"+e.Message);
}
else
{
MessageBox.Show("erreur4:"+e.Message);
}
return impressionOk;
}
catch (Exception u)
{
MessageBox.Show("erreur5:"+u.Message);
return impressionOk;
}
}