Foros del Web » Programando para Internet » ASP Clásico »

generar pdf desde asp

Estas en el tema de generar pdf desde asp en el foro de ASP Clásico en Foros del Web. Ok aqui está... no es una versión demasiado modificada, estoy probando con esto: Código: <%@language="vbscript"%> <!--#include file="fpdf.asp"--> <% cadena=Request.QueryString("cadena") %> <html> <head><title>Generar PDF con ASP</title> ...

  #31 (permalink)  
Antiguo 21/03/2005, 08:48
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
.

Ok aqui está... no es una versión demasiado modificada, estoy probando con esto:

Código:
 <%@language="vbscript"%> 
<!--#include file="fpdf.asp"--> 
<%
cadena=Request.QueryString("cadena")
%>
<html>
<head><title>Generar PDF con ASP</title> </head>
<body> 
<% Set pdf=CreateJsObject("FPDF") 
pdf.CreatePDF() 
pdf.SetPath("fpdf/") 
pdf.SetFont "Arial","",12
pdf.Open() 
pdf.AddPage() 
pdf.Cell 42,0,"Hello Gaby!" 
pdf.ln()
pdf.Cell 42,10, "Veremos ahora de agregar cositas"
pdf.ln()
pdf.cell 42,10, cadena
pdf.Output()
pdf.Close() 
%> 
</body>
</html>
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #32 (permalink)  
Antiguo 21/03/2005, 08:54
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 7 meses
Puntos: 18
A mi me funciona perfecto. ¿Será cosa de configuración? has hecho la modificación que aconsejan en fpdf.asp?. El else que está sobre la línea 896 tiene que quedar como sigue:
Código:
else

{
	xfile=Server.MapPath(xfile)
	xf=lib.fopen(xfile,"wb");
	if(xf.number)this.Error("Unable to create output file: " + xfile);
	lib.fwrite(xf,this.buffer);
	lib.fclose(xf);
}

EDITADO:
La causa no puede ser ésto, ya que ahí se controla sólo cuando se va a grabar el fichero.

no tengo ni idea, lo siento.

Última edición por trasgukabi; 21/03/2005 a las 08:57
  #33 (permalink)  
Antiguo 21/03/2005, 09:10
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
Perate tantito!
Como que no te toy tendiendo....
De qué se trata esa modificación????
En qué else habría que colocarlo???
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #34 (permalink)  
Antiguo 21/03/2005, 09:19
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 7 meses
Puntos: 18
Lo he puesto antes: en fpdf.asp (el principal de fpdf) sobre la línea 896. Es el último else de la función pdfoutput(). Esa modificación era para arreglar un problema que habçia al guardar los PDFs en disco.
  #35 (permalink)  
Antiguo 21/03/2005, 09:30
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 21 años, 1 mes
Puntos: 2
Yo para generar PDFs utilizo una Dll hecha en Visual Basic que internamente escribe en un documento de Word y luego utilizo un activeX DLL que incluyo en esta DLL llamado PDFMaker para transformar el Word a PDF. Es necesario tener instalado ademas de Microsoft Word, y el Acrobat Reader, el Acrobat Writer y configurar la impresora a la que manda los Documentos "Acrobat Distiller", es decir, el control PDFMaker para generar los documentos parece que los manda a esta impresora.

Un saludo.
Txarly
__________________
¿Por qué Uri Geller doblaba cucharas?
  #36 (permalink)  
Antiguo 21/03/2005, 11:26
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
Continuan mis problemas!!!

Bien, ahora si estoy furiooooosaaaaa!!!! :
Modifiqué el archivo, pero de todas formas sigue mostrando el codigo del pdf en el browser y en firefox no muestra nada en absoluto....
Yo no necesito que se guarde, simplemente que se abra el acrobat y nada mas!!! y lo necesito en el ie por norma del cliente al que le tengo que entregar el producto terminado.
Alguien porfi!!! ya no se que puedo inventar!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #37 (permalink)  
Antiguo 21/03/2005, 11:43
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 2 meses
Puntos: 2
vi los post y no hay caso que funcione mi explorer se queda colgado y no hace nada...
Salu2
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #38 (permalink)  
Antiguo 21/03/2005, 11:46
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 3 meses
Puntos: 16
y ya intentaste crear el archivo? o tampoco lo crea?
  #39 (permalink)  
