Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vinicius Ianni

Gerar PDF usando ASPPDF

Recommended Posts

Bom, alguns meses atrás, quebrei a cabeça para criar um pdf que resgatasse informações do banco de dados, criava o pdf e tals.

Procurando na net e no site do componente, as informações eram muito pobres e não atendiam o que precisava.

Depois de algumas dicas no forum, fiquei de postar o resultado, que segue abaixo:

 


<%
set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
conn.open strconexao
sql = "select * from tabela01 where id="&Session("pedid")
set rs = conn.Execute(sql)

set rs4=server.createobject("adodb.recordset")
clsql = "select * from tabela02 where id="&rs("idcliente")
set rs4 = conn.Execute(clsql)

set rs6=server.createobject("adodb.recordset")
vdsql = "select nome from tabela03 where id="&rs4("atendido")
set rs6 = conn.Execute(vdsql)

set rs7=server.createobject("adodb.recordset")
pgsql = "select nome from tabela04 where id="&rs("formpag")
set rs7 = conn.Execute(pgsql)

set rs5=server.createobject("adodb.recordset")
ctsql = "select cidade from tabela05 where id="&rs4("cidade")
set rs5 = conn.Execute(ctsql)

set rs2=server.createobject("adodb.recordset")
stct="SELECT * from tabela06 where idpedido="&Session("pedid")
set rs2 = conn.execute(stct)

set rs3=server.createobject("adodb.recordset")
 
set rs8=server.createobject("adodb.recordset")
sql8 = "Select * from tabela07 where idcli="&Session("cliente")
Set rs8 = conn.Execute(sql8)

Set PDF = Server.CreateObject("Persits.Pdf")
Set Param = PDF.CreateParam
Set TextParam = PDF.CreateParam
Set TextfootParam = PDF.CreateParam
Set Doc = PDF.CreateDocument

' Create table with one row (header), and 5 columns
Set Table = Doc.CreateTable("width=500; height=20; Rows=1; Cols=4; Border=0; CellSpacing=-1; cellpadding=2 ")
Table.Font = Doc.Fonts("Helvetica")

Set HeaderRow = Table.Rows(1)
Param.Set("alignment=center")
Param.Add("html=true")
With HeaderRow
   .BGColor = "GREY"
   .Cells(1).AddText "<b>Produto</b>", Param
   .Cells(2).AddText "<b>Preço Un.</b>", Param
   .Cells(3).AddText "<b>Quantidade</b>", Param
   .Cells(4).AddText "<b>SubTotal<b>", Param
End With

' Set column widths
With Table.Rows(1)
   .Cells(1).Width = 180
   .Cells(2).Width = 60
   .Cells(3).Width = 70
   .Cells(4).Width = 70
End With

' Populate table with data

param.Set "expand=true" ' expand cell vertically

Do While Not rs2.EOF
proct="SELECT nome,peso from tabela09 where id="&rs2("prodid")
set rs3 = conn.execute(proct)

   Set Row = Table.Rows.Add(20) ' row height
   param.Add "alignment=left"
   Row.Cells(1).AddText rs3("nome") &"  "& rs3("peso"), param
   Row.Cells(2).AddText "R$ " &pdf.FormatNumber(rs2("precoun"), "precision=2, delimiter=true"), param

   param.Add "alignment=center"
	 Row.Cells(3).AddText rs2("qtd"), param
   Row.Cells(4).AddText "R$ " &pdf.FormatNumber(rs2("preco"), "precision=2, delimiter=true"), param

   rs2.MoveNext
Loop

Set Rowfin = Table.Rows.Add(20)
		param.add "alignment=left"
		Rowfin.Cells(1).AddText "Saldo Anterior:" , param
				param.add "alignment=center"
		Rowfin.Cells(4).AddText "R$ " &pdf.FormatNumber(Session("valdevi"), "precision=2, delimiter=true, european=true"), param
Set Rowfin = Table.Rows.Add(20)
		param.add "alignment=left"
		Rowfin.Cells(1).AddText "Total:" , param
				param.add "alignment=center"
		Rowfin.Cells(4).AddText "R$ " &pdf.FormatNumber(rs("valortot"), "precision=2, delimiter=true, european=true"), param

