Serveur d'impression

Impression en ASP.NET – Bien choisir son serveur d impression

Par Titanfall , le 12 juin 2019 - 8 minutes de lecture

Les tâches très courantes, nécessaires dans presque tous les types d'applications sont la création de rapports et l'impression. Avant ou plus tard, vous devrez
fournir une option d'impression à vos utilisateurs. Dans Windows Forms, les problèmes d'impression sont mieux définis, mais lors de l'utilisation de
ASP.NET, l’impression de formulaire Web n’est pas si facile.

Il y a quelques questions, d'abord, voulez-vous imprimer sur le serveur
ou du côté client. Si vous souhaitez imprimer côté serveur, vous pouvez utiliser les classes System.Drawing.Printing exactement comme lorsque vous travaillez avec .Net.
Application Windows Forms. Mais si vous essayez d'activer l'installation d'impression côté client, vous devez prendre en compte plus
contraintes et différentes solutions possibles, en fonction de vos besoins spécifiques.

Bouton d'impression avec javascript – solution simple et rapide

Le moyen le plus simple d’imprimer un formulaire Web consiste à utiliser le javascript côté client. Pour imprimer une page Web, vous pouvez utiliser le code suivant:

<contribution
type= "bouton"
valeur= "Imprimer"
sur clic= "window.print ();">

Ce code HTML renverra un bouton Imprimer comme ci-dessous. Vous pouvez cliquer dessus pour imprimer cette page.

Cet exemple utilise la méthode window.print (). Cette méthode imprimera votre page Web complète, y compris un bouton Imprimer et
tout le reste, comme le menu de navigation, la publicité, le champ de recherche, etc. Cela n'a probablement pas l'air professionnel, mais cela pourrait être utile dans certains scénarios.

Pour obtenir de meilleurs résultats, vous pouvez créer deux versions de page Web, une pour l'affichage à l'écran et une autre pour
impression. Ensuite, votre bouton d'impression ouvrira la version imprimée dans une autre fenêtre et appellera la méthode window.print () lors du chargement de la page.

Comment rendre une page Web facile à imprimer

Comme vous pouvez le constater, la méthode window.print () imprimera tout sur votre page, y compris la navigation ou le bouton Imprimer. Pour cette raison, la solution possible est d’avoir deux versions de page, une pour l’affichage à l’écran et une seconde pour l’impression. La version pour l'impression ne contiendra pas de boutons ni de navigation, mais uniquement le rapport formaté pour l'impression. Dans ce cas, votre bouton d'impression aura un code HTML comme celui-ci:

<contribution
type= "bouton"
valeur= "Imprimer"
sur clic= "window.open ('YourPrintPage.aspx')"
/>

Le bouton Imprimer de la première page ouvre uniquement une nouvelle fenêtre et permet d’accéder à la version imprimée de la page. À la fin de YourPrintPage.aspx, vous pouvez ajouter du code javascript pour l’impression, comme ceci:

<scénario
la langue= "javascript">

window.print ();

</scénario>

Ce javascript s'exécutera lors du chargement de la page et vous n'aurez besoin d'aucun bouton sur votre version d'impression.

Il ne s'agit pas seulement de cacher des navigations, des boutons
  et d'autres éléments indésirables. Vous devez utiliser différentes unités métriques. Pour la version d'écran, il est préférable d'utiliser des pixels pour
  Définissez la taille des polices, des tableaux, des images, etc., comme vous le faites probablement déjà. Mais, pour la version imprimée, utilisez des points au lieu de pixels. Par exemple:

corps



Police de caractère: 12 pt;

Évitez la version "imprimable" du même contenu

Il n'est pas nécessaire de créer une autre page uniquement pour l'impression. Au lieu de deux versions du même contenu, il est souvent préférable de résoudre les problèmes de format d'impression avec des styles CSS et de ne disposer que d'une page pour l'impression et l'affichage à l'écran. Jetez un coup d’œil à l’extrait de code html ci-dessous, vous pouvez le placer dans la page étiquette:

<LIEN
rel= "stylesheet"
href= "style-for-screen.css"
type= "text / css"
médias= "écran">

<LIEN
rel= "stylesheet"
href= "style-for-print.css"
type= "text / css"
médias= "print">

