2009-12-09 6 views
1

Nous avons du code C# dans un module PowerPoint pour l'impression personnalisée. Dans Office 2003,Boîte de dialogue d'impression PowerPoint 2007 via C#

SendKeys.Send("^+{F12}"); 

fonctionne correctement pour afficher la boîte de dialogue Imprimer après avoir effectué certaines tâches.

Mais dans Office 2007, ce n'est pas le cas, mais simplement l'envoi du document à l'imprimante sans le dialogue.

Obtenir le dialogue est très important.

en utilisant "^ {p}" ou "^ p" car la chaîne va aboutir à la même chose, pas de dialogue.

L'exécution de la commande via:

Application.CommandBars.ExecuteMso("FilePrint"); 

sera également acheive la même chose, pas de dialogue. Des indices, des conseils ou des suggestions sur la façon dont je peux faire apparaître le dialogue d'impression seraient très appréciés.

Répondre

0

Pour mémoire, voici comment j'ai pu finalement obtenir ce travail, mais je ne pleinement comprendre pourquoi.

trois choses nécessaires (tous nécessaires)
- utiliser ExecuteMso au lieu de SendKeys
- supprimer le code avant d'imprimer une diapositive qui a sélectionné particulier
- Ajouter un appel à Application.DoEvents() après ExecuteMso()

Fonctionne également correctement avec le code de sélection restauré, mais après l'appel d'impression, y compris également un appel DoEvents().

0
+0

Merci pour la référence. La suggestion ici est d'utiliser: PrintOptions.PrintInBackground = Microsoft.Office.Core.MsoTriState.msoFalse; Dans mon cas, une fenêtre de progression apparaît pour montrer quelles pages sont en cours d'impression, mais ne provoque pas l'affichage du dialogue d'impression, –

Questions connexes