Jump to content
Fórum Script Brasil
  • 0

PDF com FPDF


bareta

Question

Bom galera vou iniciar um tópico exclusivo aqui com PDF usando o FPDF conforme forem perguntando vou resolvendo as dúvidas ...

de inicio vou deixar só um exemplo inicial...,

para ver o pdf o pdf.asp deve ser linkado.

PDF.asp

<!--#include file="fpdf.asp"-->
<%
dim pdf
'// criando o pdf
set pdf=CreateJsObject("FPDF")

'// aki poderemos adcionar várias funções como titulos padroes para todas as páginasm numeração de páginas e etc.

'// montando o corpo do pdf, setando o tipo da folha, tipo de medida e o tamanho da folha
pdf.CreatePDF "P","mm","A4"
pdf.SetPath("fpdf/")
pdf.Open()

'// adcionando página
pdf.AddPage()

'// setando fonte e tamanho
pdf.SetFont "Times","",12

'// setando grossura da linha
pdf.SetLineWidth(0.4)

'// setando linhas, reapare que, as medidas são feitas em x1, y1, x2 e y2, començando no ponto inicial de x e y e finalizando nos mesmo.
pdf.Line "7","50","201","50"
'// criamos aki uma linha horizontal, a linha pode ser feita de qualquer jeito, vertical, diagonal e td mais, somente setando os valores de x e y.

'// escrevendo um texto
pdf.Text "7","49","Bareta iniciando o FPDF"
'// na linha acima setamos primeiro a função Text, depois aonde começamos a escrever apartir do x e y e por fim o texto a ser adcionado
'// presta-se atenção aki, pois quem precisa fazer uma leitura de banco de dados ou resgatar uma session para ser impressa no pdf, n se pode usar as ' ' na função de texto

'// fechando o pdf
pdf.Close()
pdf.Output()
%>

download do FPDF.asp:

http://www.aspxnet.it/public/Files/Download/178/fpdf1.01.zip

conforme surgirem questões irei completando o tópico.

Link to comment
Share on other sites

25 answers to this question

Recommended Posts

  • 0

OL Bareta e pessoal.

Estou aqui tentando gerar um arquivo pdf das informações contidas no banco de dados. Depois de fazer uma busca no banco de dados, escolho o item que preciso gerar as informções no PDF, mas o que acontece é que gera sempre o primeiro dado do banco de dados..o que estou fazendo de errado? Segue o script que tenho...

<!--#include file="fpdf.asp"-->
<%
dim recordset1
dim Recordset1_numRows
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = "DBQ=C:\rede\SI.mdb;Driver={Microsoft Access Driver (*.mdb)};"
Recordset1.Source = "SELECT *  FROM intima   ORDER BY nome"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0


dim pdf
// criando o pdf

set pdf=CreateJsObject("FPDF")



// aki poderemos adcionar várias funções como titulos padroes para todas as páginasm numeração de páginas e etc.

// montando o corpo do pdf, setando o tipo da folha, tipo de medida e o tamanho da folha
pdf.CreatePDF "P","mm","A4"
pdf.SetPath("fpdf/")
pdf.Open()



// adcionando página
pdf.AddPage()

// setando fonte e tamanho
pdf.SetFont "times","",12

// setando grossura da linha
pdf.SetLineWidth(0.4)


// setando linhas, reapare que, as medidas são feitas em x1, y1, x2 e y2, començando no ponto inicial de x e y e finalizando nos mesmo.
pdf.Line "7","52","200","52"
// criamos aki uma linha horizontal, a linha pode ser feita de qualquer jeito, vertical, diagonal e td mais, somente setando os valores de x e y.

// escrevendo um texto
pdf.Text "70","35","ESTADO DO RIO GRANDE DO SUL"
pdf.Text "90","40","POLÍCIA CIVIL"
pdf.Text "92","45","DPM / DPRPA"
pdf.Text "60","50","DÉCIMA SEGUNDA DELEGACIA DE POLÍCIA"

    pdf.Text "60","90",(recordset1.Fields.Item("nome").Value)


// na linha acima setamos primeiro a função Text, depois aonde começamos a escrever apartir do x e y e por fim o texto a ser adcionado
// presta-se atenção aki, pois quem precisa fazer uma leitura de banco de dados ou resgatar uma session para ser impressa no pdf, n se pode usar as ' ' na função de texto
nomIma = "logopc.jpg"
pdf.Image nomIma, 93, 10, 20, 20, "JPG", "http://www.se_quizer_aqui_vai_o_link.html"
// pdf.Image(string logopc.jpg, float 3, float 8, float 4 [, float h [, string type [, mixed link]]])

// fechando o pdf

pdf.Output()

%>

Link to comment
Share on other sites

  • 0

