ZeusAutomacao / DFe.NET

Biblioteca para Geração de NFe(2.0, 3.10 e 4.0) e NFCe(3.10 e 4.0) e consumo dos serviços necessários à sua manutenção, conforme descritos em http://www.nfe.fazenda.gov.br/portal/principal.aspx
GNU Lesser General Public License v2.1
754 stars 478 forks source link

Impressão NFCe - Fontes #205

Closed homerokzam closed 7 years ago

homerokzam commented 8 years ago

Como faço para usar as fontes do documento de impressão em um projeto asp.net?

Obrigado, Homero

adeniltonbs commented 8 years ago

@homerokzam desculpa não te responder, mas não tenho experiência em asp.net. Acredito que vais achar a solução procurando na net como referenciar/armazenar fontes para uso em um projeto asp.net

homerokzam commented 8 years ago

Obrigado @adeniltonbs . Ainda não achei a solução. Acho que é na biblioteca da relatório, porém não sei usar a FastReport. Pelo que entendi eu teria que instalar as fontes na máquina que roda a aplicação asp.net, porém é um servidor remoto que não tenho acesso para isto, apenas para deploy.

francofs commented 8 years ago

Você pode incluir a fonte no seu projeto e carregar essa fonte na memória para uso da sua aplicação através da classe: System.Drawing.Text.PrivateFontCollection

Não tenho certeza se o FastReports vai conseguir capturar essa fonte ou se ele é compatível com asp.net, talvez você precise implementar uma versão web de impressão.

2016-09-28 21:53 GMT-03:00 homerokzam notifications@github.com:

Obrigado @adeniltonbs https://github.com/adeniltonbs . Ainda não achei a solução. Acho que é na biblioteca da relatório, porém não sei usar a FastReport. Pelo que entendi eu teria que instalar as fontes na máquina que roda a aplicação asp.net, porém é um servidor remoto que não tenho acesso para isto, apenas para deploy.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe/issues/205#issuecomment-250342853, or mute the thread https://github.com/notifications/unsubscribe-auth/AGveQ-QMSxnlmtqSB0hmaPIGCPt6ajr8ks5quwwDgaJpZM4KFmmk .

homerokzam commented 8 years ago

Obrigado @francofs . Testei porém não funcionou. Não acho documentação do FastReports com relação a fonte externa em um projeto asp.net.

No projeto asp.net eu uso a função para gerar o report em pdf, e encaminho por email.

Irei continuar pesquisando.

hardzork commented 8 years ago

@homerokzam, eu implementei em asp.net, porém, não fiz o uso do FastReports. O que fiz foi gerar o layout em um webform, sendo assim consigo carregar uma fonte .ttf qualquer via CSS como abaixo:

<style type="text/css"> @font-face { font-family: NOME_DA_FONTE; src: url(FONTE.ttf); } </style>

Ai declaro a font no style do elemento

<div style="font-family: NOME_DA_FONTE"> </div>

Talvez não seja a implementação mais correta, porém, atendeu ao requisito do projeto.

homerokzam commented 8 years ago

@hardzork Obrigado pela ajuda. Você poderia disponibilizar este webform?

Obrigado.

RenatoVilar commented 8 years ago

Acredito que foi enviado por engano.


