Ese es el problema, con este componente tienes que ir armando la página directamente con la clase, no con etiquetas html, casi, casi como si estuvieras haciendo un reporte en Cobol o en Clipper.
va un ejemplo:
Código:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="fpdf.asp"-->
<%
Session.LCID = 2058
vDep = Request("Dep")
vDir = Request("Dir")
vDepto = Request("Depto")
vTextoDependencia = request.Form("txtDep")
vTextoDireccion = request.Form("txtDir")
vTextoDepto = request.Form("txtDepto")
%><!-- #include File="conexion.asp" --><%
dim adoRs
set adoRs = Server.CreateObject("adodb.recordset")
Query = "Execute sImprimeActividad "&vDep&", "&vDir&", "&vDepto&", "&vStatus
adoRs.Open Query,cnn
Set pdf=CreateJsObject("FPDF")
pdf.CreatePDF()
pdf.SetPath("fpdf/")
pdf.Open()
cnt=1
cnt=0
cnt2=0
CntAsuntos=0
Dep_Ant = ""
Act_Ant = ""
Depto_Ant = ""
Fecha = CStr(Date())
while NOT adoRS.EOF
if Depto_Ant <> adoRs("Depto") Then
Depto_Ant = adoRs("Depto")
pdf.AddPage()
pdf.Image "fin.JPG",12,12,20,12
pdf.SetTextColor 9,38,244
call NuevaLinea(90,30,10,vTextoDependencia,12,5,"B","C",0)
pdf.SetTextColor 24,103,235
call NuevaLinea(90,30,10,vTextoDireccion,9,5,"B","C",0)
call NuevaLinea(90,30,10,CStr(adoRs("Depto")),9,5,"B","C",0)
End If
pdf.SetDrawColor 251,131,51
if Act_Ant <> adoRs("Descripcion") Then
Act_Ant = adoRs("Descripcion")
CntAsuntos=1
Cnt=Cnt+1
pdf.SetTextColor 0,0,0
call NuevaLinea(1,10,4,"#",8,0,"B","C",1)
call NuevaLinea(11,130,4,"Asunto",8,0,"B","C",1)
call NuevaLinea(141,30,4,"Importe",8,0,"B","C",1)
call NuevaLinea(171,24,4,"Fecha",8,4,"B","C",1)
call NuevaLinea(1,10,4,CStr(cnt),8,0,"B","C",0)
x1 = pdf.GetY()
call NuevaMLinea(11,130,4,CStr(adoRs("Descripcion")),7,0,"","J",0)
x2 = pdf.GetY()
pdf.SetY(x1)
call NuevaLinea(141,30,4,CStr(FormatNumber(adoRs("Importe"),2)),7,0,"B","C",0)
Fecha = MID(adoRs("Fecha_Post"),1,LEN(adoRs("Fecha_Post"))-8)
ampm = RIGHT(adoRs("Fecha_Post"),4)
call NuevaMLinea(171,24,4,CStr(Fecha&" "&m),6,7,"B","C",0)
pdf.SetY(x2)
End If
AccionAnt = Replace(Trim(adoRs("Accion")),"’","")
AccionAnt = Replace(AccionAnt,"'","")
CntAsuntosAnt = CntAsuntos
PropuestaAnt = adoRs("Propuesta")
InstruccionesAnt = adoRs("Instrucciones")
ObservacionesAnt = adoRs("ObservacionesInt")
Mayor = 0
Campo = 0
Valores = ""
Lin_Acc = FormatNumber(ROUND(pdf.GetStringWidth(CStr(AccionAnt)) / 60)+1,2)
if CDbl(Lin_Act) >= Mayor Then
Mayor = CDbl(Lin_Acc)
Campo=1
End If
Lin_Pro = FormatNumber(ROUND(pdf.GetStringWidth(CStr(PropuestaAnt)) / 50)+1,2)
if CDbl(Lin_Pro) >= Mayor Then
Mayor = CDbl(Lin_Pro)
Campo=2
End If
valores = CStr(Lin_Acc)&","&CStr(Lin_Pro)&","&CStr(Lin_Ins)&","&CStr(Lin_Obs)
adoRS.MoveNext
CntAsuntos=CntAsuntos+1
if NOT adoRs.EOF Then
if Act_Ant <> adoRs("Descripcion") Then
call LlenaTabla(Campo,Mayor,valores)
End IF
Else
call LlenaTabla(Campo, Mayor,valores)
End IF
Wend
pdf.Close()
pdf.Output()
Function LlenaTabla(Mayor, C,valores)
pdf.SetDrawColor 0,0,0
call NuevaLinea(1,5,4,CStr(CntAsuntosAnt),8,0,"B","C",0)
x1 = pdf.GetY()
call NuevaMLinea(66,50,4,CStr(PropuestaAnt),6,0,"","L",0)
If Mayor = 2 Then x2 = pdf.GetY() End If
pdf.SetY(x2)
pdf.Line 12,x2,205,x2
End Function
Function NuevaLinea(Celda, Ancho, Alto, Texto, Fuente, Salto,Estilo,Alineacion, Marco)
pdf.SetFont "Arial",Estilo,Fuente
pdf.Cell Celda
pdf.Cell Ancho,Alto,Texto,Marco,0,Alineacion
pdf.Ln Salto
End Function
Function NuevaMLinea(Celda, Ancho, Alto, Texto, Fuente, Salto,Estilo,Alineacion, Marco)
pdf.SetFont "Arial",Estilo,Fuente
pdf.Cell Celda
pdf.MultiCell Ancho,Alto,Texto,Marco,0,Alineacion
pdf.Ln Salto
End Function
%>
Pero como te comenté de manerá inicial: Si lo que pretendes es que a páginas que ya existen pasarla por un objeto y obtener un PDF, solo de pago o que las "parsees" tu mismo. |