Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Alguien ha conseguido crear un PDF en ASP.NET?

Estas en el tema de ¿Alguien ha conseguido crear un PDF en ASP.NET? en el foro de .NET en Foros del Web. He leido muchos post en los que se habla que con Crystal Reports se pueden generar PDFs (yo no lo he conseguido). Un post de ...
  #1 (permalink)  
Antiguo 16/06/2004, 03:23
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
¿Alguien ha conseguido crear un PDF en ASP.NET?

He leido muchos post en los que se habla que con Crystal Reports se pueden generar PDFs (yo no lo he conseguido).
Un post de DotNetDeveloper comenta que usa una utilidad gratuita que se encuentra en:
http://sourceforge.net/projects/report/
y la verdad es que tiene muy buen pinta. Pero está en C# y tampoco encuentro la información necesaria para hacerlo funcionar.

Resumiendo: ¿algún alma caritativa que tenga un ejemplo para realizar imprimir formularios en PDF y a ser posible en VB?

Saludos y gracias
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:

Última edición por Phoncadiz; 16/06/2004 a las 05:28
  #2 (permalink)  
Antiguo 16/06/2004, 03:39
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Hola!
Si tienes problemas con el codigo en C#, en la FAQ tienes una URL para traducir a VB y viceversa. Revisalo.
En cuanto a Crystal Reports,ni idea, no he utilizado esta herramienta aún....
La única herramienta que he utilizado para crear pdf es el Acrobat Distiller (o algo asi se llama...).
Espero que tengas suerte y lo consigas!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #3 (permalink)  
Antiguo 16/06/2004, 04:03
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
En la FAQ deje un enlace a un tutorial muy basico de crystal report,ve leyendotelo para generar informes y cuando llege a casa te miro como imprimirlos,un saludo
  #4 (permalink)  
Antiguo 16/06/2004, 04:22
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
Gracias GeRuNdIo, no sabía que existía ese FAQ; pero al que se refiere SunDark ya le eché un vistazo en su momento y lo puse en prácticas. El problema es que... efectivamente, es muy básico.

Me gustaría exprimir las posibilidades del Crystal Report, pero sobre eso no encuentro documentación. O en su defecto, usar otro componente por el estilo a Crystal Report.

Ah! Sobre el Acrobat Destiller que comenta GeRuNdIo voy a buscar información porque es la primera vez que lo escucho. ¿Es un complemento que se implementa en ASP.NET? Me imagino que es de pago

Seguimos investigando compañeros.
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #5 (permalink)  
Antiguo 16/06/2004, 04:27
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
Sobre Acrobat Distiller

Acrobat Distilles queda descartado de mis posibilidades. Es totalmente de pago y además MUY CARO.
Licencia básica: más de 7000 €

Seguimos investigando....
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #6 (permalink)  
Antiguo 16/06/2004, 08:31
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 21 años
Puntos: 2
Yo tengo una clase "Express" que hice en el trabajo para poder utilizar ese Report.Net pero esta hecha en C#. Y como supongo que utilizas VB.Net pues no se si la quieras. =D
  #7 (permalink)  
Antiguo 16/06/2004, 14:32
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
DotNetDeveloper ... yo no le hago "ascos" a nada
Así que en un momento dado hago una transformación de lenguaje y punto
Osea... que si puedes me lo pasas y le echo un vistazo

Saludos y gracias
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:

Última edición por Phoncadiz; 16/06/2004 a las 16:14
  #8 (permalink)  
Antiguo 17/06/2004, 05:20
 
Fecha de Ingreso: noviembre-2003
Mensajes: 3
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola, yo también ando liado con estos temas. Miré en la página de sourceforge que te han indicado, me parecia un poco liado y segui buscando, y encontré en www.elguille.com un trabajo hecho por una tal Unai que habia creado una capa intermedia con las dll que te bajas de sourceforge. Lo hace bastante bien, pero yo tengo problemas al insertar imagenes (concretamente me da un error al intentar insertar mis .Gif).

Otra cosilla, está en C#, pero es muy facilillo de entender.

Un saludo.
  #9 (permalink)  
Antiguo 17/06/2004, 05:21
 
Fecha de Ingreso: noviembre-2003
Mensajes: 3
Antigüedad: 20 años, 5 meses
Puntos: 0
vale, he puesto mal la direccion, es: http://www.elguille.info/indice.asp
  #10 (permalink)  
Antiguo 17/06/2004, 05:43
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
Ok jcarlos979, investigaremos. Gracias por los datos...
Por lo que entiendo de tu post... has conseguido crear el pdf ¿no es así?
Ah! otra cosa, ¿en qué sección de "el Guille" esta la información"?

