Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LHardRex

[Resolvido] Barcode e Drawtext no PDF Zend

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.