Coloquei agora, só que aparece um por cima do outro. Qual será o erro?

<!--#include file="fpdf.asp"-->
<%
dim recordset1
dim Recordset1_numRows
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = "DBQ=C:\rede\SI.mdb;Driver={Microsoft Access Driver (*.mdb)};"
Recordset1.Source = "SELECT *  FROM intima   ORDER BY nome"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0


dim pdf
// criando o pdf

set pdf=CreateJsObject("FPDF")



// aki poderemos adcionar várias funções como titulos padroes para todas as páginasm numeração de páginas e etc.

// montando o corpo do pdf, setando o tipo da folha, tipo de medida e o tamanho da folha
pdf.CreatePDF "P","mm","A4"
pdf.SetPath("fpdf/")
pdf.Open()



// adcionando página
pdf.AddPage()

// setando fonte e tamanho
pdf.SetFont "times","",12

// setando grossura da linha
pdf.SetLineWidth(0.4)


// setando linhas, reapare que, as medidas são feitas em x1, y1, x2 e y2, començando no ponto inicial de x e y e finalizando nos mesmo.
pdf.Line "7","52","200","52"
// criamos aki uma linha horizontal, a linha pode ser feita de qualquer jeito, vertical, diagonal e td mais, somente setando os valores de x e y.

while not Recordset1.Eof
cat_nome = Recordset1("nome")

// escrevendo um texto
pdf.Text "70","35","ESTADO DO RIO GRANDE DO SUL"
pdf.Text "90","40","POLÍCIA CIVIL"
pdf.Text "92","45","DPM / DPRPA"
pdf.Text "60","50","DÉCIMA SEGUNDA DELEGACIA DE POLÍCIA"

    pdf.Text "60","90",(recordset1.Fields.Item("nome").Value)
Recordset1.movenext
wend

// na linha acima setamos primeiro a função Text, depois aonde começamos a escrever apartir do x e y e por fim o texto a ser adcionado
// presta-se atenção aki, pois quem precisa fazer uma leitura de banco de dados ou resgatar uma session para ser impressa no pdf, n se pode usar as ' ' na função de texto
nomIma = "logopc.jpg"
pdf.Image nomIma, 93, 10, 20, 20, "JPG", "http://www.se_quizer_aqui_vai_o_link.html"
// pdf.Image(string logopc.jpg, float 3, float 8, float 4 [, float h [, string type [, mixed link]]])

// fechando o pdf

pdf.Output()
%>

Link to comment
Share on other sites

  • 0

o que acontece aqui é falta de atenção ou preguiça de ler...

você tem um código todo comentado que em cada linha tem coordenadas x e y na frente ...!!!

repare

// na linha acima setamos primeiro a função Text, depois aonde começamos a escrever apartir do x e y e por fim o texto a ser adcionado

este tópico pode ajudar:

http://scriptbrasil.com.br/forum/index.php?showtopic=142529

Link to comment
Share on other sites

  • 0

Vamos lá..o que aconteceu não foi falta de leitura e sim que esse loop faz com que apareça todos os dados do banco. o que gostaria fosse feito é gerar apenas os dados daquela busca anterior, no qual gerou um link "resultadoPDF.asp?cat_nome=maria"

nessa tela do PDF estou tentando que gere apenas a tela com os dados da "MARIA", no qual foi objeto da busca no banco de dados. Ou seja....O PDF é dos dados de uma pessoa contatante no banco...ok

Com relação aos dados do FPDF....estão perfeitos e MUITO bem explicados, tanto que a geração as págima, inserção de imagens e toda a configuração da mesma foram feitas perfeitamente, graças a explicação do script.

Abraço

Link to comment
Share on other sites

  • 0

não seria o caso de limitar a sql?

Recordset1.Source = "SELECT *  FROM intima  where x='nome'  ORDER BY nome"

obs: pelo q entendi essa mudança na sql, (não da forma q postei é claro) pode resolver, pois seriam só os resultados de uma determinada busca. certo?

Link to comment
Share on other sites

  • 0

Perfeito...era isso mesmo que estava faltaando

Coloquei uma string na saída da busca - .asp?&nome=<%=Recordset1("nome")%>"> -

e lá na página que gera o PDF inseri

Recordset1.Source = "SELECT * FROM intima where nome='" & Request.QueryString("cat_nome") & "' ORDER BY nome"

Funcionou perfeito!

valeu obrigado!!

Link to comment
Share on other sites

  • 0

Bom dia galera,

Estou tentando fazer a "LUZ"...

falando sério agora...

estou tentando juntar vários PDF'S em um só tipo...

faço o upload's dos arquivos,

em outra tela outros profissionais vou escolher quais e quantos pdf's vão se juntar

mais não estou conseguindo...

