Maison  >  Article  >  interface Web  >  Méthodes alternatives d'impression web_Échange d'expériences

Méthodes alternatives d'impression web_Échange d'expériences

WBOY
WBOYoriginal
2016-05-16 12:08:321551parcourir

Méthode alternative d'impression sur le Web Sélectionnée sur le blog de wfmazhenhai
Mots clés Méthode alternative d'impression sur le Web
Source
Je crois que quiconque a réalisé des applications en utilisant la méthode B/S peut rencontrer un tel problème, comment faciliter, réaliser magnifiquement impression du rapport. Si vous utilisez le menu d'impression du navigateur pour imprimer, certaines éléments inutiles de la page Web seront imprimés sur le rapport, comme les menus d'application, etc. Parce que la sélection du menu d'impression pour imprimer une page Web imprimera tout le contenu de la page Web. Si votre application comporte des cadres, le contenu imprimé inclura le contenu de chaque cadre, et le contenu que vous souhaitez réellement n'en est qu'une partie. Par conséquent, de nombreuses applications ne peuvent exécuter la fonction d’impression qu’en arrière-plan. Que devons-nous faire dans cette situation ? En fait, il existe de nombreuses façons de mettre en œuvre la fonction d’impression de pages Web.
Une solution consiste à utiliser des outils d'impression professionnels, tels que Crystal Reports. Les amis qui ont utilisé Visual Studio 5.0 doivent se souvenir de cet outil, mais la version à l'époque n'était que 4.0. La dernière version est désormais la version 9 et les versions récentes de Crystal Reports prennent en charge l'impression WEB. La méthode la plus simple consiste à utiliser d'abord Crystal Reports pour créer un modèle, puis à utiliser ASP pour appeler le modèle préparé avec des paramètres. Une fois que Crystal Reports a généré un rapport sur la page Web, celui-ci peut être imprimé directement ou transféré vers d'autres fichiers qui réussissent la comparaison, tels que des fichiers Excel. Vous pouvez créer de très beaux styles à l'aide de Crystal Reports. La clé réside dans votre capacité à développer Crystal Reports. Cependant, en raison du prix élevé de Crystal Reports, vous ne pouvez vous le permettre que si le projet est très rentable.
La deuxième méthode consiste à acheter un contrôle d'impression en ligne tiers. Le coût est moins cher que Crystal Reports, mais l'efficacité et les performances sont différentes.
La troisième méthode consiste à utiliser des feuilles de style et des fonctions personnalisées JavaScript. L'impression de pages Web est réalisée via des feuilles de style et JavaScript, et l'effet est acceptable. Voici un exemple que tout le monde peut consulter. Ce qui suit est une explication détaillée de l'implémentation de la fonction d'impression :
<script language="JavaScript" type="text/JavaScript">
<!--
function DP() {
if ( window.print)
{
var Div1 = document.all.Div1.innerHTML;
var Div2 = document.all.Div2.innerHTML
// *********; ***** **************************************
// Div1 et Div2 êtes-vous dans la zone d'impression
// Selon le contenu que vous souhaitez imprimer, utilisez
// <div id=Div1>Div1....</div><div id=Div2> from la page d'affichage originale Div2...</div>
// Attendez qu'elle soit marquée, marquez autant d'éléments que vous souhaitez imprimer
// ************* ********* ************************************* var css = '< style type="text/css" media=all>' +
'p { hauteur de ligne : 120%}' +
'.ftitle { hauteur de ligne : 120 % ; taille de police : 18 px ; : #000000}' +
'td { font -size: 10px; couleur: #000000}' +
'</style>'
//*********** ******************* *******************************
// Définissez le CSS pour l'impression, plus précisément le format que vous souhaitez imprimer. Tout dépend de vous
//, mais attention : s'il y a quelque chose d'incohérent avec la page Web, le format et la police de l'imprimé la page peut être différente
// de la page web
/ /********************************* ********************** ****
var body ='<table width="640" border="0" cellpacing="0" cellpadding="5">' +
' <tr> ' +
' < td class="fbody"> ' +
' <div align="center" class=ftitle>' + Div1 + '</div>' + Div2 +
' </td>' +
'</tr>' +
'</table>'
//****** *********************** ************************** **
// Réinitialisez le format d'impression ici et modifiez l'affichage d'origine en fonction de vos besoins d'impression
// Réorganisez le contenu DIV de la page Web. Vous pouvez supprimer les
// éléments que vous ne faites pas. Vous ne voulez pas imprimer en fonction du contenu de votre table d'origine. Vous pouvez également utiliser le noprint défini ci-dessous pour ignorer les choses que vous ne souhaitez pas imprimer
// chose, appeler uniquement le contenu que vous souhaitez imprimer, mais celui ignoré. la place sera imprimée
// vide, ce qui n'est pas très beau. La largeur du formulaire doit correspondre à la largeur du papier à imprimer.
//********************************************* *** *********
document.body.innerHTML = '<center>' + css + body + '</center>'
// ******* *** ************************************************* *
// Heavy Set document.body, le document à imprimer est prêt
//****************************** ******** ****************
window.print();
window.history.go(0);// ****** ********************************************** **
//Appelez la commande print pour imprimer le contenu de la fenêtre actuelle. Lorsque vous l'imprimez, il s'agit en fait d'une nouvelle
// page Web, mais le fichier de la page Web est toujours l'original.Appelez ensuite
// window.history.go(0), puis revenez à la page avant l'impression, l'effet est plutôt bon
// **************** *** *****************************************
}
}
- ->
</script>
<style>
@media print {
.noprint {display:none}
}
</style>
<!-- //.noprint définit noprint. Après avoir ajouté class="noprint" aux endroits suivants qui n'ont pas besoin d'être imprimés, l'impression avec window.print() sera ignorée -->
OK , tout est prêt, que faire maintenant Il s'agit d'appeler la fonction DP Si vous concevez le bouton à appeler sur la même page Web, vous pouvez l'appeler directement si vous utilisez la méthode frame et que le bouton à appeler est ; sur une autre page web, puis dans la fonction DP Ajoutez la commande window.focus() en première ligne, sinon seule la page web avec les boutons sera imprimée.
La quatrième méthode, la mise en œuvre est une méthode délicate. La même chose est obtenue en appelant window.print(), mais le contenu que vous souhaitez imprimer est spécialement généré sous forme de page Web et le bouton d'impression se trouve sur un autre cadre. Supposons que la page Web du rapport se trouve sur le mainFrame et que le bouton se trouve sur le topFrame. Le bouton appelle la fonction PrintReports(). La fonction PrintReports() est la suivante pour réaliser l'impression.
function PrintReports() //Fonction dans la page Web topFrame
{
essayez
//*********************** ******* ***********************************
// Gestion des erreurs , si la page Web dans mainFrame n'a pas de fonction DP Ne pas imprimer
//****************************** ***************** *************
{
window.parent.frames("mainFrame").DP() ;
}
catch(e)
{
alert("aucun objet à imprimer!"
}
}
function DP() // Page web MainFrame function
{
window.focus();
if (window.print)
{
window.print();
}
}
Je pense personnellement c'est la méthode la plus pratique.
Enfin, si vous supprimez les paramètres "En-tête, Coin de page" dans le "Fichier - Paramètres de page" du navigateur IE, l'effet sera meilleur. (Repost)

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn