Eu fiz muitos projetos da web. Na maioria das vezes em que a impressão da página do conteúdo, uso JavaScript para chamar o método de impressão interno do sistema para imprimir, ou seja, ligue para printcontrol.execwb (?,?) Para obter funções diretas de visualização de impressão e impressão. Embora o efeito de impressão e a controlabilidade não sejam muito bons, ela pode ser usada quase e ainda não há problema em lidar com a impressão geral.
O código se parece com o seguinte:
Código
Código destacando produzido pelo Actipro CodeHighLighter (freeware) http://www.codehighlighter.com/--> // ligue para printcontrol.execwb (?,?) Para obter funções diretas de visualização de impressão e impressão. (Algumas áreas não podem ser ocultas diretamente imprimindo usando o método print () fornecido pelo sistema) // visualização: se deve exibir a visualização. null/false: não exibido, true: Exibir função printpage (visualizar) {try {var content = window.document.body.innerhtml; var oricontent = content; while (content.indexof ("{$ primoide}")> = 0) Content = Content.Replace ("{$ PRINTHIDE}", "Style = 'Display: None'"); if (Content.Indexof ("Id =/" printControl/"") <0) Content = Content+"<Objeto ID =/" PrintControl/"Width = 0 Height = 0 ClassID =/"CLSID: 8856F961-340A-11D0-A96B-00C04FD705A2/"> </FOCT> "; window.document.body.innerhtml = content; // printControl.execwb (7,1) Print (1,1) aberto, (1,1) Open; Atributos, (6,1) Imprimir, (6,6) Imprima diretamente, (8,1) configurações de página se (visualizar == null || visualizar == false) printControl.execwb (6,1); else printcontrol.execwb (7,1); // olecmdid_print = 7; OlecmdexEcot_dontpromptuser = 6/olecmdexEcot_promptuser = 1Window.document.body.innerhtml = oricontent;} catch (ex) {alert ("erro executando javascript"); }} função printConten (visualização, html) {try {var content = html; var oricontent = window.document.body.innerhtml; while (Content.IndexOf ("{$ PRINTHIDE}")> = 0) Content = Content.replace ("{$ PRINTHIDE}", "Style = 'Display: None'"); if (Content.Indexof ("Id =/" PrintControl/"") <0) = Content+" ClassID =/"CLSID: 8856F961-340A-11D0-A96B-00C04FD705A2/"> </FOCT> "; window.document.body.innerhtml = content; // printControl.execwb (7,1) Print (1,1) aberto, (1,1) Open; Atributos, (6,1) Imprimir, (6,6) Imprima diretamente, (8,1) configurações de página se (visualizar == null || visualizar == false) printControl.execwb (6,1); else printcontrol.execwb (7,1); // olecmdid_print = 7; OlecmdexEcot_dontpromptuser = 6/olecmdexEcot_promptuser = 1Window.document.body.innerhtml = oricontent;} catch (ex) {alert ("erro executando javascript"); }}As duas funções acima são colocadas em um arquivo JS. Na página Conteúdo, o conteúdo da peça especificado pode ser impressa aplicando o arquivo de script e chamando a função mais encapsulada:
<Script Language = "Javascript"> Função Print (visualização) {var text = document.getElementById ("content"). INnerHTML; printconten (visualização, texto);}O efeito de impressão é mostrado aproximadamente na figura abaixo. Se a página impressa estiver na página do quadro, você precisará selecionar a opção "Imprimir apenas quadros selecionados".
O uso deste método não requer que nenhum controle seja instalado, que possui boas vantagens de compatibilidade. No entanto, o conteúdo do relatório parece ser mais problemático para controlar. Especialmente para imprimir alguns relatórios, é necessário produzir conteúdo complexo, que também possui certos defeitos, mas no geral, também é uma escolha melhor.
Mais tarde, quando eu precisava fazer algum trabalho na configuração do documento, esse controle não pôde ser feito, então precisava de um método ou controle que pudesse lidar melhor com a configuração.
Por acaso, encontrei um melhor controle de impressão que suporta a impressão em vários formatos e também o conjunto de identificação que me preocupo. É poderoso e fácil de usar, e é muito recomendado.
Ao usar esse controle, o efeito de impressão de um relatório normal é o seguinte:
A impressão dos dois relatórios acima é realmente semelhante, ambos impressos em parte do conteúdo HTML, mas o último parece melhor e fornece configurações de função de relatório muito completas.
O código é aproximadamente o seguinte.
Código
<script idioma = "javascript"> function print (visualize) {var text = document.getElementById ("content"). innerhtml; printconten (visualização, texto);} </script> <script) id = "lodOp" classID = "CLSID: 2105C259-1E0C-4534-8141-A753534CB4CA" WIDUTH = 0 Hight = 0> </ject> <script Language = "javascript"> var lodOP = document.gelementByid ("lodoPOP"); // Esta linha de instrução é cumprir com o DTD Specification CheckLODOP (); </script> <script linguagem = "javascript" type = "text/javascript"> function visualize () {// Print Visuew_benElicensEdata (); lodOP.Set_Show_Mode ("visualize_in_brawse", 1); lodop.show_mode ("preview_in_brawse",); lodop.show_mode ("preview_in_brawse",); lodop.show_mode ("preview_in_brawse"; {// Imprima a manutenção para ajustar a posição do usuário CreateLiCensEdata (); lodOP.print_setup ();}; função design () {// imprima o conteúdo e a posição das configurações de desenvolvedor de design CreateLicensEdata (); lodop.print_design (); Relatório "); lodOp.add_print_htm (20, 40, 610, 900, document.all (" content "). Innerhtml); lodop.preview ();} </sCript>Muitas vezes, o conteúdo que não temos é controlado pelo CSS; portanto, às vezes, se imprimirmos parte do HTML sem esses estilos, o formato da tabela e as fontes que saem podem mudar e não são muito bonitos. Então você precisa estilizar HTML.
Se você definir um estilo para o conteúdo impresso, a interface será muito melhor.
O código para definir o estilo é o seguinte.
Código
<Script Language = "javascript" type = "text/javascript"> function visualize () {// Print Visuew CreateLicensedata (); lodOp.Set_Show_Mode ("Visuew_in_browse", 1); lodOp.preview ();}; função CreateLicensEdata () {) "<link type = 'text/css' rel = 'Stylesheet' href = 'http: //www.cnblogs.com/themes/default/style.css'/> {thount-color {Border: 1; Background-Color: #cbcbcc} td {Bordado-color Background-Color:#f1f1f3; preenchimento-esquerda: 5px; borda: 1}-> </style> "; var strformhtml = strbodystyle +" <body> " + document.getElementById (" content "). INNERHTML +" </body> "; lodop.add_print"). strformhtml); lodOp.Preview ();} </sCript>O exposto acima é a função de impressão de relatório comum da solução de impressão na web introduzida pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!