nfephp-org / sped-da

Classes para geração dos documentos auxiliares usados pelos padrões Sped
Other
139 stars 238 forks source link

Possível solução para corrigir lentidão na impressão da CT-e #580

Open SmileYzn opened 1 year ago

SmileYzn commented 1 year ago

Acabei descobrindo o porque da lentidão ao gerar o danfe CT-e:

https://github.com/nfephp-org/sped-da/blob/c4634d8fbb1b352010fe0617497a4e25f124330f/src/CTe/Dacte.php#L3809C39-L3809C39

Essa funcão está usando a extensão imagick, passar false para usar o PHP GD e whoala, é insantâneo a geração do documento.

E acabei modificando um pouco essa função qrCodeDacte, para salvar o arquivo qrcode.png de uma forma temporária, pois nem todo servidor PHP está com allow_url_fopen ativo:

protected function qrCodeDacte($y = 0)
{
    $margemInterna = $this->margemInterna;
    $barcode = new Barcode();
    $bobj = $barcode->getBarcodeObj(
        'QRCODE,M',
        $this->qrCodCTe,
        -4,
        -4,
        'black',
        array(-2, -2, -2, -2)
    )->setBackgroundColor('white');
    $qrcode = $bobj->getPngData(false);
    $wQr = 36;
    $hQr = 36;
    $yQr = ($y + $margemInterna);
    if ($this->orientacao == 'P') {
        $xQr = 170;
    } else {
        $xQr = 250;
    }
    file_put_contents('qrcode.png', $qrcode);
    $this->pdf->image('qrcode.png', $xQr - 3, $yQr, $wQr, $hQr, 'PNG');
}