2009-08-12 5 views
0

J'ai une chaîne html et je veux l'imprimer. Je suis d'accord avec lui ouvrant la confirmation ou l'impression boîte de dialogue de prévisualisation Je veux juste une fonction comme celui-ciComment pouvez-vous imprimer une chaîne html à partir de C# (avec la permission de l'utilisateur)?

HtmlPrinter.PrintHtml("<html><body>Page I'm printing</body></html>"); 

quelqu'un sait quelque chose qui fonctionne comme ça?

+0

Il y a un "printf" en langage C ... peut-être que vous devriez essayer ça! :-D (être sarcastique ici) – balexandre

Répondre

3

Les navigateurs Web vous permettent d'imprimer la page en cours. Vous pouvez déclencher la boîte de dialogue d'impression via javascript et vous pouvez utiliser CSS pour styliser cette page de sorte que la sortie imprimée ressemble peu à ce qui est affiché à l'écran, mais c'est à peu près tout ce qui concerne l'impression.

En allant au-delà du format html, vous pouvez utiliser Flash, Silverlight ou un autre plugin de navigateur. Mais vraiment le plus proche que vous pouvez obtenir est quelque chose comme ceci:

<html> 
    <head> 
     <style> 
      @media print 
      { 
       .HidePrint { display:none; visible:none;} 
      } 
      @media screen 
      { 
       .HideScreen {display:none; visible:none;} 
      } 
     </style> 
    </head> 
    <body onload="window.print();"> 
     <div class="HideScreen"> 
      Page I'm printing 
     </div> 
     <div class="HidePrint"> 
      Other content... 
     </div> 
    </body> 
</html> 
+0

Génial, merci! Je ne savais pas que vous pouviez utiliser @media pour spécifier différentes feuilles de style pour l'impression. – Matt

0

Joels réponse est correcte, évidemment.

Pour vous aider à comprendre pourquoi; C# s'exécute sur le serveur, JavaScript s'exécute sur le client. Si vous avez essayé d'imprimer à partir de C#, vous imprimez depuis votre serveur :)

+0

Donne un sens, merci pour l'explication. J'aurais probablement dû poster ce commentaire comme un commentaire, je suppose que c'est pourquoi votre réponse a été votée. – Matt

+0

* hausser les épaules *, n'a pas de sens comme un commentaire à son poste ou le vôtre, à mon humble avis, mais je suis nouveau ici. Cela ne me dérange pas d'être downvoted parce que mes informations sont toujours correctes :) –

Questions connexes