abrir o arquivo pdf e pegar o conteúdo

se alguém puder me ajudar.

obrigado

Link to comment
Share on other sites

  • 0
Bom galera vou iniciar um tópico exclusivo aqui com PDF usando o FPDF conforme forem perguntando vou resolvendo as dúvidas ...

de inicio vou deixar só um exemplo inicial...,

para ver o pdf o pdf.asp deve ser linkado.

PDF.asp

<!--#include file="fpdf.asp"-->
<%
dim pdf
'// criando o pdf
set pdf=CreateJsObject("FPDF")

'// aki poderemos adcionar várias funções como titulos padroes para todas as páginasm numeração de páginas e etc.

'// montando o corpo do pdf, setando o tipo da folha, tipo de medida e o tamanho da folha
pdf.CreatePDF "P","mm","A4"
pdf.SetPath("fpdf/")
pdf.Open()

'// adcionando página
pdf.AddPage()

'// setando fonte e tamanho
pdf.SetFont "Times","",12

'// setando grossura da linha
pdf.SetLineWidth(0.4)

'// setando linhas, reapare que, as medidas são feitas em x1, y1, x2 e y2, començando no ponto inicial de x e y e finalizando nos mesmo.
pdf.Line "7","50","201","50"
'// criamos aki uma linha horizontal, a linha pode ser feita de qualquer jeito, vertical, diagonal e td mais, somente setando os valores de x e y.

'// escrevendo um texto
pdf.Text "7","49","Bareta iniciando o FPDF"
'// na linha acima setamos primeiro a função Text, depois aonde começamos a escrever apartir do x e y e por fim o texto a ser adcionado
'// presta-se atenção aki, pois quem precisa fazer uma leitura de banco de dados ou resgatar uma session para ser impressa no pdf, n se pode usar as ' ' na função de texto

'// fechando o pdf
pdf.Close()
pdf.Output()
%>

download do FPDF.asp:

http://www.aspxnet.it/public/Files/Download/178/fpdf1.01.zip

conforme surgirem questões irei completando o tópico.

Boa noite,

Sou iniciante aqui no Fórum e atualmente estou estagiando. Já programei em PHP e agora estou conhecendo ASP.

Estou com um projeto de gerar um conteúdo em PDF e este conteúdo era impresso diretamente. Ou seja, tem um botão "imprimir" e ao clicar, abre tipo um "pop-up" e você imprime, só que ao invés de imprimir, criei um novo botão para gerar o PDF. Bom, baixei o fpdf e extraí na pasta do meu projeto, só que na etapa do include <!--#include file="fpdf.asp"--> aparece um erro dizendo que o diretório não foi encontrado. Como estou usando o VB, fui fazendo gambiarras atrás de gambiarras mas no fim sempre surge um erro novo. Eu jogo o fpdf.asp no VB e ele para de dar erro, depois começa a dar erro no Math,image e basics, dentro da pasta include, do fpdf. Fechei tudo para recomeçar.

Como comecei, fico meio assim de pedir ajuda, porque aqui tudo é corrido, enfim, se alguém puder me ajudar, agradeço e muito.

Abaixo o meu projeto:

Primeiro. O programador que criou o projeto, não fez as 'chamadas' como tinha que ser, cuspiu tudo de uma vez. A página "detalheLinha.asp", por exemplo, tem mais de 500 instruções, ou seja, o botão "imprimir" não chama imprimir.asp com tudo organizado, ele pega as instruções que estão no próprio "detalheLinha.asp". Muitíssimo confuso. Quando fiz em php, separei tudo, ficou bem organizado, mas agora eu estou a 6 horas tentando entender essa por***!

Segundo. Como estou bastante confuso e o meu jeito de se expressar demonstra isso, gostaria de pegar esse botão "gerarPDF" que eu já criei , chamar "gerarPDF.asp" que está igual ao código acima e assim, pegar as informações do "imprimir" e jogar no gerarPDF.

Ao invés de ficar escrevendo, é melhor vir as perguntas que eu vou me esclarecendo melhor.

Outra coisa, acham melhor eu separar a div que contém a instrução imprimir em uma outra .asp? O problema é que dentro dessa DIV, tem outras instruções que dependem. PQP!

Obrigado e aguardo!

Link to comment
Share on other sites

  • 0
um tanto confuso... começa do zero a bagaça ai...

no caso faz teu botão chamar a popup e separa tudo em functions e Subs

Primeiramente, obrigado por responder! O assunto é tão antigo que pensei que já tinha se perdido no limbo.

Arrumei muita coisa e agora o problema está na biblioteca do fpdf.

Criei um botão gerarPDF que chama a biblioteca, só que está dando erro no basics.asp.

ERRO:

Active Server Pages erro 'ASP 0234'