Comme vous pouvez le constater, il existe un attribut multimédia dans la balise LINK. Le navigateur Web utilisera style-for-screen.css pour afficher la page à l'écran ou style-for-print.css lors de l'impression de la page. Maintenant, vous pouvez simplement masquer des éléments tels que la navigation, les boutons, etc. Par exemple, disons que votre menu de navigation est à l'intérieur

tag avec id = "navigation". Pour le masquer, le code de fichier de style-for-print.css devrait être:

#la navigation

afficher : aucun

Ou, si vous ne voulez pas avoir deux fichiers CSS, vous pouvez tout faire en un seul fichier, avec un code comme celui-ci:

@médias

impression


/ ***** Styles pour l'impression ****** /


h1, h2,
h3 Couleur:noir;


#la navigation afficher:aucun

@médias

écran


/ ***** Styles pour l'écran ****** /

Impression avec un document PDF

L'impression d'une page HTML peut être très compliquée. Vous pouvez rencontrer des problèmes avec les styles, mais également avec différents systèmes d'exploitation clients, différents navigateurs Web et même différentes versions de navigateurs Web. Rendre votre page compatible avec tous ces cas possibles nécessite beaucoup de travail et de tests. Pour cette raison, vous pouvez envisager d'utiliser le format PDF pour l'impression, car ce format est indépendant de la plate-forme. Dans ce cas, votre bouton d'impression peut être un simple téléchargement d'un document PDF. Vous pouvez même créer une fonction d’aperçu avant impression si vous affichez un document PDF sur une page Web, dans le contrôle serveur ASP.NET. Pour en savoir plus à ce sujet, consultez Comment afficher des documents PDF avec le didacticiel ASP.NET.

Pour créer des fichiers PDF, vous pouvez utiliser le moteur Crystal Reports. Reportez-vous au didacticiel Exporter Crystal Reports au format PDF pour plus d'informations.

Imprimer avec un contrôle Windows personnalisé

Les applications .NET Windows Forms peuvent imprimer à l'aide de classes System.Drawing.Printing. Avec ces classes, vous pouvez accéder directement à l’imprimante locale. Pour des raisons de sécurité, vous ne pouvez pas vous connecter directement à une imprimante locale à partir d'un formulaire Web. Cependant, il est possible de placer un contrôle .NET Windows Forms personnalisé ou même un contrôle ActiveX Win32 en formulaire Web. Custom Control peut accéder directement à l’imprimante locale et vous pouvez imprimer vos documents ou vos rapports comme dans n’importe quelle autre application Windows. Pour plus d’informations sur l’utilisation des contrôles Windows, reportez-vous à la section Comment placer le tutoriel .NET Windows Forms Control vers ASP.NET Web Form.

Le problème lié à l'utilisation de contrôles personnalisés est que l'utilisateur de votre application Web doit installer le contrôle avant utilisation. Bien entendu, le contrôle ne fonctionnera pas si le client n’a pas de système d’exploitation Windows. En outre, le contrôle .NET ne fonctionnera pas si le client n'a pas installé .NET Framework. Ces demandes supplémentaires pourraient donc être difficiles et gênantes pour vos utilisateurs ou vos clients. Néanmoins, l’utilisation de contrôles .NET ou Win32 personnalisés peut constituer une solution acceptable si votre application est utilisée uniquement dans votre organisation ou dans votre intranet, etc. Dans ce cas, il est parfois préférable d’imprimer avec du code ASP.NET côté serveur visible sur le serveur local. réseau local.

Imprimer des rapports à partir de la base de données

J'ai mentionné Crystal Reports comme un outil que vous pouvez utiliser pour imprimer des rapports à partir d'une base de données. Comme ce sujet est très volumineux, vous pouvez lire le didacticiel Crystal Reports dans ASP.NET pour savoir comment utiliser cet outil de génération de rapports fourni avec Visual Studio. Selon vos besoins, vous pouvez exporter ces rapports au format PDF, mais également aux formats DOC, XLS, RTF et HTML.

Si votre site Web est géré par une base de données SQL Server, vous devez considérer ApexSQL Report comme une solution plus optimisée et plus productive, spécialisée pour MS SQL Server.


Barre d'outils du tutoriel: Dire à un ami | Ajouter aux Favoris | Retour d'information | Google



commentaires propulsés par

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.