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.
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); } }