Ir para conteúdo

Arquivado

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

matheusmelo

Usando ImportFromURL com ASPPDF usando template pdf

Recommended Posts

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.br/gerahtmlpdf.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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta entendendo que está em uma única página, joga ele dentro de um loop (for...next)

Compartilhar este post


Link para o post
Compartilhar em outros sites

testa esse code.

<%
' Cria uma instância do controle
Set aspPdf = Server.CreateObject("Persits.Pdf")
' Cria um documento em branco
Set Doc = aspPdf.CreateDocument
' Importa a URL da Internet
Doc.ImportFromUrl "http://www.terra.com.br/"
' Salva o documento.
ArquivoPDF = Doc.Save( Server.MapPath("importa_url.pdf"), False )
' Tira os objetos da memória
Set Doc = Nothing
Set aspPdf = Nothing

Response.Write "Arquivo criado com sucesso : " & ArquivoPDF
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xanburzum grato pelo seu retorno cara, mas no caso eu preciso usar uma template com cabeçalho e rodapé, no caso já criei a template com o cabeçalho e rodapé na primeira página funciona bem, mas na segunda já não aparece o cabeçalho e rodapé, ele não repete estas áreas do template, o problema é que pode ser q o conteúdo gere 1, 2, 3 ou mais páginas, então o q acontece é que na página 1 mostra tudo certinho já da segunda pra frente fica página em branco.

Como faço esse esquema de loop q vc disse ? Onde encaixo o for next ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

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."
End If
Set Doc = Pdf.OpenDocument(Server.MapPath( "pdf/template.pdf" ), Pwd) 
Set Page = Doc.Pages.Add
    cnt = cnt & request.Form("editor")
    Doc.ImportFromUrl "http://www.site.com....erahtmlpdf.html", "scale=0.6; hyperlinks=true; drawbackground=true"
    Filename = Doc.Save( Server.MapPath("pdfgerado.pdf"), False )
    Response.Redirect ("pdfgerado.pdf")

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc pode pegar o conteúdo que quer em txt, criar a nova página e inserir através das coordenadas nesta nova página. Acho que tenho algo assim, vou localizar e postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.br/gerahtmlpdf.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 e gratidão por tentar ajudar xanburzum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza... ficou um loop só nas coordenadas

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.