Saludos....
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:

Última edición por Phoncadiz; 17/06/2004 a las 05:45
  #11 (permalink)  
Antiguo 17/06/2004, 06:30
 
Fecha de Ingreso: noviembre-2003
Mensajes: 3
Antigüedad: 20 años, 5 meses
Puntos: 0
Ok, disculpas, la verdad es que no se atina a la primera con el enlace. Bueno en concreto el enlace es

http://www.elguille.info/colabora/pu.../CreatePDF.htm

Es un artículo de Agosto de 2003.

Viene un ejemplo que a mí no me ha dado ningún problema si no tenemos en cuenta que no he podido meter imágenes. Como he comentado antes hay que bajarse también las librerías de sourceforge.

Ciao
  #12 (permalink)  
Antiguo 17/06/2004, 09:30
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 21 años
Puntos: 2
Código:
using System;
using Root.Reports;
using Pagina = Root.Reports.Page;
using System.Drawing;
using System.Collections;
using System.Diagnostics;

namespace SOFIA.Utilerias
{
	/// <summary>
	/// Clase que nos permite generar un archivo PDF.
	/// </summary>
	public class PDF : Report
	{
		
		#region Atributos

		private SortedList letras = new SortedList();			// Colección con los tipos de letras
		private ArrayList paginas = new ArrayList();			// Colección con las páginas del PDF
		private SortedList lineas = new SortedList();			// Colección con los tipos de líneas
		
		#endregion

		#region Constantes

		private const string NOMBRE_LETRA_DEFAULT = "Default";	// Nombre de la letra default
		private const string LETRA_DEFAULT = "Arial";			// Tipo de letra DEFAULT.

		#endregion

		#region Constructores

		/// <summary>
		/// Constructor que inicializa la letra por default
		/// </summary>
		public PDF()
		{
			EstablecerLetraDefault();
		}

		#endregion

		#region Métodos

		/// <summary>
		/// Método que inicializa la letra por default
		/// </summary>
		public void EstablecerLetraDefault()
		{
			FontDef letra = new FontDef(this, LETRA_DEFAULT);
			FontProp letraProp = new FontProp(letra, 8);
			letras.Add(NOMBRE_LETRA_DEFAULT, letraProp);
		}


		/// <summary>
		/// Método que permite agregar un tipo de letra al Documento PDF
		/// </summary>
		/// <param name="nombreLetra">Nombre que se le va a dar a la letra.</param>
		/// <param name="tipoLetra">Tipo de letra.</param>
		/// <param name="tamano">Tamaño de la letra.</param>
		/// <param name="color">Color de la letra.</param>
		/// <param name="negrita">true si la letra debe estar en negrita.</param>
		/// <param name="italica">true si la letra debe estar en itálica.</param>
		/// <param name="subrayada">true si la letra debe estar subrayada.</param>
		public void AgregarLetra(string nombreLetra, string tipoLetra, double tamano, Color color, bool negrita, bool italica, bool subrayada )
		{
			FontDef letra = new FontDef(this, tipoLetra);
			FontProp letraProp = new FontProp(letra, tamano, color);
			letraProp.bBold = negrita;
			letraProp.bItalic = italica;
			letraProp.bUnderline = subrayada;
			letras.Add(nombreLetra, letraProp);
		}

		/// <summary>
		/// Método que permite agregar una página al documento actual.
		/// </summary>
		public void AgregarPagina()
		{
			Page pagina = new Pagina(this);
			pagina.rWidthMM = 211;
			paginas.Add(pagina);
		}

		/// <summary>
		/// Método que permite agregar una cadena a una página.
		/// </summary>
		/// <param name="numPagina">Número de pagina al que se le quiere agregar la cadena, la primera página equivale al indice 0</param>
		/// <param name="coorX">Coordenada X en la que se insertará la cadena.</param>
		/// <param name="coorY">Coordenada Y en la que se insertará la cadena.</param>
		/// <param name="cadena">Cadena que se insertara en el Documento PDF.</param>
		/// <param name="tamanio">Tamaño de la letra que se insertará en el documento PDF.</param>
		/// <param name="negrita">true si la letra necesita estar en negrita.</param>
		public void AgregarCadenaAPagina(int numPagina, double coorX, double coorY, string cadena, double tamanio, bool negrita)
		{
			FontProp letra = (FontProp) letras[NOMBRE_LETRA_DEFAULT];
			letra.bBold = negrita;
			letra.rSize = tamanio;
			((Pagina)paginas[numPagina]).AddMM(coorX, coorY, new RepString(letra, cadena));
		}