De: homerokzam notifications@github.com Enviado: quinta-feira, 27 de outubro de 2016 19:44 Para: adeniltonbs/Zeus.Net.NFe.NFCe Assunto: Re: [adeniltonbs/Zeus.Net.NFe.NFCe] Impressão NFCe - Fontes (#205)

@hardzorkhttps://github.com/hardzork Obrigado pela ajuda. Você poderia disponibilizar este webform?

Obrigado.

You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/adeniltonbs/Zeus.Net.NFe.NFCe/issues/205#issuecomment-256800783, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ATpimWruNOuNhdi6Xf273bcnN3cGuHNGks5q4TdtgaJpZM4KFmmk.

hardzork commented 8 years ago

@homerokzam, claro que posso, segue abaixo a implementação:

Pagina.ASPX

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>NFC-e</title>
    <style type="text/css">
            @font-face {
                font-family: NOME_DA_FONTE;
                src: url(~/NOME_DA_FONTE.ttf);
            }
        .auto-style1 {
            text-align: right;
        }
        .auto-style2 {
            text-align: left;
        }
        .auto-style3 {
            width: 173px;
        }
        </style>
</head>
<body onload="window.print();">
    <div style=" height: 850px; width: 400px;">
        <table style="width:100%; font-family: Loopi; font-size: 14px;">
            <tr>
                <td colspan="7" style="text-align: center">
                    NOME DA EMPRESA</td>
            </tr>
            <tr>
                <td colspan="6" class="auto-style3">CNPJ: CNPJ DA EMPRESA</td>
                <td class="auto-style2">IE: INSCRIÇÃO ESTADUAL</td>
            </tr>
            <tr>
                <td colspan="7">END.: ENDEREÇO DA EMPRESA</td>
            </tr>
            <tr>
                <td colspan="6" class="auto-style3">Bairro: BAIRRO - MUNICIPIO UF DA EMPRESA</td>
                <td class="auto-style2">CEP: CEP DA EMPRESA</td>
            </tr>
            <tr>
                <td colspan="7">------------------------------------------------</td>
            </tr>
            <tr>
                <td colspan="7" style="text-align: center">DANFE NFC-e - Documento Auxiliar da Nota Fiscal de Consumidor Eletronica<br />
                    Nao permite aproveitamento de credito de ICMS</td>
            </tr>
            <tr>
                <td colspan="7">------------------------------------------------</td>
            </tr>
            <tr>
                <td>COD. </td>
                <td>Descricao</td>
                <td>Qtd</td>
                <td>Un</td>
                <td>Vlr</td>
                <td colspan="2" style="text-align: right">Total</td>
            </tr>
            <tr>
                <td colspan="7">------------------------------------------------</td>
            </tr>
            <tr>
                <td>1</td>
                <td>PRODUTO 0001</td>
                <td>1</td>
                <td>Un</td>
                <td>95,00</td>
                <td class="auto-style1" colspan="2">95,00</td>
            </tr>            
            <tr>
                <td colspan="7">------------------------------------------------</td>
            </tr>
            <tr>
                <td colspan="5">QTD. TOTAL DE ITENS</td>
                <td colspan="2" style="text-align: right">1</asp:Label></td>
            </tr>
            <tr>
                <td colspan="5">VALOR TOTAL R$</td>
                <td class="auto-style1" colspan="2">95,00</td>
            </tr>
            <tr>
                <td colspan="5">FORMA DE PAGAMENTO</td>
                <td class="auto-style1" colspan="2">Valor Pago</td>
            </tr>
            <tr>
                <td colspan="5">Dinheiro</td>
                <td class="auto-style1" colspan="2">95,00</td>
            </tr>
            <tr>
                <td colspan="5">Troco R$</td>
                <td class="auto-style1" colspan="2">R$0,00</td>
            </tr>
            <tr>
                <td colspan="5">Valor aprox. dos trib. deste cupom</td>
                <td class="auto-style1" colspan="2">R$ 0,00</td>
            </tr>
            <tr>
                <td colspan="5">(conforme Lei Fed.12.741/2012)</td>
                <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
                <td colspan="7">------------------------------------------------</td>
            </tr>
            <tr>
                <td colspan="7" style="text-align: center">Número: 1 Série: 001 Emissão: 28/10/2016 15:40:00<br />
                    Consulte pela Chave de Acesso em: URL DE CONSULTA POR CHAVE DA NFCE DA SEFAZ DO SEU ESTADO<br />
                    CHAVE DE ACESSO<br />
                    0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000</td>
            </tr>
            <tr>
                <td colspan="7">------------------------------------------------</td>
            </tr>
            <tr>
                <td colspan="7" style="text-align: center">CONSUMIDOR NÃO IDENTIFICADO</asp:Label></td>
            </tr>
            <tr>
                <td colspan="7">------------------------------------------------</td>
            </tr>
            <tr>
                <td colspan="7" style="text-align: center">Consulta via leitor de QR Code<br /><br />
                    IMAGEM DO QRCODE<br /><br />
                    Protocolo de Autorização:<br />
                    0000000000000000 28/10/2016 15:40:00</td>
            </tr>
            <tr>
                <td colspan="5">&nbsp;</td>
                <td colspan="2">&nbsp;</td>
            </tr>

        </table>
    </div>
</body>
</html>

Esta pagina imprime perfeitamente na impressora Bematech MP4200 TH.

Lembrando que você pode mudar a fonte via CSS.

Para gerar o QRCode, utilizo a biblioteca MessagingToolkit.QRCode que transforma a url (string) em bytes, assim posso usar base64 e atribuir ao componente imagem do asp.net, como mostro abaixo

                QRCodeEncoder qrCodecEncoder = new QRCodeEncoder();
                qrCodecEncoder.QRCodeBackgroundColor = Color.White;
                qrCodecEncoder.QRCodeForegroundColor = Color.Black;
                qrCodecEncoder.CharacterSet = "UTF-8";
                qrCodecEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                qrCodecEncoder.QRCodeScale = 10;
                qrCodecEncoder.QRCodeVersion = 100;
                qrCodecEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;

                Bitmap imageQRCode;
                String data = URL_QR_CODE;
                imageQRCode = qrCodecEncoder.Encode(data);
                ImageConverter converter = new ImageConverter();
                byte[] bytes = (byte[])converter.ConvertTo(imageQRCode, typeof(byte[]));
                string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
                img_qrcode.ImageUrl = "data:image/png;base64," + base64String;

Qualquer dúvida é só perguntar.

homerokzam commented 8 years ago

@hardzork Muito obrigado. Irei testar!