Diretiva de inclusão inválida

/abusinf1/fpdf/includes/Basics.asp, linha 3

As diretivas de inclusão do servidor podem não estar presentes nos blocos de script. Use o atributo SRC= da marca &lt;script>.

CÓDIGO:

&lt;script language="javascript" runat="server">

<!--#include File="images.asp"-->
<!--#include File="math.asp"-->

Segundo a Microsoft:

Sintomas:

Depois de atualizar para o Microsoft Windows 2000 e Internet Information Server (IIS) 5.0, você pode receber a seguinte mensagem de erro com Active Server Pages (ASP) que especificam incluir diretivas em um bloco de script:

Páginas ASP, ASP 0234 (0 x 80004005)

Diretivas de inclusão do servidor podem não estar presentes nos blocos de script. Use o SRC = atributo da marca <script>

Este erro não ocorre no IIS 4.0.

Causa:

No IIS 5.0, de inclusão de diretivas do servidor não podem ser colocados dentro de um bloco de script.

Resolução:

Para resolver esse erro, mova o código que especifica o lado do servidor inclui fora (o bloco de script acima).

Etapas para reproduzir o problema

Crie um arquivo incluem chamado TestINC.inc e em seguida, cole o seguinte código:

<%

Response.Write "From TestINC.inc"

%>

Crie uma nova página ASP chamada TestASP.asp e cole o código a seguir:

<script LANGUAGE=vbscript RUNAT=Server>

<!--#include file="TestINC.inc"-->

Response.Write "From TestASP.asp"

</SCRIPT>

No seu navegador, exiba TestASP.asp. Você receberá o erro ASP 0234.

Edited by diegosw
Link to comment
Share on other sites

  • 0

Minha solução :

Em notepad, não conseguia ver caracteres especiais E tinha alguns antes do <%@language=vbscript%>, no "fpdf.asp". Abri ele com ultraedit e apareceu, removi e foi!

Agora o projeto começa de verdade :)

_

SEGUNDA dúvida : Sobre a configuração do fpdf.

Meu fpdf atualmente está assim:

<%@language=vbscript%>

<!--#include file="fpdf.asp"-->
<%

Dim imagem
imagem = "imagens/Emdec.jpg"

// criando o pdf
set pdf=CreateJsObject("FPDF")

// aki poderemos adcionar várias funções como titulos padroes para todas as páginasm numeração de páginas e etc.

// montando o corpo do pdf, setando o tipo da folha, tipo de medida e o tamanho da folha
pdf.CreatePDF "P","mm","A4"
pdf.SetPath("fpdf/")
pdf.Open()

// adcionando página
pdf.AddPage()

// setando fonte e tamanho
pdf.SetFont "Times","",12

// setando grossura da linha
pdf.SetLineWidth(0.4)

// setando linhas, reapare que, as medidas são feitas em x1, y1, x2 e y2, començando no ponto inicial de x e y e finalizando nos mesmo.
pdf.Line "7","50","201","50"
// criamos aki uma linha horizontal, a linha pode ser feita de qualquer jeito, vertical, diagonal e td mais, somente setando os valores de x e y.


pdf.Image imagem, 5, 5, 80, 20 ,"JPG"

// escrevendo um texto

pdf.Text "150","17","Informações de Linha!"
pdf.Text "10","55","Teste!"
pdf.Text "10","60","Teste1!"
pdf.Text "10","65","Teste2!"
pdf.Text "10","70","Teste3!"
pdf.Text "10","75","Teste4!"
pdf.Text "10","80","Teste5!"
pdf.Text "10","85","Teste6!"
// na linha acima setamos primeiro a função Text, depois aonde começamos a escrever apartir do x e y e por fim o texto a ser adcionado
// presta-se atenção aki, pois quem precisa fazer uma leitura de banco de dados ou resgatar uma session para ser impressa no pdf, n se pode usar as ' ' na função de texto


// fechando o pdf
pdf.Close()
pdf.Output()
%>

Resumindo: Eu coloquei o logo no canto superior esquerdo e uma outra informação no canto superior direito, em baixo, tem um linha(pdf.Line "7","50","201","50") que vai separar o logo do conteúdo.

Dúvidas:

- Primeira: como faço a conexão com o banco de dados no fpdf?

- Segunda: como coloco um link?

- Terceira: que função eu uso para subir ou descer essa linha?

- Quarta: preciso pegar o conteúdo do BD para o pdf e centraliza-lo no meio. Na função imprimir, eu pego as informações e as jogo para imprimir, sendo que já está tudo encaixado e informado em ASP, MAS, como vou fazer isso em PDF?

Segue imagem:

Em PDF:

70252327.jpg

Em ASP:

44482826.jpg

Edited by diegosw
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...