Définition des préférences de l’imprimante – Orientation de la page sur Paysage

J’aimerais définir l’orientation de la page sur LandScape pour l’impression de la feuille de calcul Excel de mon projet Excel Vsto. Manuellement, l’orientation de la page est définie à partir de la fenêtre Préférences de l’ imprimante qui est affichée à partir du formulaire “Imprimer”.

J’ai besoin d’automatisation qui définira l’orientation sur LandScape chaque fois que l’utilisateur donne la commande d’impression.

entrez la description de l'image ici

J’ai remarqué que si je définissais l’orientation vers LandScape à partir de mon application Excel, elle restait la même si je voulais imprimer une application MS-Word et vice versa. Donc, il doit y avoir une sorte d’indicateur qui peut être changé à partir de n’importe quelle application winform simple.

Existe-t-il un moyen de manipuler les propriétés?

Je n’ai trouvé aucun moyen de personnaliser les parameters d’imprimante d’une imprimante individuelle. Voici le code qui a fonctionné pour moi pour l’application EXCEL.

CommonData._WORKBOO K est un object de classeur statique.

 Worksheet ws = CommonData._WORKBOOK.Application.ActiveSheet as Worksheet; var _with1 = ws.PageSetup; _with1.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlLandscape; CommonData._WORKBOOK.Application.Dialogs[Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogPrint].Show(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

Vous pouvez essayer quelque chose comme ce qui suit devrait fonctionner pour vous

 public void CustPrinting() { try { strPrint = new StreamReader (filePath); try { printFont = new Font("Arial", 10); PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); pd.PrinterSettings.PrinterName = printer; // Set the page orientation to landscape. pd.DefaultPageSettings.Landscape = true; pd.Print(); } finally { strPrint.Close() ; } } catch(Exception ex) { MessageBox.Show(ex.Message); } }