Antiguo 21/03/2005, 12:23
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
En realidad no me interesa que cree el archivo en disco, pero aunque quisiera no lo hace, acabo de probar colocando output("prueba.pdf") pero no hace nada, ni muestra nada, lo busque en c y no muestra nada en absoluto
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #40 (permalink)  
Antiguo 21/03/2005, 12:25
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 7 meses
Puntos: 18
pdf.output("prueba.pdf"),true
  #41 (permalink)  
Antiguo 21/03/2005, 13:30
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
Ok, esperen. Es que lo creó pero en el directorio del sitio donde se ejecuta el archivo.
De todas formas tengo que encontrar la forma de abrirlo y de que puedan cambiarle el nombre y la ubicación. No quieren que se guarde por defecto sino que quede abierto para que lo guarden con el nombre y en la ubicación que se les antoje
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #42 (permalink)  
Antiguo 21/03/2005, 13:46
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 3 meses
Puntos: 16
bueno, ya vimos que si lo crea, intenta abrirlo despues de haberlo creado en disco a ver si lo abre
  #43 (permalink)  
Antiguo 21/03/2005, 14:52
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
Ok, vamos progresando!
Ahora que lo puedo abrir despues de haberlo creado, el inconveniente sería eliminarlo del servidor, ya que si quedan cantidades de pdfs volando en la estratosfera van a matarme. Aunque en realidad sería uno que se sobreescribe sin preguntar cada vez que genero uno nuevo con el mismo nombre.
Habrá alguna directiva para eliminar un archivo que está en el servidor???'
Capaz estoy hablando locuras no???
en fin. Sería lo último que me falta saber
Mil gracias a todos por la ayuda que me dieron, realmente que me sirvió un montón
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #44 (permalink)  
Antiguo 21/03/2005, 14:59
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 2 meses
Puntos: 2
por que cada vez que ejecuto ese codigo mi pc se queda pegado, sera por que lo ejecuto en forma local?
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #45 (permalink)  
Antiguo 22/03/2005, 08:02
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
Ok, vuelvo al día siguiente y obviamente... vuelven los problemas!
Resulta que me he resignado a conservar un documento pdf en el servidor que se reescribe cada vez que envío información diferente para formar el pdf, y de creado lo abre y el usuario puede verlo, imprimirlo y guardarlo en su maquina en el sitio y con el nombre que quiera darle.
(Mil gracias por la ayuda porque no lo hubiera logrado sola)
El tema es que aunque sobreescribe el pdf, después de varios envíos lo que hace es cargar el pdf que tengo en cache!
Hay forma de eliminar los archivos en cache al abrir una pagina, o por lo menos de indicar que para esta pagina no se genere cache???
Mil gracias de nuevo a todos por darme una mano en algo en lo que me veo bastante jorobada!!!!
Muchiiiisimas gracias a trasgukabi y sjam7 que me guiaron durante todo este proceso. El pdf no deja de sorprenderme sobretodo porque me imagino que gran parte de los problemas pueden estar originados en configuraciones internas (esas a las que no prestamos atención en la instalación), pero bueh! me conformaré con hacer lo que necesito por ahora y mas adelante continuar investigando cuál es "la clave del exito" en la creación de pdf desde el web.
Ok, si alguien tiene información de lo de eliminar el chace, le estaré inmensamente agradecida!!!!!
Saludos a todos!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #46 (permalink)  
Antiguo 22/03/2005, 08:06
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 7 meses
Puntos: 18
<%response.expires = 0
response.expiresabsolute = Now() - 1
response.addHeader "pragma","no-cache"
Response.Buffer = true
response.addHeader "cache-control","private"
Response.CacheControl = "no-cache"%>

