Pesoal, só para não deixar sem resposta. Não encontrei uma solução para esse problema e também não encontrei ninguém que já tenha passado por isso, portanto, apenas inverti o fluxo de impressão das informações do PDF e ficou tudo certinho. Ou seja:
Ao invés disso:
- Código: Selecionar tudo
$page1->drawText("ID..:{$arr_membros[$indice]['id']}", $x, $y+=12);
Inverti o sinal, decrementando:
- Código: Selecionar tudo
$page1->drawText("ID..:{$arr_membros[$indice]['id']}", $x, $y-=12);
E assim fiz em todo o código, com estou imprimindo as infomrações dentro de um loop, foi como se ele estivesse imprimindo as infomrações de trás para frente, mas ficou na ordem correta.
Se alguém ain dpuder ajudar ou souber de algo que possa estar errado no código, por favor podem postar ai. segue ocódigo todo do controle que faz a criação do PDF:
- Código: Selecionar tudo
public function savePdfAction(){
//pegando o token
$token = $this->getCurrentToken();
//fazendo a verificação do token
if (!$this->tokenCheck($token)) {
$this->_helper->viewRenderer->setNoRender(true);
$this->_helper->flashMessenger->addMessage("Erro no token amigão. Tente outraveeeeeeezzzzz.");
$this->_redirect('/index/login');
return false;
}
//pegando os dados dos membos no BD e preparando o array de dados
$arr_membros[] = array();
$membro = new Membro();
$membro->getMembros(null);
$arr_membros = $membro->getArray();
//DEBUGÁSSO DO PDF
sort($arr_membros);
//file_put_contents("./public/tmp/bla_pdf.txt", "Debugásso do PDF..:\n" . print_r($arr_membros, 1));
//criando o manipulador do pdf
$pdf = new Zend_Pdf();
//defiindo página padrão
$page1 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
$pdf->pages[] = $page1;
//Definindo o cabeçalho do pdf
$x = 10;
$y = 800;
$cont = 0;
$font1 = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA_BOLD);
$page1->setFont($font1, 20);
$page1->drawText("Meu primeiro teste em pdf com ZEND_PDF.", 115, $y);
$page1->drawText(" ", $x, $y-=20);
//preparando dados para inserir o conteúdo dinâmico
$font2 = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_COURIER);
$page1->setFont($font2, 10);
//formatando os campos de data e valor de acordo com o indice retornado
foreach($arr_membros as $indice => $dados){
//formatando a data usando o modelo Data
$dataAux = $arr_membros[$indice]['data_nasc'];
$data = new Data($dataAux);
$arr_membros[$indice]['data_nasc'] = $data->__getData();
//formatando o valor usando o modelo Moeda
$rendaAux = $arr_membros[$indice]['renda'];
$moeda = new Moeda($rendaAux);
$arr_membros[$indice]['renda'] = $moeda->getMoeda();
//preparando os dados para serem impressos
$page1->drawText("ID..:{$arr_membros[$indice]['id']}", $x, $y-=12);
$page1->drawText("Email..:{$arr_membros[$indice]['email']}", $x, $y-=12);
$page1->drawText("Nome1..:{$arr_membros[$indice]['fistName']}", $x, $y-=12);
$page1->drawText("Nome2..:{$arr_membros[$indice]['lastName']}", $x, $y-=12);
$page1->drawText("Data de Nasc...:{$arr_membros[$indice]['data_nasc']}", $x, $y-=12);
$page1->drawText("Renda...:{$arr_membros[$indice]['renda']}", $x, $y-=12);
$page1->drawText("Acesso...:{$arr_membros[$indice]['acesso']}", $x, $y-=12);
$y-=20;
++$cont;
if(($cont % 7) == 0){
$page1 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
$pdf->pages[] = $page1;
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_COURIER);
$page1->setFont($font, 10);
$x = 10;
$y = 800;
}
}
//gerando a saída do PDF
$path = "./public/tmp/teste_zendPdf.pdf";
$pdf->save($path);
if(file_exists($path)){
//gerando log de dados e msg de ok
$this->log_db->info(date("d/m/Y H:i:s") . " - Membro {$member->fistName} gerou PDF de membros do BD!!!! ");
$this->_helper->flashMessenger->addMessage("Usuário {$member->fistName} gerou PDF via Zend_Pdf com sucesso.");
$this->_redirect('/index');
}
}
Valew
[]'s