Varias soluciones para la tecnología de control de impresión web (transferida)
De hecho, en comparación con las aplicaciones de escritorio de Windows, la impresión de aplicaciones web tiene varias limitaciones. El personal técnico a menudo encuentra necesidades de los usuarios de un tipo u otro durante el proceso de desarrollo del proyecto. familiarizado con controles de informes como Crystal Reports y Active Report. No solo tienen interfaces de diseño simples y flexibles, sino que también tienen funciones de informes muy poderosas que pueden satisfacer las necesidades de impresión de varios informes. Las aplicaciones web, debido a sus especiales métodos de presentación, sólo pueden buscar otras soluciones. Ahora analicemos las soluciones de impresión web actualmente formadas: La tecnología de control de impresión web existente se divide en varias soluciones: 1. Utilice controles personalizados para completar la impresión Utilice el control WebBrowser que viene con IE para lograr la impresión. Utilice controles de terceros para lograr la impresión. El método de control personalizado es utilizar VB o VC y otras herramientas. componentes y utilice el formato de impresión definido para analizar e imprimir el archivo fuente. Sólo descargando y registrando los componentes generados en el cliente se puede realizar la impresión en el cliente. Las principales dificultades son definir el formato de impresión y cómo analizar el archivo fuente de impresión. El mejor método existente es utilizar la tecnología XML para resolver de manera integral el problema. XML se puede utilizar para definir fácilmente el formato del texto, tablas y otros contenidos del destino de impresión. Sin embargo, los requisitos de desarrollo para los programadores son elevados y difíciles. 2. Utilice WebBrowser para implementar la impresión web WebBrowser es un control de navegador integrado de IE y no requiere que los usuarios lo descarguen. Este documento analiza el contenido técnico del control WebBrowser de la versión IE6.0. Los requisitos técnicos relacionados incluyen: generación de documentos de impresión, configuración de páginas, implementación de operaciones de impresión, etc. (1) Generación de documentos impresos 1. Método de script del lado del cliente Los scripts del lado del cliente se dividen en varios lenguajes de script: VBScript, java script y JScript. La sintaxis utilizada para desarrollar aplicaciones en IE es la sintaxis JScript. Dado que es casi la misma que javascript, también se puede llamar javascript (en adelante abreviado como JS). En circunstancias normales, JS se utiliza principalmente para implementar el análisis de documentos DOM. DOM es un modelo de documento web propuesto por Microsoft y se utiliza principalmente para implementar la programación de scripts web. JS se puede utilizar para analizar el contenido de la página de origen, extraer los elementos de la página que se imprimirán e implementar la impresión. Al analizar el contenido del documento de origen, se puede generar el documento de destino de impresión. Ventajas: el cliente completa de forma independiente la generación del documento de destino de impresión, lo que reduce la carga del servidor; Desventajas: la operación de análisis del documento fuente es compleja y el contenido de impresión en el documento fuente debe acordarse 2. Método del programa del lado del servidor; Método de programa del lado del servidor, principalmente utilizando El código de fondo lee la fuente de impresión de la base de datos y genera el documento de destino de impresión. Cuando se genera la página, también se debe considerar adecuadamente el uso de CSS para implementar el control de paginación forzada. Ventajas: puede generar documentos de destino impresos con contenido muy rico y el contenido de los documentos de destino es altamente controlable. Dado que el contenido de impresión se obtiene de la base de datos, la operación de generación es relativamente simple. Desventajas: la carga del lado del servidor es relativamente grande (2) Configuración de página La configuración de página se refiere principalmente a la configuración de los márgenes, encabezados, pies de página y papel; documento impreso, etc. contenido. La configuración de página afectará directamente el efecto de generación del diseño del documento impreso, por lo que está estrechamente relacionado con la generación del documento impreso. Por ejemplo: el número de filas, tamaño, posición, tamaño de fuente, etc. de la tabla. La tecnología existente consiste en utilizar el método de plantilla de impresión incorporado de IE6.0 para controlar la configuración de la página, lo que puede tener un gran impacto en el documento de destino de impresión. Las plantillas de impresión pueden controlar los márgenes de las páginas, encabezados, pies de página, páginas pares e impares, etc., obtener configuraciones del usuario y enviar configuraciones al servidor. La tecnología de plantilla de impresión puede personalizar la ventana de vista previa y el formato de impresión para maximizar el impacto en el documento de destino y el efecto de impresión. (3) Realización de la operación de impresión La realización de esta función utiliza principalmente la interfaz de función del control WebBrowser para realizar la impresión, vista previa de impresión (predeterminada) y configuración de página (predeterminada).
//Imprimir WebBrowser1.ExecWB(6,1); //Configuración de impresión WebBrowser1.ExecWB(8,1); //Imprimir vista previa WebBrowser1.ExecWB(7,1); método del proyecto, llamada a la interfaz de vista previa de impresión, el siguiente es un ejemplo, que se refiere principalmente al proyecto: llamada principal del archivo pageErrorPrint.aspx.vb función de página PrintPage(iPageIndex,strQuery) { var strURL = "PageErrorPrint.aspx?PageIndex=" + iPageIndex + "&QueryString=" + strQuery; winPrint=window.open(strURL,","left=2000,top=2000,fullscreen=3" } Imprime el control de vista previa en el código fuente HTML del documento de la página. write(""); WebBrowser.ExecWB(7,1); window.opener=null; window.close(); Encabezado del programa 'Primero declara el contenedor de la tabla Protected WithEvents phContainer como System.Web.UI.WebControls.PlaceHolder' número de registros en cada tabla Private Const ItemPerTable As Integer = 20 Parte clave de implementación 'Crear una tabla que cumpla con los requisitos de impresión tabPagePrint = NewPrintTable() 'Agregar el encabezado a esta tabla Call AddTableTitle(tabPagePrint) 'Inicializar la grabadora i = 0 iItemIndex = iStartPoint para cada clsItem en clsAllData.ErrorCollection Si i > 0 y i Mod ItemPerTable = 0 Entonces 'Agrega un control de tabla a la página phContainer.Controls.Add(tabPagePrint) 'Agrega un salto de línea a la página Llama a AddPageBreak() 'Crea un nueva ronda de tablas tabPagePrint = NewPrintTable() Llamar AddTableTitle(tabPagePrint) End If 'Agregar registros a la tabla Llamar AddItemToTable(iItemIndex, tabPagePrint, clsItem) iItemIndex = iItemIndex + 1 i = i + 1 Next 'Agregar controles de tabla a la página phContainer .Controls.Add (tabPagePrint) Función de soporte: Agregar salto de línea de páginaPrivate Sub AddPageBreak() Dim ltBreak As LiteralControl ltBreak = New LiteralControl("") phContainer.Controls.Add(ltBreak) End Sub 2. Comparación de la impresión utilizando el propio IE Un método de impresión simple y de uso común: solo necesita diseñar la página del informe y el usuario completa la impresión a través de la función de impresión en el menú de IE. La ventaja es que es simple y fácil de implementar, pero la desventaja es que es inflexible, no puede controlar la paginación y no puede controlar los encabezados y pies de página.
3. Exporte el informe a Word, Excel o PDF para imprimir. Este método requiere exportar la página a un documento de Office o PDF. El requisito mínimo es que el cliente haya instalado un software para abrir documentos de Word, Excel o PDF. Este enfoque se puede implementar muy fácilmente a través del componente Crystal Reports o algún otro control de terceros. Después de exportar a formato PDF, la calidad y el efecto de impresión son muy buenos. Después de exportar a Word o Excel, los usuarios pueden personalizar el contenido y el formato impreso. En resumen, las soluciones de impresión existentes tienen sus propias ventajas. Durante el proceso de desarrollo, la elección debe basarse en las necesidades del usuario. La impresión con IE es simple y fácil de implementar. Esta solución es más adecuada cuando las necesidades del usuario son simples. El contenido de impresión es pequeño. La impresión con controles personalizados permite una personalización completa, pero requiere requisitos técnicos y ciclos de desarrollo más altos. El método de exportación puede satisfacer las necesidades de los usuarios que necesitan un poco de personalización o imprimir contenido con varias páginas. -------------------------------------------------- -----------1. Controlar "verticales", "horizontales" y "márgenes de página".
(2) Nuevo documento dim hkey_root,hkey_path,hkey_key hkey_root="HKEY_CURRENT_USER" hkey_path="\Software\Microsoft\Internet Explorer\PageSetup" '//Establecer el encabezado y pie de página para la impresión de la página web en función pagesetup_null() en caso de error reanudar siguiente Set RegWsh = CreateObject("WScript.Shell") hkey_key="\header" RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" hkey_key="\footer" RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" función final ' // Establece el encabezado y pie de página de la impresión de la página web con el valor predeterminado de la función pagesetup_default() en caso de error, reanuda el siguiente Set RegWsh = CreateObject("WScript.Shell") hkey_key="\header" RegWsh.RegWrite hkey_root+hkey_path+hkey_key," &w&bnúmero de página,&p /&P" hkey_key="\footer" RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&u&b&d" función final 4. Función de impresión de marco flotante button1_onclick() { var odoc=window.iframe1.document; var r=odoc .body.createTextRange (); var stxt=r.htmlText; alerta(stxt) var pwin=window.open("","print"); pwin.document.write(stxt); Utilice el componente FileSystem Implemente la función de impresión local específica en aplicaciones WEB print_onclick // Función de impresión dim label label=document.printinfo.label.value // Obtenga los datos del conjunto de páginas HTML objfs=CreateObject("Scripting.FileSystemObject") /. /Crear el objeto del componente FileSystem Conjunto de ejemplo objprinter=objfs.CreateTextFile ("LPT1:",true) //Establecer una conexión con la impresora objprinter.Writeline("____________________________") //Imprimir el contenido impreso objprinter.Writeline("| | ") objprinter.Writeline(" | Los datos que imprimes son: "&label& " |") objprinter.Writeline("| |") objprinter.Writeline("|_____________________________|") objprinter.close //Desconectar del conjunto de impresoras objprinter = nada establecido objfs
=nada // Cerrar la función final del objeto del componente FileSystem Script del lado del servidor: // Interactuar con la codificación de la página HTML de la base de datos: ......... // Llamar a la función de impresión // Guardar los datos enviados desde el servidor .........