PhilSfr
Messages postés3Date d'inscriptionlundi 20 décembre 2010StatutMembreDernière intervention22 juin 2011
-
20 juin 2011 à 17:30
Whismeril
Messages postés19024Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention18 avril 2024
-
22 juin 2011 à 18:03
Bonjour,
J'utilise la bibliothèque Microsoft.Office.Interop.Excel pour imprimer des fichiers Excel par programme.
En projet console l'impression fonctionne :
PhilSfr
Messages postés3Date d'inscriptionlundi 20 décembre 2010StatutMembreDernière intervention22 juin 2011 21 juin 2011 à 14:42
De plus dans mon programme console (fonctionnel), lorsque je provoque moi-même une erreur d'exécution à PrintOut (exemple: paramètre invalide), là je vais bien dans le catch.
Whismeril
Messages postés19024Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention18 avril 2024656 22 juin 2011 à 07:28
Bonjour
pour avoir une idée de comment paramétrer mes méthodes Microsoft.Office.Interop.Excel, je lance un classeur et j'enregistre une macro correspondant à l'action que je veux réaliser.
Pour imprimer une page dans PdfCretor ça me donne ça:
Application.ActivePrinter = "PDFCreator sur Ne00:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"PDFCreator sur Ne00:", Collate:=True
On constate que les paramètres "from" et "to" ou tu as mis "1" ne sont pas présents et que Collate = true.
Ensuite quand tu tapes la méthode "PrintOut" Intellisense t'indique que les paramètres d'entrée sont des "object" et tu as mis des "int" et des "type".
Voila ce qui marche chez moi pour Excel 2003
object M = System.Reflection.Missing.Value;
object Copies = (object)1;//cast ton int en object
object PrinterName = (object) "PDFCreator sur Ne00:";// cast le string en object
object Vrai = (object)true;//cast le bool en object
_ApplicationXL.ActivePrinter = PrinterName.ToString();
_MonClasseur.PrintOut(M, M, Copies, M, PrinterName, M,Vrai, M);
J'ai fais une source sur Excel, dans laquelle je n'avais pas implémenté de module d'impression, je la mettrai à jour prochainement.