Impression d'une page HTML, la page en C#
Je suis à la recherche d'un moyen d'imprimer une page html, fichier en mode paysage en c# (principalement wpf). Boîte de dialogue d'impression serait bien afin de définir la mise en page en mode paysage. J'ai essayé à l'aide de Microsoft html pour xaml convertisseur et il l'a détruit la mise en forme. Je trouve assez étonnant qu'il n'existe pas de méthode ou de se saisir d'un fichier et l'envoyer directement à une imprimante.
Toutes les idées seront très appréciés.
OriginalL'auteur Demetri | 2010-10-14
Ce code est évidemment pour les Windows Forms au lieu de WPF. WPF contrôle WebBrowser ne prend pas en charge ce (il ne peut pas imprimer).
il peut -
(WebBrowser.Document as MSHTML.IHTMLDocument2).execCommand("Print", false, 0)
OriginalL'auteur Thunder
Vous pouvez accéder à la méthode Print() de la Classe WebBrowser, en C# pour ce faire. Le truc cool, c'est que vous n'avez pas besoin d'afficher le Navigateur de n'importe où dans votre application. Tout simplement nourrir le contenu pour le Contrôle WebBrowser comme suit:
webBrowser1.DocumentContent = openfiledialog.FileName;
Et puis il suffit d'appeler le
webBrowser1.Print();
méthode. Voici une référence MSDN:http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.print.aspx
Espère que cette aide.
OriginalL'auteur
Pendant de nombreuses années, nous avons utilisé l' .net contrôle WebBrowser comme indiqué dans d'autres réponses, cependant, plus récemment que le contrôle est devenu de plus en plus instable. Même la reconstruction de la machine que nous utilisons pour l'impression de notre sélection de feuilles dans l'entrepôt à l'exécution de Windows 10, nous avons encore des problèmes avec les pages simplement jamais l'impression jusqu'à ce que nous le redémarrage de l'ordinateur. Le même code nous a bien servi pour 4 ans et+, mais maintenant il semble que les récentes mises à jour de Microsoft ont fait de ce contrôle encore plus buggé qu'il ne l'était dans le passé.
L'autre problème majeur est qu'il n'y a pas de moyen facile d'imprimer sur une imprimante autre que l'ensemble par défaut pour Internet Explorer, donc si vous souhaitez imprimer des imprimantes, vous êtes assez bien de la chance avec ce contrôle.
Il y a plusieurs années, nous avons écrit une version de notre impression de code pour les bordereaux d'emballage à l'aide de C++ et de la QtWebKit de la bibliothèque. Donc pour résoudre ces problèmes, j'ai creusé jusqu'à l'ancienne application C++ qui a imprimé des pages web fichiers et l'a transformé en ce projet à l'impression au moyen de la ligne de commande, et permis d'imprimer sur des imprimantes.
Vous pouvez obtenir le code source ici:
https://github.com/kendallb/PrintHtml
et vous pouvez télécharger une version 32 bits binaires pré-compilés pour Windows avec MinGW à partir d'ici:
https://github.com/kendallb/PrintHtml/blob/master/deploy/PrintHtml-window-x86.zip?raw=true
Le code est entièrement portable, alors vous pouvez facilement compiler pour qu'il fonctionne sur macOS ou Linux si désiré à partir du code source.
La ligne de commande est assez facile à utiliser et l'utilisation est ci-dessous:
Évidemment à l'utiliser depuis un .net application, vous devez reproduire sur la ligne de commande, mais c'est assez facile à faire. En supposant que le PrintHtml.exe le programme est dans le répertoire bin de votre application ou site web, vous pouvez l'exécuter à partir .net comme suit:
Profitez-en!
OriginalL'auteur Kendall Bennett
Il me semble que la meilleure façon que vous voulez prendre est de choisir d'abord le moteur de rendu HTML et de le regarder pour le support de l'impression. Il n'y a pas de façon "standard" pour imprimer un document HTML, indépendamment de la langue, OS, ou un cadre.
OriginalL'auteur James Dunne
Peut-être quelque chose comme:
OriginalL'auteur Kamyar