private function _render($dest = '', $filename = '') { $un = 72 / 25.4; $wFourAreas = $this->pdf->w; $hFourAreas = $this->pdf->h; //-Menos 1.5CM porque algumas impressoras não conseguem imprimir nos ultimos 1cm da página $tMarginFourAreas = 0; $rMarginFourAreas = 0; $bMarginFourAreas = 0; $lMarginFourAreas = 0; $wInnerFourAreas = $wFourAreas - $lMarginFourAreas - $rMarginFourAreas; $hInnerFourAreas = 0; $margins = array(array('l' => $lMarginFourAreas, 'r' => $wFourAreas - $rMarginFourAreas, 't' => $tMarginFourAreas, 'b' => $hFourAreas - $bMarginFourAreas), array('l' => $wFourAreas + $lMarginFourAreas, 'r' => $wFourAreas * 2 - $rMarginFourAreas, 't' => $tMarginFourAreas, 'b' => $hFourAreas - $bMarginFourAreas), array('l' => $lMarginFourAreas, 'r' => $wFourAreas - $rMarginFourAreas, 't' => $hFourAreas + $tMarginFourAreas, 'b' => $hFourAreas * 2 - $bMarginFourAreas), array('l' => $wFourAreas + $lMarginFourAreas, 'r' => $wFourAreas * 2 - $rMarginFourAreas, 't' => $hFourAreas + $tMarginFourAreas, 'b' => $hFourAreas * 2 - $bMarginFourAreas)); $objetosPostais = $this->plp->getEncomendas(); $total = count($objetosPostais); while (count($objetosPostais)) { $this->pdf->AddPage(); if (Bootstrap::getConfig()->getSimular()) { $this->pdf->SetFont('Arial', 'B', 50); $this->pdf->SetTextColor(240, 240, 240); $this->pdf->SetXY($lMarginFourAreas, $hFourAreas - $this->pdf->getLineHeigth()); $this->pdf->MultiCellXp($this->pdf->w - $this->pdf->lMargin - $this->pdf->rMargin, "Simulação Documento sem valor", null, 0, 'C'); $this->pdf->SetXY($lMarginFourAreas, $margins[2]['t'] + $hFourAreas - $this->pdf->getLineHeigth()); $this->pdf->MultiCellXp($this->pdf->w - $this->pdf->lMargin - $this->pdf->rMargin, "Simulação Documento sem valor", null, 0, 'C'); $this->pdf->SetTextColor(0, 0, 0); } // $crossMargin = 50; // $this->pdf->SetDrawColor(200, 200, 200); // for ($lineY = $crossMargin; $lineY < $this->pdf->h - $crossMargin; $lineY += 10) { // $this->pdf->Line($wFourAreas, $lineY, $wFourAreas, $lineY + 3); // } // for ($lineX = $crossMargin; $lineX < $this->pdf->w - $crossMargin; $lineX += 10) { // $this->pdf->Line($lineX, $hFourAreas, $lineX + 3, $hFourAreas); // } $this->pdf->SetDrawColor(0, 0, 0); for ($area = 0; $area < 1; $area++) { if (!count($objetosPostais)) { break; } /** @var $objetoPostal \PhpSigep\Model\ObjetoPostal */ $objetoPostal = array_shift($objetosPostais); $lPosFourAreas = $margins[$area]['l']; $rPosFourAreas = $margins[$area]['r']; $tPosFourAreas = $margins[$area]['t']; $bPosFourAreas = $margins[$area]['b']; // Logo $this->pdf->SetXY($lPosFourAreas, $tPosFourAreas); $this->setFillColor(222, 222, 222); $headerColWidth = $wInnerFourAreas / 3; $headerHeigth = 106; if ($this->logoFile) { $this->pdf->Image($this->logoFile, 3, 0, 25); } // Chancela $this->pdf->SetXY(66, $this->pdf->GetY() + 3); $this->setFillColor(150, 150, 200); $wChancela = 101.5; $hChancela = 72.5; $lPosChancela = 66; $tPosChancela = $this->pdf->GetY(); $servicoDePostagem = $objetoPostal->getServicoDePostagem(); $nomeRemetente = $this->plp->getRemetente()->getNome(); $accessData = $this->plp->getAccessData(); switch ($servicoDePostagem->getCodigo()) { case ServicoDePostagem::SERVICE_PAC_41068: case ServicoDePostagem::SERVICE_PAC_41106: case ServicoDePostagem::SERVICE_PAC_GRANDES_FORMATOS: if ($this->layoutPac === CartaoDePostagem::TYPE_CHANCELA_PAC) { $chancela = new Pac($lPosChancela, $tPosChancela, $nomeRemetente, $accessData); } else { $chancela = new Pac2016($lPosChancela, $tPosChancela, $nomeRemetente, $accessData); } break; case ServicoDePostagem::SERVICE_E_SEDEX_STANDARD: if ($this->layoutSedex === CartaoDePostagem::TYPE_CHANCELA_SEDEX) { $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_E_SEDEX, $accessData); } else { $chancela = new Sedex2016($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_E_SEDEX, $accessData); } break; case ServicoDePostagem::SERVICE_SEDEX_40096: case ServicoDePostagem::SERVICE_SEDEX_40436: case ServicoDePostagem::SERVICE_SEDEX_40444: case ServicoDePostagem::SERVICE_SEDEX_A_VISTA: case ServicoDePostagem::SERVICE_SEDEX_VAREJO_A_COBRAR: case ServicoDePostagem::SERVICE_SEDEX_PAGAMENTO_NA_ENTREGA: case ServicoDePostagem::SERVICE_SEDEX_AGRUPADO: if ($this->layoutSedex === CartaoDePostagem::TYPE_CHANCELA_SEDEX) { $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX, $accessData); } else { $chancela = new Sedex2016($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX, $accessData); } break; case ServicoDePostagem::SERVICE_SEDEX_12: if ($this->layoutSedex === CartaoDePostagem::TYPE_CHANCELA_SEDEX) { $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX_12, $accessData); } else { $chancela = new Sedex2016($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX_12, $accessData); } break; case ServicoDePostagem::SERVICE_SEDEX_10: case ServicoDePostagem::SERVICE_SEDEX_10_PACOTE: if ($this->layoutSedex === CartaoDePostagem::TYPE_CHANCELA_SEDEX) { $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX_10, $accessData); } else { $chancela = new Sedex2016($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX_10, $accessData); } break; case ServicoDePostagem::SERVICE_SEDEX_HOJE_40290: case ServicoDePostagem::SERVICE_SEDEX_HOJE_40878: if ($this->layoutSedex === CartaoDePostagem::TYPE_CHANCELA_SEDEX) { $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX_HOJE, $accessData); } else { $chancela = new Sedex2016($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX_HOJE, $accessData); } break; case ServicoDePostagem::SERVICE_CARTA_COMERCIAL_A_FATURAR: case ServicoDePostagem::SERVICE_CARTA_REGISTRADA: if ($this->layoutCarta === CartaoDePostagem::TYPE_CHANCELA_CARTA) { $chancela = new Carta($lPosChancela, $tPosChancela, $nomeRemetente, $accessData); } else { $chancela = new Carta2016($lPosChancela, $tPosChancela, $nomeRemetente, $accessData); } break; case ServicoDePostagem::SERVICE_SEDEX_REVERSO: default: $chancela = null; break; } if ($chancela) { $chancela->draw($this->pdf); } // Título da etiqueta if ($this->idPlpCorreios > 0) { $lPosHeaderCol2 = $headerColWidth + $lPosFourAreas; // $this->pdf->SetXY($lPosHeaderCol2, $tPosFourAreas); // $this->setFillColor(200, 200, 200); // $this->pdf->SetFontSize(12); // $this->pdf->SetFont('', 'B'); // $this->t($headerColWidth, 'Cartão de Postagem', 2, 'C'); // Número da plp $this->pdf->SetXY($lPosHeaderCol2, $tPosFourAreas + 32); $this->setFillColor(150, 200, 200); $this->pdf->SetFont('', ''); $this->pdf->SetFontSize(9); $this->t($headerColWidth * 3, 'PLP: ' . $this->idPlpCorreios, 0, 'C'); } // Volume $this->setFillColor(100, 150, 200); $this->pdf->SetXY(0, 30); $nf = (double) $objetoPostal->getDestino()->getNumeroNotaFiscal(); if ($nf > 0) { $nf = ' NF: ' . $nf; } $numeroPedido = trim($objetoPostal->getDestino()->getNumeroPedido()); if (!empty($numeroPedido)) { $numeroPedido = ' Pedido: ' . $numeroPedido; } $this->pdf->SetFontSize(7); $this->t($this->pdf->w, 'Volume: 1/1 ' . 'Peso(kg): ' . (double) $objetoPostal->getPeso() . $nf . $numeroPedido, 1, 'C', null); // Número da etiqueta $this->setFillColor(100, 100, 200); $this->pdf->SetXY(0, $this->pdf->GetY() + 1); $this->pdf->SetFontSize(9); $this->pdf->SetFont('', 'B'); $etiquetaComDv = $objetoPostal->getEtiqueta()->getEtiquetaComDv(); $this->t($wInnerFourAreas, $etiquetaComDv, 1, 'C'); // Código de barras da etiqueta $this->setFillColor(0, 0, 0); $tPosEtiquetaBarCode = $this->pdf->GetY(); $hEtiquetaBarCode = 22; $wEtiquetaBarCode = 78; $code128 = new \PhpSigep\Pdf\Script\BarCode128(); $code128->draw($this->pdf, ($this->pdf->w - $wEtiquetaBarCode) / 2, $tPosEtiquetaBarCode, $etiquetaComDv, $wEtiquetaBarCode, $hEtiquetaBarCode); // Nome legivel, doc e rubrica // $this->pdf->SetFontSize(7); $this->pdf->SetXY(1, $this->pdf->GetY() + 23); $this->t(0, 'Nome Legível:___________________________________________', 1, 'L', null); $this->pdf->SetXY(1, $this->pdf->GetY() + 1); $this->t(0, 'Documento:_______________________Rubrica:_____________________', 1, 'L', null); // Destinatário $wAddressLeftCol = $this->pdf->w - 5; $tPosAfterNameBlock = 71; $t = $this->writeDestinatario($lPosFourAreas, $tPosAfterNameBlock, $wAddressLeftCol, $objetoPostal); $destino = $objetoPostal->getDestino(); if ($destino instanceof \PhpSigep\Model\DestinoNacional) { // Número do CEP $cep = $destino->getCep(); $cep = preg_replace('/[^\\d]/', '', $cep); $tPosCepBarCode = $t + 1; // Etiqueta do CEP $hCepBarCode = 22; $wCepBarCode = 47; $this->setFillColor(0, 0, 0); $code128->draw($this->pdf, 6, $tPosCepBarCode, $cep, $wCepBarCode, $hCepBarCode); $valorDeclarado = null; $sSer = ""; foreach ($objetoPostal->getServicosAdicionais() as $servicoAdicional) { if ($servicoAdicional->is(ServicoAdicional::SERVICE_AVISO_DE_RECEBIMENTO)) { $temAr = true; $sSer = $sSer . "01"; } else { if ($servicoAdicional->is(ServicoAdicional::SERVICE_MAO_PROPRIA)) { $temMp = true; $sSer = $sSer . "02"; } else { if ($servicoAdicional->is(ServicoAdicional::SERVICE_VALOR_DECLARADO)) { $temVd = true; $sSer = $sSer . "19"; $valorDeclarado = $servicoAdicional->getValorDeclarado(); } else { if ($servicoAdicional->is(ServicoAdicional::SERVICE_REGISTRO)) { $temRe = true; $sSer = $sSer . "25"; } } } } } while (strlen($sSer) < 12) { $sSer = $sSer . "00"; } $sM2Dtext = $this->getM2Dstr($cep, $objetoPostal->getDestinatario()->getNumero(), $this->plp->getRemetente()->getCep(), $this->plp->getRemetente()->getNumero(), $etiquetaComDv, $sSer, $this->plp->getAccessData()->getCartaoPostagem(), $objetoPostal->getServicoDePostagem()->getCodigo(), $valorDeclarado, $objetoPostal->getDestinatario()->getTelefone()); require_once 'Semacode.php'; $semacode = new \Semacode(); $semaCodeGD = $semacode->asGDImage($sM2Dtext); $this->setFillColor(222, 222, 222); $this->pdf->gdImage($semaCodeGD, 35, 3, 25); imagedestroy($semaCodeGD); } $this->writeRemetente(0, $this->pdf->GetY() + $hCepBarCode + 5, $wAddressLeftCol, $this->plp->getRemetente()); } } if ($dest == 'S') { return $this->pdf->Output($filename, $dest); } else { $this->pdf->Output($filename, $dest); } }
/** * Build a semacode from given URL parameters * * Parameters: * * text - the text to encode (limited charset) * type - the wanted outoput: svg, png or table * size - for png type only: width of the image */ require_once 'semacode.php'; $text = $_REQUEST['text']; $type = $_REQUEST['type']; $size = (int) $_REQUEST['size']; if (!$size) { $size = 160; } // strip non-supported chars (is this correct?) $text = preg_replace('/[^\\w!\\"#$%&\'()*+,\\-\\.\\/:;<=>?@[\\_\\]\\[{\\|}~\\r*]+ /', '', $text); // encode $semacode = new Semacode(); if ($type == 'png') { $semacode->sendPNG($text, $size); } elseif ($type == 'svg') { header('Content-Type: image/svg'); echo $semacode->asSVG($text); } else { echo '<html><body>'; echo $semacode->asHTMLTable($text); echo '</body></html>'; }
private function _render() { $un = 72 / 25.4; $wFourAreas = $this->pdf->w / 2; $hFourAreas = ($this->pdf->h - $un * 15) / 2; //-Menos 1.5CM porque algumas impressoras não conseguem imprimir nos ultimos 1cm da página $tMarginFourAreas = $un * 5; $rMarginFourAreas = $un * 5; $bMarginFourAreas = $un * 5; $lMarginFourAreas = $un * 5; $wInnerFourAreas = $wFourAreas - $lMarginFourAreas - $rMarginFourAreas; $hInnerFourAreas = $hFourAreas - $tMarginFourAreas - $bMarginFourAreas; $margins = array(array('l' => $lMarginFourAreas, 'r' => $wFourAreas - $rMarginFourAreas, 't' => $tMarginFourAreas, 'b' => $hFourAreas - $bMarginFourAreas), array('l' => $wFourAreas + $lMarginFourAreas, 'r' => $wFourAreas * 2 - $rMarginFourAreas, 't' => $tMarginFourAreas, 'b' => $hFourAreas - $bMarginFourAreas), array('l' => $lMarginFourAreas, 'r' => $wFourAreas - $rMarginFourAreas, 't' => $hFourAreas + $tMarginFourAreas, 'b' => $hFourAreas * 2 - $bMarginFourAreas), array('l' => $wFourAreas + $lMarginFourAreas, 'r' => $wFourAreas * 2 - $rMarginFourAreas, 't' => $hFourAreas + $tMarginFourAreas, 'b' => $hFourAreas * 2 - $bMarginFourAreas)); $objetosPostais = $this->plp->getEncomendas(); $total = count($objetosPostais); while (count($objetosPostais)) { $this->pdf->AddPage(); if (Bootstrap::getConfig()->getSimular()) { $this->pdf->SetFont('Arial', 'B', 50); $this->pdf->SetTextColor(240, 240, 240); $this->pdf->SetXY($lMarginFourAreas, $hFourAreas / 2 - $this->pdf->getLineHeigth() / 2); $this->pdf->MultiCellXp($this->pdf->w - $this->pdf->lMargin - $this->pdf->rMargin, "Simulação Documento sem valor", null, 0, 'C'); $this->pdf->SetXY($lMarginFourAreas, $margins[2]['t'] + $hFourAreas / 2 - $this->pdf->getLineHeigth() / 2); $this->pdf->MultiCellXp($this->pdf->w - $this->pdf->lMargin - $this->pdf->rMargin, "Simulação Documento sem valor", null, 0, 'C'); $this->pdf->SetTextColor(0, 0, 0); } $crossMargin = 50; $this->pdf->SetDrawColor(200, 200, 200); for ($lineY = $crossMargin; $lineY < $this->pdf->h - $crossMargin; $lineY += 10) { $this->pdf->Line($wFourAreas, $lineY, $wFourAreas, $lineY + 3); } for ($lineX = $crossMargin; $lineX < $this->pdf->w - $crossMargin; $lineX += 10) { $this->pdf->Line($lineX, $hFourAreas, $lineX + 3, $hFourAreas); } $this->pdf->SetDrawColor(0, 0, 0); for ($area = 0; $area < 4; $area++) { if (!count($objetosPostais)) { break; } /** @var $objetoPostal \PhpSigep\Model\ObjetoPostal */ $objetoPostal = array_shift($objetosPostais); $lPosFourAreas = $margins[$area]['l']; $rPosFourAreas = $margins[$area]['r']; $tPosFourAreas = $margins[$area]['t']; $bPosFourAreas = $margins[$area]['b']; // Logo $this->pdf->SetXY($lPosFourAreas, $tPosFourAreas); $this->setFillColor(222, 222, 222); $headerColWidth = $wInnerFourAreas / 3; $headerHeigth = 106; if ($this->logoFile) { $this->pdf->Image($this->logoFile); } //$this->pdf->Line($lPosFourAreas, $tPosFourAreas, $lPosFourAreas, $bPosFourAreas); //$this->pdf->Line($lPosFourAreas, $tPosFourAreas, $rPosFourAreas, $tPosFourAreas); //$this->pdf->Line($rPosFourAreas, $tPosFourAreas, $rPosFourAreas, $bPosFourAreas); //$this->pdf->Line($lPosFourAreas, $bPosFourAreas, $rPosFourAreas, $bPosFourAreas); // $this->t($headerColWidth, 'Logo', 0, 'C', $headerHeigth); //$this->pdf->Line( // $headerColWidth + $lPosFourAreas, // $tPosFourAreas, // $headerColWidth + $lPosFourAreas, // $tPosFourAreas + $headerHeigth //); //$this->pdf->Line( // $lPosFourAreas, // $tPosFourAreas + $headerHeigth, // $lPosFourAreas + $headerColWidth, // $tPosFourAreas + $headerHeigth //); // Título da etiqueta if ($this->idPlpCorreios > 0) { $lPosHeaderCol2 = $headerColWidth + $lPosFourAreas; $this->pdf->SetXY($lPosHeaderCol2, $tPosFourAreas); $this->setFillColor(200, 200, 200); $this->pdf->SetFontSize(15); $this->pdf->SetFont('', 'B'); $this->t($headerColWidth * 2, 'Cartão de Postagem', 2, 'C'); // Número da plp $this->setFillColor(150, 200, 200); $this->pdf->SetFont('', ''); $this->pdf->SetFontSize(10); $this->t($headerColWidth * 2, $this->idPlpCorreios, 0, 'C'); } // Chancela $this->setFillColor(150, 150, 200); $wChancela = 101.5; $hChancela = 72.5; $lPosChancela = $rPosFourAreas - $wChancela; $bPosHeader = $tPosFourAreas + $headerHeigth; $tPosChancela = $bPosHeader - $hChancela - 20 + 22; $this->pdf->SetXY($lPosChancela, $tPosChancela); //$this->t($wChancela, 'Chancela', 0, 'C', $hChancela); $servicoDePostagem = $objetoPostal->getServicoDePostagem(); $nomeRemetente = $this->plp->getRemetente()->getNome(); $accessData = $this->plp->getAccessData(); switch ($servicoDePostagem->getCodigo()) { case ServicoDePostagem::SERVICE_PAC_41068: case ServicoDePostagem::SERVICE_PAC_41106: case ServicoDePostagem::SERVICE_PAC_GRANDES_FORMATOS: $chancela = new Pac($lPosChancela, $tPosChancela, $nomeRemetente, $accessData); break; case ServicoDePostagem::SERVICE_E_SEDEX_STANDARD: $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_E_SEDEX, $accessData); break; case ServicoDePostagem::SERVICE_SEDEX_40096: case ServicoDePostagem::SERVICE_SEDEX_40436: case ServicoDePostagem::SERVICE_SEDEX_40444: case ServicoDePostagem::SERVICE_SEDEX_A_VISTA: case ServicoDePostagem::SERVICE_SEDEX_VAREJO_A_COBRAR: case ServicoDePostagem::SERVICE_SEDEX_PAGAMENTO_NA_ENTREGA: case ServicoDePostagem::SERVICE_SEDEX_AGRUPADO: $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX, $accessData); break; case ServicoDePostagem::SERVICE_SEDEX_12: $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX_12, $accessData); break; case ServicoDePostagem::SERVICE_SEDEX_10: case ServicoDePostagem::SERVICE_SEDEX_10_PACOTE: $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX_10, $accessData); break; case ServicoDePostagem::SERVICE_SEDEX_HOJE_40290: case ServicoDePostagem::SERVICE_SEDEX_HOJE_40878: $chancela = new Sedex($lPosChancela, $tPosChancela, $nomeRemetente, Sedex::SERVICE_SEDEX_HOJE, $accessData); break; case ServicoDePostagem::SERVICE_CARTA_COMERCIAL_A_FATURAR: case ServicoDePostagem::SERVICE_CARTA_REGISTRADA: $chancela = new Carta($lPosChancela, $tPosChancela, $nomeRemetente, $accessData); break; case ServicoDePostagem::SERVICE_SEDEX_REVERSO: default: $chancela = null; break; } if ($chancela) { $chancela->draw($this->pdf); } // Peso // $this->setFillColor(100, 150, 200); // $this->pdf->SetFontSize(9); // $lineHeigth = $this->pdf->getLineHeigth(100 / $this->pdf->k); // $this->pdf->SetXY($lPosHeaderCol2, ($bPosHeader - $lineHeigth * 2) + 10); // $this->t( // $lPosChancela - $lPosHeaderCol2, // 'Peso: ' . ((float)$objetoPostal->getPeso()) . 'kg', // 2, // 'C', // $lineHeigth // ); // Volume $this->setFillColor(100, 150, 200); $this->pdf->SetXY($lPosFourAreas + 43, $bPosHeader + 15); // $this->t($lPosChancela - $lPosHeaderCol2, 'Volume: ' . ($total - count($objetosPostais)) . '/' . $total, 0, 'C', $lineHeigth); $nf = (double) $objetoPostal->getDestino()->getNumeroNotaFiscal(); if ($nf > 0) { $nf = ' NF: ' . $nf; } $this->t($lPosChancela, 'Volume: 1/1 ' . 'Peso(kg): ' . (double) $objetoPostal->getPeso() . $nf, 1, 'C', null); // Número da etiqueta $this->setFillColor(100, 100, 200); $this->pdf->SetXY($lPosFourAreas, $bPosHeader + 35); $this->pdf->SetFontSize(10); $this->pdf->SetFont('', 'B'); $etiquetaComDv = $objetoPostal->getEtiqueta()->getEtiquetaComDv(); $this->t($wInnerFourAreas, $etiquetaComDv, 1, 'C'); // Código de barras da etiqueta $this->setFillColor(0, 0, 0); $hEtiquetaBarCode = 40; $tPosEtiquetaBarCode = $this->pdf->GetY(); $wEtiquetaBarCode = $un * 65.44; $code128 = new \PhpSigep\Pdf\Script\BarCode128(); $code128->draw($this->pdf, $lPosFourAreas + $wInnerFourAreas / 2 - $wEtiquetaBarCode / 2, $tPosEtiquetaBarCode, $etiquetaComDv, $wEtiquetaBarCode, $hEtiquetaBarCode); // Destinatário $wAddressLeftCol = $wInnerFourAreas / 4 * 2.2; $wAddressRightCol = $wInnerFourAreas - $wAddressLeftCol; $lAddressRigthCol = $wAddressLeftCol + $lPosFourAreas; $tPosAfterBarCode = $tPosEtiquetaBarCode + $hEtiquetaBarCode + 5; $t = $this->writeDestinatario($lPosFourAreas, $tPosAfterBarCode, $wAddressLeftCol, $objetoPostal); $t += $this->pdf->getLineHeigth() / 2; $this->writeRemetente($lPosFourAreas, $t, $wAddressLeftCol, $this->plp->getRemetente()); $destino = $objetoPostal->getDestino(); $hCepBarCode = 0; if ($destino instanceof \PhpSigep\Model\DestinoNacional) { // Número do CEP $cep = $destino->getCep(); $cep = preg_replace('/[^\\d]/', '', $cep); $this->setFillColor(215, 115, 15); $this->pdf->SetXY($lAddressRigthCol, $tPosAfterBarCode + 15); $this->t($wAddressRightCol, $cep, 2, 'C'); $tPosCepBarCode = $this->pdf->GetY(); // Etiqueta do CEP $hCepBarCode = 25; $wCepBarCode = $un * 38.44; $this->setFillColor(0, 0, 0); $code128->draw($this->pdf, $lAddressRigthCol + $wAddressRightCol / 2 - $wCepBarCode / 2, $tPosCepBarCode, $cep, $wCepBarCode, $hCepBarCode); $valorDeclarado = null; $sSer = ""; foreach ($objetoPostal->getServicosAdicionais() as $servicoAdicional) { if ($servicoAdicional->is(ServicoAdicional::SERVICE_AVISO_DE_RECEBIMENTO)) { $temAr = true; $sSer = $sSer . "01"; } else { if ($servicoAdicional->is(ServicoAdicional::SERVICE_MAO_PROPRIA)) { $temMp = true; $sSer = $sSer . "02"; } else { if ($servicoAdicional->is(ServicoAdicional::SERVICE_VALOR_DECLARADO)) { $temVd = true; $sSer = $sSer . "19"; $valorDeclarado = $servicoAdicional->getValorDeclarado(); } else { if ($servicoAdicional->is(ServicoAdicional::SERVICE_REGISTRO)) { $temRe = true; $sSer = $sSer . "25"; } } } } } while (strlen($sSer) < 12) { $sSer = $sSer . "00"; } $sM2Dtext = $this->getM2Dstr($cep, $objetoPostal->getDestinatario()->getNumero(), $this->plp->getRemetente()->getCep(), $this->plp->getRemetente()->getNumero(), $etiquetaComDv, $sSer, $this->plp->getAccessData()->getCartaoPostagem(), $objetoPostal->getServicoDePostagem()->getCodigo(), $valorDeclarado, $objetoPostal->getDestinatario()->getTelefone(), $objetoPostal->getDestinatario()->getComplemento()); require_once 'Semacode.php'; $semacode = new \Semacode(); $semaCodeGD = $semacode->asGDImage($sM2Dtext); $this->setFillColor(222, 222, 222); $this->pdf->gdImage($semaCodeGD, $lPosFourAreas + 108, $tPosFourAreas + 50, 42); imagedestroy($semaCodeGD); } } } $this->pdf->Output(); }