esto lo pones lo primero en el archivo.
  #47 (permalink)  
Antiguo 22/03/2005, 08:53
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
.

Hola Trasgukabi!!!
Como que ya debes empezar a hartarte de mis mensajes pero.... No lo hace!!!!
Puse el código en el principio de la pagina que genera el pdf y no hace nada diferente.... Sigue levantando el pdf que tiene en cache.
Es mas, borré primero todo el cache para asegurarme que no lo hiciera, hice la primera prueba y trajo lo que le había enviado por url, luego hice la segunda y volvió a traer el pdf con los datos de la primera.
Constaté en el archivo guardado, y guarda el contenido nuevo como corresponde.
Qué puede estar mal? Porque copie el código tal y como lo pusiste.
Gracias por tu ayuda! Espero poder retribuirtela en algun momento.
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #48 (permalink)  
Antiguo 22/03/2005, 09:04
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 7 meses
Puntos: 18
Seguro que estás generando pdf diferentes? (me imagino que sí) y si es que sí, ahí me has pillado. no se me ocurre nada. espero que los masters del foro tengan algo que decir.
  #49 (permalink)  
Antiguo 22/03/2005, 09:13
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
.

Claaaaaro que son diferentes!!!!
Por ahora le estaba enviando los parametros directamente por url a mano.
Ahora estoy intentando lo verdaderamente funcional que es enviar los resultados de una consulta a la base de datos!!!
Por lo pronto parece funcionar bastante bien!!!
Sucede que con esto del cache no tengo mucha experiencia (bah! en realidad ninguna )
Así que por momentos hace lo que quiero y en otros momentos no Ahora pasandole los resultados de un sql está funcionando.
Mil gracias por tu ayuda, he avanzado mucho de ayer a hoy y te lo debo.
Un abrazo fuerte y hasta pronto (que seguro me trabo en alguna y "Otra vez la burra al trigo!!!)
En serio gracias por tu ayuda!!!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #50 (permalink)  
Antiguo 22/03/2005, 11:48
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
.

Ok, como era de esperarse estoy aquí nuevamente.
Sucede que quiero cargar el pdf con contenido dinámico y me tira un error en el wend de un bucle....
Aquí pongo el código para que se vea a ver en qué me estoy confundiendo, ya que lo miré de todos lados y no se lo puedo encontrar

Código:
 
<html>
<head><title>Generar PDF con ASP</title> </head>
<body> 
<% Set pdf=CreateJsObject("FPDF") 
pdf.CreatePDF() 
pdf.SetPath("fpdf/") 
pdf.SetFont "Arial","I",14
pdf.Open() 
pdf.AddPage() 
pdf.Cell 42,0, nombre
pdf.ln()
pdf.SetFont "Arial","",12
pdf.Cell 42,10, detalles
pdf.SetFont "Arial","U", 12
pdf.Cell 42,20, "Procesos y Actividades Relacionados"
pdf.ln()
pdf.SetFont "Arial","", 12
While (not Rsvincu.EOF)
 If (Rsvincu.Fields.Item("tipo_entidad")="proceso") Then
 StrNombre=Rsvincu.Fields.Item("NP")
 Else if(Rsvincu.Fields.Item("tipo_entidad")="actividad") Then
 StrNombre=Rsvincu.Fields.Item("NA")
 End If
 pdf.Cell 42, 20, StrNombre
 Rsvincu.MoveNext()
Wend
pdf.Output("prueba.pdf"), true
pdf.Close() 
Response.Redirect("prueba.pdf")
Si alguien tiene idea aunque sea si lo que quiero hacer se puede se lo agradecería.
Cabe aclarar que todos los datos salen de consultas, incluso la variable nombre y detalles que muestro.
Lo que parece no querer funcionar es el bucle vbscript para generar los renglones del pdf.
Gracias por la atención!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #51 (permalink)  
Antiguo 22/03/2005, 12:38
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 3 meses
Puntos: 16
y que error te da?

no sabia que el while llevara "(" y ")"
  #52 (permalink)  
Antiguo 22/03/2005, 12:47
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
.

Que el wend espera una instrucción.
Lo de los parentesis puede ir como no, en realidad no afecta. Se los coloqué a ver si desaparecía el error en un principio pero no... ni fu ni fa.
Lo copio de todos modos abajo para que se vea claramente.


Código:
 Error de compilación de Microsoft VBScript error '800a0400' 

Se esperaba una instrucción 

/bdb_tmp/admin/pdfs/genmacro.asp, line 68 

Wend^
La línea 68 es la del wend
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #53 (permalink)  
Antiguo 22/03/2005, 12:57
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 3 meses
Puntos: 16
supongo que el objeto Rsvincu.EOF lo abres antes de lo que publicaste
  #54 (permalink)  
Antiguo 22/03/2005, 13:04
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
.

Por supus!
Esos eran errores de los comienzos, afortunadamente ya no me suelen ocurrir!
En realidad que me preocupa porque es como que no hiciera relación entre las dos instrucciones. Si le saco el while me lo pide.
Si hago do .... While, pide un wend mas abajo....
Es como que no relacionara la primera instrucción con la siguiente que le corresponde, y no lo hace ni en ie ni en firefox
Es realmente raro.
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #55 (permalink)  
Antiguo 22/03/2005, 13:05
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 3 meses
Puntos: 16
creo que el error esta en que es elseif no else if cambialo
  #56 (permalink)  
Antiguo 22/03/2005, 13:13
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
.

Okis!!!
Volví a los errores del principio
Como que de tanto darle vueltas al asunto le pifié feo
Ya funciona!!!
Ahora tendré que ver bien el tema de la distribución del texto, los colores y esas cosas... pero espero no tener que molestar a nadie por eso!
Gracias!!!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #57 (permalink)  
Antiguo 28/03/2005, 15:05
 
Fecha de Ingreso: agosto-2003
Mensajes: 24
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola,
Lei todo el hilo de la conversacion, instale todo pero me aparece solo basura en el despliegue en IExplorer, no asi en NetScape u Opera, ando en la misma, ya que tengo que generar liquidaciones de sueldo On-Fly y si genero el archivo y lo guardo en disco oops!, ya que la empresa es bastante grandota en terminos de numero de trabajadores, algunos de ustedes soluciono la forma que se pueda visualizar en IExplorer?, seria de gran ayuda un par de tip's sobre esto...
Como siempre agradecido desde ya.
Leonardo, from Chile !!!
__________________
Leonardo Martinez
Santiago, Chile
  #58 (permalink)  
Antiguo 28/03/2005, 17:51
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 2 meses
Puntos: 2
quien postea el codigo final que funciona la verdad que los probe todos y nada, tambien diganme si lo corren en un server remoto lo local..
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #59 (permalink)  
Antiguo 29/03/2005, 08:05
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 6 meses
Puntos: 2
Se suponía que con el pdf.Output ya tenía que verse en el explorer... pero a mí no me resultó para nada....
Lo que hice fue permitir que se guarde un archivo en disco, con un unico formato, que sería el modelo en base al cual se generarían todos los informes que quiero mostrar.
Esto produce solo un documento unico que se sobreescribe cada vez que se le pasan datos nuevos. Entonces después de crearlo lo llamas para abrirlo y ya està.
Lo que tendrías que verificar bien es que se limpie el caché para que siempre levante el ultimo archivo que ha creado.
Espero haber sido clara.
Por lo del cache.. El ejemplo funciona bien, el tema es cerrar la ventana en la que se está trabajando antes de pretender que cambie.
Espero haber sido clara, un saludo para todos!!! hasta prontito!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #60 (permalink)  
Antiguo 29/03/2005, 22:36
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 2 meses
Puntos: 2
Gracias
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
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.
Tema Cerrado

SíEste tema le ha gustado a 10 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 02:41.