Classe fpdf não escreve duas imagens em várias páginas

Iniciado por rafael, Março 13, 2018, 12:23:07 AM

tópico anterior - próximo tópico

rafael

Oi Adalberto

Vê se você me ajuda:

Tentei usar o fpdf pra gerar um arquivo de várias páginas com o mesmo cabeçalho e o mesmo rodapé.
No cabeçalho uma imagem o no rodapé outra.

Se for uma página funciona, mas se for mais as imagens repetem ou ficam cruzadas, as vezes nem aparece, as vezes só aparece uma.

Tem uma noção do que pode ser ?

adalberto

Teria que ver o seu código, e estou até sem muito tempo.

Se as imagens acabam ficando sobrepostas, será que não é um erro de calcular as posições delas?

Olha, há um tempo, quando estava fazendo as libs jpeginfo e outras eu consegui colocar imagens jpg e tenho até um exemplo, o problema é que a lib fpdf que tenho aqui não vai ser igual a sua, fiz umas modificações e ainda nem traduzi os comando ainda.

Veja o exemplo: (segue em anexo para baixar!)


//basico

local fpdf = inclua'fpdf';
local jpg = inclua'jpginfo';

local pdf = fpdf:novo();

pdf:AdPagina();

pdf:SetFont('Arial','B',12)
    // Background color
pdf:SetFillColor(200,220,255)
    // Title
pdf:Cell(0,6,"Exemplo de imagem",0,1,'C',verdadeiro)
    // Line quebre
pdf:Ln(4)
pdf:Cell(4,10,'Olá como vai você?');
pdf:Imagem("casal.jpeg",5,30,100,100);//insere a imagem

pdf:AdPagina();
local info = jpg.info('prisma.jpg');
pdf:SetFont('Arial','B',12)
pdf:SetFillColor(200,220,255);
pdf:Cell(0,6,"prisma.jpg " .. info.larg ..'x'.. info.alt,0,1,'L',verdadeiro);
pdf:Imagem('prisma.jpg',5,22,info.larg/6, info.alt/6);

//--------------------------------------------
pdf:AdPagina();

pdf:SetFont('Arial','B',12)
    // Background color
pdf:SetFillColor(200,220,255)
    // Title
pdf:Cell(0,6,"Exemplo de imagem",0,1,'C',verdadeiro)
    // Line quebre
pdf:Ln(4)
pdf:Cell(4,10,'Olá como vai você?');
pdf:Imagem("logo.png",5,30,100,100);//insere a imagem


pdf:Output("zzbasico.pdf"); //salva o arquivo pdf




Obs.: Nem toda imagem png dá certo, imagens jpg e ppm tem mais compatibilidade.

Tenta adaptar aí, depois retorna aqui se não der certo ok.

(Baixe os arquivos em anexo)

rafael

Oi Adalberto, mais uma vez obrigado.

Com sua biblioteca não consegui.

Mas fui modificando a minha e achei a solução baseada na sua:

a linha defeituosa era

  • info.i = este._PegueTamanhoDaTabela(este.m_imagens)


Anexo o exemplo.

adalberto

Blz.

Só não esqueça de fechar o arquivo aberto na linha 1495 a 1497 depois de fazer a leitura. (Se bem que o coletor de lixo deve fazer isso, mas é mais seguro fechá-lo com a:feche(); )