		/// <summary>
		/// Método que permite agregar una cadena a una página.
		/// </summary>
		/// <param name="numPagina">Número de pagina al que se le quiere agregar la cadena, la primera página equivale al indice 0</param>
		/// <param name="coorX">Coordenada X en la que se insertará la cadena.</param>
		/// <param name="coorY">Coordenada Y en la que se insertará la cadena.</param>
		/// <param name="cadena">Cadena que se insertara en el Documento PDF.</param>
		/// <param name="nombreLetra">Nombre de la letra a agregar por si no se quiere la de Default.</param>
		public void AgregarCadenaAPagina(int numPagina, double coorX, double coorY, string cadena, string nombreLetra)
		{
			FontProp letra = (FontProp) letras[nombreLetra];
			((Pagina)paginas[numPagina]).AddMM(coorX, coorY, new RepString(letra, cadena));
		}

		/// <summary>
		/// Método que permite agregar una cadena a una página alineandola a la derecha.
		/// </summary>
		/// <param name="numPagina">Número de página a la cual se quiere agregar la cadena.</param>
		/// <param name="coorX">Coordenada X en donde se ubicará.</param>
		/// <param name="coorY">Coordenada Y en donde se ubicará.</param>
		/// <param name="cadena">Cadena que queremos agregar.</param>
		/// <param name="tamanio">Tamaño de la letra que queremos agregar.</param>
		/// <param name="negrita">true si queremos que la letra este en negritas.</param>
		public void AgregarCadenaDerechaAPagina(int numPagina, double coorX, double coorY, string cadena, double tamanio, bool negrita)
		{
			FontProp letra = (FontProp) letras[NOMBRE_LETRA_DEFAULT];
			letra.bBold = negrita;
			letra.rSize = tamanio;
			((Pagina)paginas[numPagina]).AddRightMM(coorX, coorY, new RepString(letra, cadena));
		}

		/// <summary>
		/// Método que permite agregar una línea a una página.
		/// </summary>
		/// <param name="numPagina">Número de página a la cual queremos agregar la línea.</param>
		/// <param name="coorX">Coordenada X donde iniciará.</param>
		/// <param name="coorY">Coordenada Y donde iniciará.</param>
		/// <param name="anchoPluma">Ancho de la línea.</param>
		/// <param name="lineaX">Coordenada X donde terminará la línea.</param>
		/// <param name="lineaY">Coordenada Y donde terminará la línea.</param>
		/// <param name="color">Color de la línea.</param>
		public void AgregarLineaAPagina(int numPagina, double coorX, double coorY, double anchoPluma, double lineaX, double lineaY, Color color)
		{
			PenPropMM pluma = new PenPropMM(this, anchoPluma, color);
			RepLineMM linea = new RepLineMM(pluma, lineaX, lineaY);
			((Pagina)paginas[numPagina]).AddMM(coorX, coorY, linea);
		}

		/// <summary>
		/// Método que permite agregar un rectángulo a una página con algun color de fondo
		/// </summary>
		/// <param name="numPagina">Número de página a la cual queremos agregar el rectángulo.</param>
		/// <param name="coorX">Coordenada X donde queremos agregar el rectángulo.</param>
		/// <param name="coorY">Corrdenada Y donde queremos agregar el rectángulo.</param>
		/// <param name="anchoPluma">Ancho de la línea del rectángulo.</param>
		/// <param name="alto">Alto del rectángulo.</param>
		/// <param name="ancho">Ancho del rectángulo.</param>
		/// <param name="color">Color del rectángulo.</param>
		public void AgregarRectanguloFondoAPagina(int numPagina, double coorX, double coorY, double anchoPluma, double alto, double ancho, Color color)
		{
			BrushProp brocha = new BrushProp(this, color);
			RepRectMM rectangulo = new RepRectMM(brocha, ancho, alto);
			((Pagina)paginas[numPagina]).AddMM(coorX, coorY, rectangulo);
		}

		/// <summary>
		/// Método que permite agregar un rectángulo sin fondo a una página.
		/// </summary>
		/// <param name="numPagina">Número de página donde queremos agregar el rectángulo.</param>
		/// <param name="coorX">Coordenada X donde queremos agregar el rectángulo.</param>
		/// <param name="coorY">Coordenada Y donde queremos agregar el rectángulo.</param>
		/// <param name="anchoPluma">Ancho de la pluma.</param>
		/// <param name="alto">Alto del rectángulo.</param>
		/// <param name="ancho">Ancho del rectángulo.</param>
		/// <param name="color">Color del rectángulo.</param>
		public void AgregarRectanguloAPagina(int numPagina, double coorX, double coorY, double anchoPluma, double alto, double ancho, Color color)
		{
			PenPropMM pluma = new PenPropMM(this, 0.2, color);
			RepRectMM rectangulo = new RepRectMM(pluma, ancho, alto);
			((Pagina)paginas[numPagina]).AddMM(coorX, coorY, rectangulo);
		}

