LHardRex 0 Denunciar post Postado Janeiro 27, 2012 Olá Pessoal, Estou criando um PDF com um código de barras e preciso que ele tenha textos. Será etiquetas de postagem. Aparecerá o nome e endereço do destinatário e remetente e o código de barras no meio. Criei os texto e o código de barras porém quando mando pro PDF o código fica em uma página e as etiquetas aparecem normalmente porém sem seu código. E o código que aparece é o último do array, mas está tudo dentro de um for. Como faço para dar um Zend_Barcode::factory mais uns drawText aparecerem juntos na mesma página. Segue o código: $request = $this->getRequest(); $ids = $request->getParam('order_ids'); if(!$ids){ $ids = array($request->getParam('order_id')); } $pdfarray = array(); $pdf = new Zend_Pdf(); $path = BP . DS . 'lib' . DS . 'arial.ttf'; Zend_Barcode::setBarcodeFont($path); for($i=0;$i<count($ids);$i++): $order = Mage::getModel('sales/order')->load($ids[$i]); $pdfarray['name'] = $order->getShippingAddress()->getName(); $pdfarray['street'] = $order->getShippingAddress()->getStreet1().' '.$order->getShippingAddress()->getStreet2(); $pdfarray['complemento'] = $order->getShippingAddress()->getStreet3(); $pdfarray['bairro'] = $order->getShippingAddress()->getStreet4(); $pdfarray['regiao'] = $order->getShippingAddress()->getCity().'-'.$order->getShippingAddress()->getRegionCode(); $pdfarray['cep'] = $order->getShippingAddress()->getPostcode(); $page = $pdf->newPage('310:200:'); $page->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 7)->drawText($order->getIncrementId(), 250, 188); $page->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 12); $page->drawText(trim(strtoupper($pdfarray['name'])), 5, 188, 'UTF-8'); $page->drawText(trim(strtoupper($pdfarray['street'])), 5, 175, 'UTF-8'); $page->drawText(trim(strtoupper($pdfarray['complemento'])), 5, 162, 'UTF-8'); if($pdfarray['complemento'] == ''){$y = 162;}else{$y = 149;} $page->drawText(trim(strtoupper($pdfarray['bairro'])), 5, $y, 'UTF-8'); if($y == '162'){$y = 149;}else{$y = 136;} $page->drawText(trim(strtoupper($pdfarray['regiao'])), 5, $y, 'UTF-8'); if($y == '149'){$y = 136;}else{$y = 123;} $page->drawText(trim(strtoupper($pdfarray['cep'])), 5, $y, 'UTF-8'); $page->setLineWidth(0.5); $page->drawLine(2, 42, 308, 42); $page->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 8); $page->drawText(strtoupper('Remetente:'), 5, 32, 'UTF-8'); $page->drawText(strtoupper(Mage::getStoreConfig('general/store_information/name')), 5, 22, 'UTF-8'); $page->drawText(strtoupper(Mage::getStoreConfig('general/store_information/address')), 5, 12, 'UTF-8'); $page->drawText(Mage::getStoreConfig('shipping/origin/postcode'), 5, 2, 'UTF-8'); $barcodeOptions = array('text' => str_replace('-', '', $order->getShippingAddress()->getPostcode()), 'barHeight' => 30, 'factor' => 2, 'orientation' => 0); $pdfOptions = array('verticalPosition' => 'middle', 'horizontalPosition' => 'center'); $pdf = Zend_Barcode::factory('code128', 'pdf', $barcodeOptions, $pdfOptions)->setResource($pdf)->draw(); $pdf->pages[] = $page; endfor; $pdfData = $pdf->render(); $this->_prepareDownloadResponse('Etiquetas-'.$order->getIncrementId().'--'.date('d-m-Y-H-i-s').'.pdf', $pdf->render(), 'application/pdf'); Compartilhar este post Link para o post Compartilhar em outros sites
LHardRex 0 Denunciar post Postado Janeiro 28, 2012 Resolvido! Estava colocando uma linha no lugar errado. Tem que ser desta forma. $page = $pdf->newPage('310:200:'); $pdf->pages[] = $page; Compartilhar este post Link para o post Compartilhar em outros sites
LHardRex 0 Denunciar post Postado Janeiro 30, 2012 Desculpe mas não está totalmente resolvido. O código de barras que aparece é sempre o último do array e aparece somente na primeira página. Ele está dentro do for. oque pode ser? Compartilhar este post Link para o post Compartilhar em outros sites