none
Options d'impression (PrintOut) en C# ne sont prisent en compte. RRS feed

  • Discussion générale

  • Bonjour,

    je développe une application en C# qui communique avec Word et Excel. Je suis bloqué sur la prise en compte de certaines options d'impression des documents. J'utilise la méthode "PrintOut" (https://msdn.microsoft.com/fr-fr/library/microsoft.office.tools.word.document.printout.aspx), et les documents sortent bien à l'imprimante. Cependant, les options : recto-verso, assemblée, ...; ne fonctionnent pas contrairement aux options de nombre de copie.

    Y-a-t-il un paramétrage particulier dans Office pour que les paramètres soient pris en compte ?

    Faut-il utiliser une autre méthode ? la quelle ?

    Cordialement.

    Matthieu

    jeudi 5 janvier 2017 08:53

Toutes les réponses

  • Bonjour,
    Consultez la classe PrinterSettings. Pour imprimer recto-verso utilisez la propriété PrinterSettings.Duplex.

    Corialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 6 janvier 2017 08:02
    Modérateur
  • Bonjour Nina,

    Merci pour votre retour, cependant j'ai déjà regardé cette classe mais mon souci est de lier cette classe PrinterSettings à mon objet Microsoft.Office.Interop.Word.Application ou Microsoft.Office.Interop.Word.Document.

    Voici mon code :

    using System.Drawing.Printing;
    using System.Reflection;
    
    namespace Word{
        class PrintDocument
        {
            private static void PrintDocumentWord()
            {
                object missing = Missing.Value;
                object Background = false;
                object Range = Microsoft.Office.Interop.Word.WdPrintOutRange.wdPrintAllDocument;
                object Copies = 2;
                object PageType = Microsoft.Office.Interop.Word.WdPrintOutPages.wdPrintAllPages;
                object PrintToFile = false;
                object Collate = false;
                object ActivePrinterMacGX = missing;
                object ManualDuplexPrint = Duplex.Simplex;
                object PrintZoomColumn = missing;
                object PrintZoomRow = missing;
                object readOnly = false;
                object isVisible = true;
    
                object filename = @"C:\Editions\Fichiers\PageTestWord.docx";
    
                //  Création de l'objet de l'application Word
                Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
                wordApp.Visible = true;
                //  Création de l'objet document Word
                Microsoft.Office.Interop.Word.Document aDoc = null;
    
                // Ouverture du document Word
                aDoc = wordApp.Documents.Open(ref filename, ref missing, ref readOnly,
                    ref missing, ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref isVisible, ref missing,
                    ref missing, ref missing, ref missing);
    
                // Pilotage du nom de l'imprimante destinataire
                wordApp.ActivePrinter = "iR-ADV C3320";
                wordApp.Options.PrintBackground = false;
                
                // Lancement de l'impression "avec les options"
                aDoc.PrintOut(ref Background, ref missing, ref Range, ref missing,
                    ref missing, ref missing, ref missing, ref Copies,
                    ref missing, ref PageType, ref PrintToFile, ref Collate,
                    ref missing, ref ManualDuplexPrint, ref PrintZoomColumn,
                    ref PrintZoomRow, ref missing, ref missing);
    
                aDoc.Close();
                wordApp.Quit();
            }
        }
    }
    

    Comment Word peut prendre en compte la classe PrinterSettings ?

    Cordialement,

    Matthieu.

    vendredi 6 janvier 2017 08:42