Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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');Carregando comentários...