Jump to content


Photo

Asppdf Repetir Cabeçalho De Template Pdf


  • Faça o login para participar
1 reply to this topic

#1 Matheus Melo

Matheus Melo

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 12/08/2014, 19:09

Olá amigos,

Estou criando um pdf baseado em template pdf, usando o componente asppdf, fazendo o importFromURL, porém no pdf template tem uma imagem no cabeçalho e outra no rodapé com informações, gostaria que ele repetisse esse cabeçalho em todas as páginas, como o conteúdo é dinâmico vindo de um editor fckeditor onde os dados vão ser preenchidos e dpois exportados para o pdf, no caso a quantidade de páginas é variável então qndo o conteúdo ocupa mais de uma página a segunda página não aparece o cabeçalho nem o rodapé, fica o texto em uma página em branco.

Segue o código q estou usando:

Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.OpenDocument( Server.MapPath( "pdf/template.pdf" ) )
If Doc Is Nothing Then
Response.Write "This PDF is password-protected."
' Obtain a password from user and try again
Set Doc = Pdf.OpenDocument(Server.MapPath( "pdf/template.pdf" ), Pwd)
End If
cnt = cnt & request.Form("editor")
Doc.ImportFromUrl "http://www.site.com....rahtmlpdf.html", "scale=0.6; hyperlinks=true; drawbackground=true"
Filename = Doc.Save( Server.MapPath("pdfgerado.pdf"), False )
Response.Redirect ("pdfgerado.pdf")

Alguém pode me ajudar ??
Preciso resolver isso com certa ugência.
Desde já agradeço a atenção de todos.

#2 Matheus Melo

Matheus Melo

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 17/08/2014, 12:45

Opa consegui resolver dpois de massantes horas de pesquisa e estudo da documentação, a solução é sempre simples, mas até achar é aquele corre corre. Vamos lá, segue o código que usei caso mais alguém precise disto no futuro.

Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.OpenDocument( Server.MapPath( "pdf/templatelocafaz.pdf" ) )
fPageWidth = Doc.Pages(1).Width
fPageHeight = Doc.Pages(1).Height
Set objDoc = Pdf.CreateDocument()
Set objGraph = objDoc.CreateGraphicsFromPage(Doc, 1)
' Aqui eu gravo o código html gerado através do editor wysiwyg fckeditor em uma tabela no banco de dados
cnt = cnt & request.Form("editor")
sql = "update cotacaopdf set htmlpdf = '" & cnt & "' where id = 1"
dbconn sql
CloseDbConn()
'Aqui eu importo o mesmo html gerado acima através da pagina gerahtmlpdf q pega o código gravado na tabela acima e mostra abaixo da tag body, já definindo as margens e tamanho da página, no caso A4
objDoc.ImportFromUrl "http://www.site.com....erahtmlpdf.asp", "scale=0.6; hyperlinks=true;pageWidth=595;pageHeight=842;LeftMargin=23;RightMargin=23;TopMargin=110;BottomMargin=95"

' Neste For eu pego cada págian do documento e repito a arte do template em pdf q fiz usando illustrator, já com o cabeçalho e rodapé.
For Each Page in objDoc.Pages
Page.Canvas.DrawGraphics objGraph, "x=0; y=0"
Next
'Dpois só gravar o pdf e visualizá-lo
Filename = objDoc.Save( Server.MapPath("pdfgerado.pdf"), False )
Response.Redirect ("pdfgerado.pdf")

Ufa, foi duro conseguir isso mas tá aí, espero que sirva pra mais alguém e q encurta o tempo de pesquisa na internet.
Um abraço a todos.

Edição feita por: Matheus Melo, 17/08/2014, 12:46.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq