Bonjour la communauté stackoverflow, je développe une application Windows simple formulaire qui a un écouteur dans un répertoire spécifique à l'écoute d'un fichier txt, si l'auditeur détecte un nouveau fichier, il envoie automatiquement le fichier txt à une imprimante par défaut locale, mais il affiche également une boîte de dialogue "Enregistrer l'impression sous" et j'ai besoin que le processus d'impression soit instantané, sans avoir à interagir avec une boîte de dialogue. Pour cela, j'utilise l'espace de noms courant "using System.Drawing.Printing; using System.IO;" et j'ai vu la définition de la méthode Print(), mais il semble que le code est protégé, donc je ne peux pas avoir accès à la boîte de dialogue "save print output as". Des idées?Comment faire pour supprimer la boîte de dialogue "Enregistrer l'impression sous" lors de l'impression d'un fichier txt dans C#
Voici mon code ...
Le Filewatcher:
private void fileSystemWatcher1_Created(object sender, FileSystemEventArgs e)
{
try
{
MyPrintMethod(e.FullPath);
}
catch (IOException)
{
}
}
Ma méthode d'impression:
private void MyPrintMethod(string path)
{
string s = File.ReadAllText(path);
printDocument1.PrintController = new StandardPrintController();
printDocument1.PrintPage += delegate (object sender1, PrintPageEventArgs e1)
{
e1.Graphics.DrawString(s, new Font("Times New Roman", 12), new SolidBrush(Color.Black), new RectangleF(0, 0, printDocument1.DefaultPageSettings.PrintableArea.Width, printDocument1.DefaultPageSettings.PrintableArea.Height));
};
try
{
printDocument1.Print();
}
catch (Exception ex)
{
throw new Exception("Exception Occured While Printing", ex);
}
}
Je ne peux pas vous voir en spécifiant l'imprimante à imprimer. –
essayez ce lien pour des idées ou faire une recherche google - http://stackoverflow.com/questions/10572420/how-to-skip-the-dialog-of-printing-in-printdocument-print-and-print-page- direc – MethodMan
Où 'printDocument1' est-il défini? J'ai simplement copié et collé votre code, mais j'ai dû ajouter 'var printDocument1 = new PrintDocument();' pour qu'il compile, et il a bien imprimé sur mon imprimante par défaut ici au travail sans dialogues. –