J’ai un code où j’imprime le document Word. Dans l’exemple de document, il y a une section avec picure qui a modifié les marges par utilisateur.
Lorsque j’exécute le code, je reçois le message suivant:
La marge de la section 1 est définie en dehors de la zone imprimable.
Après avoir traité le document, il commence à spouler et lance cette promesse Comment désactiver la boîte de dialog de notification?
mon code jusqu’à présent:
Process printJob = new Process(); printJob.StartInfo.Verb = "PrintTo"; printJob.StartInfo.Arguments = printerName; printJob.StartInfo.ErrorDialog = false; printJob.StartInfo.CreateNoWindow = true; printJob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; printJob.StartInfo.FileName = path; printJob.StartInfo.UseShellExecute = true; printJob.StartInfo.Verb = "print"; printJob.Start();
Où chemin de variable> est le chemin du nom de fichier
http://word.mvps.org/faqs/macrosvba/OutsidePrintableArea.htm
Selon cela, vous devez désactiver l’impression en arrière-plan, puis désactiver Application.DisplayAlerts.
MODIFIER
Vous ne pourrez pas le faire avec Process
. Le verbe “print” utilise / x / dde pour indiquer à Word d’imprimer:
/ x Démarre une nouvelle instance de Word à partir du shell d’exploitation (par exemple, pour imprimer dans Word). Cette instance de Word répond à une seule demande DDE et ignore toutes les autres requêtes DDE et les multi-instances. Si vous démarrez une nouvelle instance de Word dans l’environnement d’exploitation (par exemple, sous Windows), il est recommandé d’utiliser le commutateur / w, qui démarre une instance entièrement opérationnelle.
Pour supprimer le message, vous devrez faire une interopérabilité à la place:
Print(ssortingng path)
: Application wordApp = new Application(); wordApp.Visible = false; //object missing = Type.Missing; wordApp.Documents.Open(path); //for VS 2008 and earlier - just give missing for all the args wordApp.DisplayAlerts = WdAlertLevel.wdAlertsNone; wordApp.ActiveDocument.PrintOut(false); //as before - missing for remaining args, if using VS 2008 and earlier wordApp.Quit(WdSaveOptions.wdDoNotSaveChanges); //ditto