' Render table on document
Set Page = Doc.Pages.Add(632, 792)
Param.Clear 
Param("x") = (Page.Width - Table.Width) / 2 ' center table on page
Param("y") = Page.Height - 190
Param("MaxHeight") = 500

FirstRow = 2
Do While True
   LastRow = Page.Canvas.DrawTable( Table, Param )

   ' Print record numbers
   TextParam("x") = 50 '(Page.Width - Table.Width) / 2
   TextParam("y") = Page.Height - 80
   TextParam.Add("color=black")
	 TextParam.Add("html=true") 
	 TextStr= "<b>Nome:</b> "&rs4("nome")&"<br><b>Endereço:</b> "&rs4("endereco")&"<br><b>Bairro:</b> "&rs4("bairro")&"<br><b>Cidade:</b> "&rs5("cidade")&"<br><b>Ponto de Referencia:</b> "&rs4("ptoref")&"<br><b>Telefone:</b> "&rs4("tel")&" <b>Celular:</b> "&rs4("cel")&"<br><b>Vendedor:</b>  "&rs6("nome")&"<br><b>Data de Emissão:</b>  "& Date()

	 'TextStr="Records "&FirstRow-1&" to "&LastRow-1&" of "&Table.Rows.Count-1
   Page.Canvas.DrawText TextStr, TextParam, doc.fonts("Courier-Bold")
	 	 
   TextfootParam("x") = 50 '(Page.Width - Table.Width) / 2
   TextfootParam("y") = Page.Height - 600
   TextfootParam.Add("color=black")
	 TextfootParam.Add("html=true") 
	 TextfootStr= "<b>Forma de pagamento:  </b>"&rs7("nome")&"<p><b>Protocolo de Entrega:</b><p><b>Nome:</b> "&rs4("nome")&"        <b>Valor da compra:  </b>"&FormatNumber(rs("valortot"),2)&"<br><b>Endereço:</b> "&rs4("endereco")&"<br><b>Bairro:</b> "&rs4("bairro")&"<br><b>Cidade:</b> "&rs5("cidade")&"<br><b>Ponto de Referencia:</b> "&rs4("ptoref")&"<br><b>Telefone:</b> "&rs4("tel")&" <b>Celular:</b> "&rs4("cel")&"<br><b>Vendedor:</b>  "&rs6("nome")&"<br><b>Data de Emissão:</b>  "& Date()&"<br><b>Assinatura:<br>RG:</b>"

	 'TextStr="Records "&FirstRow-1&" to "&LastRow-1&" of "&Table.Rows.Count-1
   Page.Canvas.DrawText TextfootStr, TextfootParam, doc.fonts("Courier-Bold")


   if LastRow >= Table.Rows.Count Then Exit Do ' entire table displayed

   ' Display remaining part of table on the next page
   Set Page = Page.NextPage
   Param.Add( "RowTo=1; RowFrom=1" ) ' Row 1 is header.
   Param("RowFrom1") = LastRow + 1 ' RowTo1 is omitted and presumed infinite
   FirstRow = LastRow + 1
Loop



Set Image = Doc.OpenImage(Server.MapPath( "logo01.jpg" ) ) 
Page.Canvas.DrawImage Image, "x=40, y=720"
Set Image = Doc.OpenImage(Server.MapPath( "logo02.jpg" ) ) 
Page.Canvas.DrawImage Image, "x=360, y=720"
Set Image = Doc.OpenImage(Server.MapPath( "logo03.jpg" ) ) 
Page.Canvas.DrawImage Image, "x=450, y=720"
Set Image = Doc.OpenImage(Server.MapPath( "logo04.jpg" ) ) 
Page.Canvas.DrawImage Image, "x=500, y=720"



Filename = Doc.Save( Server.MapPath("pedido-"&rs("id")&".pdf"), False )
 
response.write "<p><font color='blue'><b>Pedido efetuado com sucesso!<p> Dados inseridos no banco de dados e arquivo pdf gerado com sucesso!</b>"
response.write "<br>Clique <a href=" & Filename & " target='_blank'>aqui</a> para visualizar o arquivo.</font>"
 
SET AspPdf = Nothing
SET Doc = Nothing
SET Page = Nothing
SET Font = Nothing
SET Param = Nothing
 
End If
%>

Espero que ajude

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito bom...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.