Pregunta

He estado investigando opciones para imprimir datos similares a informes a través de una aplicación web. Algunas opciones que son viables son escribir PDF, Excel XML, descargar HTML a Excel o usar una herramienta como activePDF webGrabber. Supongo que la pregunta es, ¿cuáles son algunas soluciones que dan control sobre la impresión desde un navegador (IE en mi caso) y aún no tienen un gran tiempo de desarrollo? Aunque no tengo experiencia con esto, he visto un código horrible para generar archivos PDF.

Las características que estoy buscando en particular son para imprimir el paisaje o el retrato sin la intervención del usuario. Además, tener control sobre el estilo básico es importante para traducir la apariencia básica de la aplicación web al formato impreso.

Cualquier consejo (especialmente por experiencia) es apreciado.

¿Fue útil?

Solución

Como ya he preguntado aquí y descubrí el camino difícil, No obtendrá resultados de impresión fiables y precisos únicamente en el navegador. Incluso si se trata de una aplicación de intranet que usted ha prometido, solo debe funcionar con IE7, IE8 estará disponible pronto y luego se permitirá Firefox y toda su cuidadosa microgestión de CSS será en vano (¿suena amargo?).

La solución más innovadora es morder la bala e ir generando archivos PDF. Las herramientas que mencionaste son buenas. También debe consultar iText y iTextSharp . Una vez que lo domine, hacer los diseños de PDF no es más difícil que HTML y CSS y sabrá que los resultados se imprimirán correctamente en la computadora de todos, el navegador de todos y la impresora de todos. Actualmente estoy trabajando con iTextSharp (aún no se ha terminado, pero aún estoy aprendiendo y experimentando).

Tampoco he encontrado formas confiables de controlar las opciones de impresión desde una página, por lo que confiar en que los usuarios cambien de vertical a horizontal o establecer o ajustar los márgenes o desactivar los encabezados y pies de página no lo hace trabaje a largo plazo: terminará molestándolos y creando más dolores de cabeza cuando no puedan (o simplemente no) seguir las instrucciones.

Las " Preguntas relacionadas " La barra lateral es muy útil. Vi estas preguntas sobre el control de la impresora desde la página web (ambas con respuestas que ascienden a: " no puede "):

Selección programática de impresión horizontal

Imprimiendo en una impresora específica

Otros consejos

También puede ver la configuración específica de hojas de estilo CSS para imprimir. Lo bueno de esto es que puede llevar una página web que se muestra al usuario, cambiar el formato ligeramente para eliminar cualquier banner elegante u otro tipo de tinta que contenga imágenes, y luego imprimir lo que ven en la pantalla.

Algunos sitios tendrán un enlace a una "versión fácil de imprimir", pero incluso con una referencia tanto a la pantalla como a la hoja de estilos de impresión en el encabezado HTML funcionará si el usuario simplemente presiona CTRL + P en la página. están en.

He usado y tuve suerte con iTextSharp en una aplicación de C #. Requiere un poco de trabajo, pero si tiene experiencia gráfica, todo tiene sentido y el PDF puede verse realmente bien (e imprimir bien).

http://itextsharp.sourceforge.net/

Si desea que el código genere un PDF que no sea horrible, ¡solo asegúrese de escribir un buen código PDF! Por ejemplo, escriba código realmente modular con muchas clases en memoria que combine (como Lego) para representar los objetos que irán en el PDF. Estos objetos solo necesitarían saber cómo dibujarse ellos mismos en PDF.

Podrías echar un vistazo a SQL Server Reporting Services. También hay una serie de herramientas de informes de terceros como http://www.devexpress.com/ Productos / NET / Reporting /

No estoy seguro de si esto es lo que está buscando, pero ¿por qué no usar CSS con una hoja de estilo de medios = imprimir? Diseñe su hoja de estilo para que el formulario impreso tenga las características que desea. Alternativamente, puede exportar a Excel descargando datos en formato CSV y permitiendo que el usuario construya sus propios informes a partir de los datos.

Para PDF y Excel reales, he usado controles de Aspose.com .

Funciona solo para IE:

http://www.meadroid.com/scriptx/index.asp

  

Control absoluto para aquellos que necesitan imprimir documentos html desde computadoras cliente y servidor que ejecutan el navegador Internet Explorer de Microsoft.

     

Un subconjunto básico de la funcionalidad de impresión ScriptX - header & amp; La configuración del pie de página, la orientación impresa, el control aproximado de los márgenes y el comando de impresión de la ventana / marco del navegador: está disponible sin cargo y se puede distribuir libremente. La funcionalidad de impresión avanzada no es gratuita. Los documentos habilitados para ScriptX deben referirse a una licencia de publicación válida para que funcione la impresión avanzada.

Segundando lo que otros han dicho, nunca conseguirás que el navegador se imprima como quieres. Hablando desde la experiencia, el tipo de medio de impresión CSS parece parece que funcionará, pero realmente nunca hace el trabajo, especialmente si necesita trabajar en más de un navegador (y ya que estoy incluyendo Varias versiones de IE como diferentes navegadores, creo que todos los sitios web tienen que serlo.)

Creo que la mejor manera es crear dinámicamente archivos PDF sobre la marcha. Encuentre un paquete PDF que le guste / pueda pagar para su plataforma y ejecútelo. Confía en mí, te alegrarás de haberlo hecho.

Depende de si su base de clientes esperada es conocida o desconocida. Si desea permitir que 'cualquiera' genere documentos imprimibles, entonces estoy de acuerdo con los demás en que la ruta PDF es una buena opción para bajar.

Hemos tenido un gran éxito al utilizar PDFLib para crear fácilmente documentos PDF atractivos. Usando sus módulos del lado del servidor, puede hacer que un diseñador cree su documento en InDesign o Illustrator, luego coloque los campos dinámicos en la parte superior (incluso utilizando Acrobat para colocar los campos)

Es un poco más complicado para los informes y los datos de fila dinámicos, pero se puede hacer.

Para la impresión real: si está creando una aplicación cuando se conoce su base de usuarios (por ejemplo, un entorno de oficina), podría considerar una aplicación de impresión de etiquetas como BarTender . Puede hacer que el servidor web llame a los trabajos de impresión a través de una API o puede hacer que la aplicación BarTender realice un sondeo de la aplicación en busca de nuevos trabajos. Práctico para las aplicaciones web en las que desea hacer clic en "Imprimir" en el sitio y que la impresora comience a imprimir (sin la intervención del usuario) ya que el servidor está realizando la impresión, no el cliente.

Principalmente para compartir la forma en que traté con esto, pero también para ofrecer otra opción ...

Estaba usando una grilla de terceros que exportaba Excel XML. Para que funcione para mí, usé XSLT y algo de código para ajustar ese XSLT para inyectar la configuración de impresión. Estoy seguro de que no es tan poderoso como PDF, pero fue un compromiso bastante decente que no requirió mucha personalización por página.

Entonces, la solución básica es exportar en el formato XML de Excel e inyectar las etiquetas para orientaciones de página, escalado y cualquier otra cosa que desee. Puede comenzar con una hoja básica de Excel y guardarla como XML, haciendo los ajustes que desee. Luego lees la fuente y averiguas cómo lo hizo Excel. No pude encontrar ninguna documentación útil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top