J'ai réalisé de nombreux projets Web. La plupart du temps, lorsque vous imprimez le contenu de la page, j'utilise JavaScript pour appeler la méthode d'impression intégrée du système à imprimer, c'est-à-dire, appelez printControl.execwb (?,?) Pour atteindre l'impression directe et l'impression des fonctions d'aperçu. Bien que l'effet d'impression et la contrôlabilité ne soient pas très bons, il peut être utilisé à peine et il est toujours acceptable de faire face à l'impression générale.
Le code ressemble à ceci:
Code
Code Soulignation produit par Actipro CodeHighLighter (Freeware) http://www.codehighlighter.com/--> // Appelez PrintControl.execwb (?,?) Pour atteindre des fonctions d'impression et d'impression directes. (Certaines zones ne peuvent pas être cachées directement en imprimant à l'aide de la méthode print () fournie par le système) // Aperçu: s'il faut afficher l'aperçu. null / false: non affiché, true: afficher la fonction printpage (prévisual) {try {var contenu = window.document.body.innerhtml; var oriContent = contenu; while (content.indexof ("{$ printhide}")> = 0) Content = content.replace ("{$ printhide}", "style = 'affiche: aucun'"); if (contenu.indexof ("id = /" printControl / "") <0) Content = Content + "<object id = /" printControl / "width = 0 height = 0 CLASSID = / "CLSID: 8856F961-340A-11D0-A96B-00C04FD705A2 /"> </ Object> "; Window.Document.Body.innerhtml = Contenu; // printControl.Execwb (7,1) Imprimer PRIMT, (1,1) Open, (4,1) Attributs, (6,1) Print, (6,6) Imprimez directement, (8,1) Paramètres de page if (préview == null || Preview == FALSE) printControl.execwb (6,1); else printControl.execwb (7,1); // olecmDid_print = 7; Olecmdexecopt_dontpromptuser = 6 / olecmdexecopt_promptuser = 1Window.Document.body.innerhtml = oriContent;} catch (ex) {alert ("Erreur exécuter le script javascript."); }} function printConten (aperçu, html) {try {var contenu = html; var oriContent = window.document.body.innerhtml; while (content.indexof ("{$ printhide}")> = 0) content = content.replace ("{$ printhide}", "style = 'affiche: non'"); if (contenu.indexof ("id = /" printControl / "" ") <0) Content = Content +" <object id = / "printControl /" width = 0 height = hight CLASSID = / "CLSID: 8856F961-340A-11D0-A96B-00C04FD705A2 /"> </ Object> "; Window.Document.Body.innerhtml = Contenu; // printControl.Execwb (7,1) Imprimer PRIMT, (1,1) Open, (4,1) Attributs, (6,1) Print, (6,6) Imprimez directement, (8,1) Paramètres de page if (préview == null || Preview == FALSE) printControl.execwb (6,1); else printControl.execwb (7,1); // olecmDid_print = 7; Olecmdexecopt_dontpromptuser = 6 / olecmdexecopt_promptuser = 1Window.Document.body.innerhtml = oriContent;} catch (ex) {alert ("Erreur exécuter le script javascript."); }}Les deux fonctions ci-dessus sont placées dans un fichier JS. Dans le contenu de la page, le contenu de la pièce spécifiée peut être imprimé en appliquant le fichier de script et en appelant la fonction encapsulée supplémentaire:
<Script Language = "JavaScript"> Fonction Print (Preview) {var text = document.getElementById ("Content"). InnerHtml; printConten (préview, texte);}L'effet d'impression est à peu près illustré dans la figure ci-dessous. Si la page imprimée est dans la page Frame, vous devez sélectionner l'option "Imprimer uniquement les cadres sélectionnés".
L'utilisation de cette méthode ne nécessite aucun contrôle pour être installée, ce qui présente de bons avantages de compatibilité. Cependant, le contenu du rapport semble être plus difficile à contrôler. Surtout pour l'impression de certains rapports, il est nécessaire de produire un contenu complexe, qui présente également certains défauts, mais dans l'ensemble, c'est aussi un meilleur choix.
Plus tard, lorsque j'ai besoin de travailler sur la configuration des documents, ce contrôle n'a pas pu être effectué, donc j'avais besoin d'une méthode ou d'un contrôle qui pourrait mieux gérer la configuration.
Par hasard, j'ai trouvé un meilleur contrôle d'impression qui prend en charge l'impression dans divers formats, ainsi que l'ensemble d'identité qui m'importe. Il est puissant et facile à utiliser, et il est très recommandé.
Lorsque vous utilisez ce contrôle, l'effet d'impression d'un rapport normal est le suivant:
L'impression des deux rapports ci-dessus est en fait similaire, qui font tous deux une partie imprimée du contenu HTML, mais ce dernier semble mieux et fournit des paramètres de fonction de rapport très complets.
Le code est à peu près comme suit.
Code
<Script Language = "JavaScript"> Fonction Print (Aperçu) {var text = document.getElementById ("Content"). InnerHtml; printConten (préviewal, text);} </ script> <script linguisse = "javascript" src = "http://www.cnblogs.com/scripts/checkactivx.js"> </ script> id = "lodopts/checkrac CLASSID = "CLSID: 2105C259-1E0C-4534-8141-A753534CB4CA" Width = 0 Height = 0> </ Object> <Script Language = "JavaScript"> var Lodop = Document.getElementById ("Lodop"); // Cette ligne d'instruction est de se conformer à la spécification DTD CheckLodop (); </cript> <script linguisse = "javascript" type = "text / javascript"> function préview () {// imprimer la préview CreateLiceSedata (); lodop.set_show_mode ("preview_in_browse", 1); lodop.preview ();}; Maintenance pour ajuster la position de l'utilisateur createLiceSedata (); lodop.print_setup ();}; fonction conception de fonction () {// imprime le contenu et la position du développeur de conception Paramètres CreateLicensEdata Rapport "); lodop.add_print_htm (20, 40, 610, 900, document.all (" contenu "). InnerHtml); lodop.preview ();} </cript>Plusieurs fois, le contenu que nous n'avons pas est contrôlé par CSS, donc parfois, si nous imprimons une partie de HTML sans ces styles, le format de table et les polices qui sortent peuvent changer et ne sont pas très beaux. Ensuite, vous devez styliser HTML.
Si vous définissez un style pour le contenu imprimé, l'interface sera bien meilleure.
Le code pour définir le style est le suivant.
Code
<script linguisse = "javascript" type = "text / javascript"> function préview () {// imprimer la prévisualité createLiceSedata (); lodop.set_show_mode ("préview_in_browse", 1); lodop.preview ();}; fonction CreeLicensEdata () {linkop.print_init (" type = 'text / css' rel = 'stylesheet' href = 'http: //www.cnblogs.com/themes/default/style.css' /> <style> <! - Tableau {border: 1; background-color: #cbcbcc} td {background-Color: #ffffe; border: 1; Background-Color: # f1f1f3; padding-left: 5px; bordure: 1} -> </ style> "; var strformHtml = strbodystyle +" <body> "+ document.getElementbyid (" contenu "). strformHtml); lodop.preview ();} </cript>Ce qui précède est la fonction d'impression de rapport ordinaire de la solution d'impression Web introduite par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!