		/// <summary>
		/// Método para agregar una cadena en el centro del documento.
		/// </summary>
		/// <param name="numPagina">Número de página a la cual se quiere agregar la cadena.</param>
		/// <param name="coorY">Coordenada Y en donde se ubicará.</param>
		/// <param name="cadena">Cadena que queremos agregar.</param>
		/// <param name="tamanio">Tamaño de la letra.</param>
		/// <param name="negrita">true si queremos que la letra este en negrita.</param>
		public void AgregarCadenaCentradaAPagina(int numPagina, double coorY, string cadena, double tamanio, bool negrita)
		{
			FontProp letra = (FontProp) letras[NOMBRE_LETRA_DEFAULT];
			letra.bBold = negrita;
			letra.rSize = tamanio;
			((Pagina)paginas[numPagina]).AddCenteredMM(coorY, new RepString(letra, cadena));
		}

		/// <summary>
		/// Método que permite agregar una imagen a un documento.
		/// </summary>
		/// <param name="numPagina">Número de página a la cual se quiere agregar la cadena.</param>
		/// <param name="coorX">Coordenada X en donde se ubicará.</param>
		/// <param name="coorY">Coordenada Y en donde se ubicará.</param>
		/// <param name="ruta">Ruta de la imágen que queremos agregar.</param>
		public void AgregarImagenAPagina(int numPagina, double coorX, double coorY, double coorXA, double coorYA, string ruta)
		{
			((Pagina)paginas[numPagina]).AddMM(coorX, coorY, new RepImage(ruta, coorXA, coorYA));
		}

		/// <summary>
		/// Método que muestra en el Browser el documento PDF.
		/// </summary>
		/// <param name="response">Recibe el HttpResponse en donde se desplegará.</param>
		public void MostrarPdf(System.Web.HttpResponse response)
		{
			RT.ResponsePDF(this, response);
		}
  #13 (permalink)  
Antiguo 18/06/2004, 01:11
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
Perdonad...

Pero según pone en la página de "elguille":
Cita:
Es imprescindible implementar el método Dispose del objeto NewPDF puesto que de otra manera será imposible la lectura del documento.
¿Cómo se implementa el método?

Lo siento pero nunca he implementado un método y no se cuales son los pasos.

Saludos
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #14 (permalink)  
Antiguo 04/10/2004, 16:36
 
Fecha de Ingreso: octubre-2004
Mensajes: 4
Antigüedad: 19 años, 6 meses
Puntos: 0
crear un PDF en ASP.NET

Hola a todos.

tengo varios dias buscando la manera de pasar una informacion desde vb.net a pdf.

por fin lo logre, gracias a ciertas ligas (http://itextsharp.sourceforge.net/), pero ahora me tope con el problema de que tengo un Crystal Report, que genera una grafica, y es esta la que tengo que agregar a mi pdf ya creado, se que puedo agregar imagenes,(por cierto quien tiene problemas con los gif, debe ser porque solo acepta jpg, claro si estan utilizando el metodo que se menciona en la liga de arriba), pero bueno.

asi que ahora lo que necesito es obtener en formato jpg el resultado mostrado en el crystalreportviewer, no se si me explico..

mi problemas es es, como hago para mandarlo a formato jpg???

intente utilizando la impresora miraplacid publisher, pero algo estoy haciendo mal, que cuando se genera desde vb.net, no puede crear el documento en XPD(puerto de la impresora), asi que se queda en el limbo, claro si uso esta impresora por fuera funciona perfectamente.

asi que bien, ojala y alguien pueda ayudarme porque ya estoy con esto

Saludos
Carail
  #15 (permalink)  
Antiguo 04/10/2004, 16:44
 
Fecha de Ingreso: octubre-2004
Mensajes: 4
Antigüedad: 19 años, 6 meses
Puntos: 0
Cita:
Iniciado por DotNetDeveloper
Yo tengo una clase "Express" que hice en el trabajo para poder utilizar ese Report.Net pero esta hecha en C#. Y como supongo que utilizas VB.Net pues no se si la quieras. =D
Por favor, me puedes indicar si conoces la manera de pasar un crystalreport a jpg??, puedes leer mi mensaje completo en el foro

Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:35.