2009-07-20 5 views
1

Je tente actuellement d'imprimer un document à partir de WPF. J'utilise le navigateur web car il contient un contrôle x actif qui a le plugin autodesk dont j'ai besoin pour voir le document. Je suis conscient que WPF ne prend pas directement en charge le navigateur Web, mais je viens d'intégrer la bibliothèque Windows Forms pour cela. J'ai réussi à exécuter le code et même à imprimer, mais le document qui est imprimé est vide. Je ne suis pas sûr si cela pourrait être un conflit entre la bibliothèque Windows Forms et WPF; Je navigue vers le document et je n'imprime qu'une fois chargé sans erreur.Impression d'un fichier dwf/dwfx à partir de WPF

Voici le code que je utilise:

private void btnPrint_Click(object sender, RoutedEventArgs e) 
    { 
     System.Windows.Forms.WebBrowser w = new System.Windows.Forms.WebBrowser(); 

     Uri uri = new Uri("C:\\BOS-BD-4518-000.dwg.dwf"); 
     w.Navigate(uri); 

     w.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(w_DocumentCompleted); 
    } 

    void w_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e) 
    { 
     System.Windows.Forms.WebBrowser w = (System.Windows.Forms.WebBrowser)sender; 

     w.Print(); 
    } 

Un attelage possible pourrait être que le contrôle actif de x n'est pas autorisé à être charge, personne ne sait comment forcer le contrôle à initialisées.

Est-ce que quelqu'un a des idées sur la façon de résoudre ce ou une autre méthode d'impression d'une autodesk (.dwf) Document

Merci à l'avance, SumGuy

+2

Avez-vous essayé d'utiliser le contrôle WPF WebBrowser pré-encapsulé à partir de .NET 3.5 SP1? http://blogs.msdn.com/llobo/archive/2008/06/12/wpf-webbrowser.aspx D'ailleurs, avez-vous essayé d'imprimer directement à partir d'Internet Explorer? – IanGilham

+0

A ma connaissance le WPF WebBrowser ne contient pas d'option d'impression. Il y a peut-être un moyen de le faire (cela aurait du sens) mais je n'ai pas réussi à le trouver. J'ai imprimé le document directement à partir d'Internet Explorer et cela fonctionne, mais j'ai été invité à propos du contrôle x actif et je devais l'autoriser avant qu'il ne soit chargé, ce qui m'a fait me demander si c'est le problème – SumGuy

Répondre

1

Pas vraiment une réponse de toutes sortes, mais une solution si n'importe qui veut imprimer un fichier .dwf. Ne pas, utilisez le nouveau formulaire .dwfx. C'est le nouveau type de fichier qu'Autodesk change aussi et c'est en fait une forme de XPS qui rend les choses assez faciles. Vous pouvez le charger dans un navigateur Web sans avoir besoin de x actif (c'est la meilleure façon) d'utiliser les bibliothèques XPS dans Visual Studio car il peut être chargé très simplement dans une visionneuse XPS.

Le code que finalement utilisé pour imprimer le fichier redoutée est ci-dessous:

private PrintQueue printQueue; 

PrintDialog pDialog = new PrintDialog(); 
pDialog.PageRangeSelection = PageRangeSelection.AllPages; 
pDialog.UserPageRangeEnabled = true; 

if (pDialog.ShowDialog() == true) 
    PrintSystemJobInfo xpsPrintJob = printQueue.AddJob(v.FileName, v.FilePath, false); 

Comment est facile que ??? Il y a plein d'autres façons de le faire en utilisant XPS. Vous pouvez simplement utiliser le fichier dwfx en tant que document XPS

Questions connexes