public void gerarComandaCozinha(Completa[] produto, string[] mesa, bool reimpresso)
        {
            try
            {
                this.printDocument1.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("comanda", 304, 2000);
                printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage);
                Reporter mr = new Reporter();
                if (File.Exists(endereco))
                    File.Delete(endereco);

                mr.Output = endereco;
                mr.StartJob();
                //tamanho Interno 23

                Comanda cc = new Comanda(venda.cod_venda, true);
                string pont = "|---------------------|";
                int line = 1;
                //

                string cozinha = new Banco().carregaComandaCozinha();
                mr.PrintText(line++, 01, "|----" + cozinha + "----|");//13

                mr.PrintText(line, 01, "| Data : " + DateTime.Now.ToShortDateString()); mr.PrintText(line++, 23, "|");
                mr.PrintText(line, 01, "| Hora : " + DateTime.Now.ToShortTimeString()); mr.PrintText(line++, 23, "|");
                mr.PrintText(line++, 01, pont);
                mr.PrintText(line, 01, "|"); mr.PrintText(line++, 23, "|");
                //produto
                int ii = produto.Length;

                while (ii-- > 0)
                {
                    if (reimpresso)
                    {
                        mr.PrintText(line, 1, "| - REIMPRESSAO "); mr.PrintText(line++, 23, "|");
                    }
                    mr.PrintText(line, 1, "| - " + produto[ii].segmentoImprimir); mr.PrintText(line++, 23, "|");

                    string tam = new BancoInformacao().tamanhoDescricaoByCodigo(produto[ii].produto[0].cod_tamanho);
                    if (tam.Length > 14) tam = tam.Substring(0, 14);
                    mr.PrintText(line, 1, "| Especif. - " + tam); mr.PrintText(line++, 23, "|");
                    for (int j = 0; j < produto[ii].produto.Length; j++)
                    {
                        string prod = "Item - " + new Banco().preencherNomeProdctAll(produto[ii].produto[j].cod_produto);
                        if (prod.Length > 16) prod = prod.Substring(0, 16);
                        mr.PrintText(line, 01, "| " + prod); mr.PrintText(line++, 23, "|");
                        mr.PrintText(line, 1, "| PRECO UNITARIO - " + produto[ii].valorUnitario); mr.PrintText(line++, 23, "|");
                        if (produto[ii].produto[j].porcentagem != 1)
                        {
                            mr.PrintText(line, 01, "|");
                            mr.PrintText(line, 6, " -- " + (produto[ii].produto[j].porcentagem * 100) + " %");
                            mr.PrintText(line++, 23, "|");
                        }
                    }
                    mr.PrintText(line, 1, "|Quantidade - " + produto[ii].quantidade.ToString("0.000")); mr.PrintText(line++, 23, "|");
                    mr.PrintText(line, 1, "|Valor Item - " + (produto[ii].valorUnitario * produto[ii].quantidade).ToString("0.00")); mr.PrintText(line++, 23, "|");
                    //   mr.PrintText(line, 01, "|"); mr.PrintText(line++, 17, "|");
                    string noticia = "";
                    int u = 0;
                    string nota = produto[ii].getNoticia(); string obs = "obs. "; int limite = 16;
                    while (u < nota.Length)
                    {
                        if (noticia.Length % limite == 0 && u >= limite)
                        {
                            mr.PrintText(line, 01, obs + noticia); mr.PrintText(line++, 23, "|"); noticia = ""; obs = ""; limite = 22;
                        }
                        noticia += produto[ii].getNoticia().Substring(u++, 1);
                    }
                    mr.PrintText(line, 01, "|" + noticia); mr.PrintText(line++, 23, "|"); noticia = "";
                    mr.PrintText(line++, 01, "| --  -   --   -  --  |");
                }
                //produto
                mr.PrintText(line++, 01, pont);
                if (produto[0].garconImprimir.Length > 12) produto[0].garconImprimir = produto[0].garconImprimir.Substring(0, 12);
                string garc = "| GARCOM -" + produto[0].garconImprimir;
                mr.PrintText(line, 01, garc); mr.PrintText(line++, 23, "|");

                mr.PrintText(line, 01, "| " + mesa[mesa.Length - 1]); mr.PrintText(line++, 23, "|");
                mr.PrintText(line++, 01, pont);

                mr.PrintJob();
                mr.EndJob();
                lerArquivo(new Banco().getCodImpressoraByTipo(new BancoConsulta().cod_tipoPeloNome(new Banco().segmentoDoProduto(produto[0].produto[0].cod_produto))));
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message+ "info add:  "+ ee.Data);
            }
        }
        public void gerarLeituraX(LeituraX leitu)
        {
            int qtdLinha = 20 + leitu.itens.Count;
            linePorFolha = qtdLinha;
            qtdLinha *= 10;
            qtdLinha += 70;
            this.printDocument1.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("comanda", 304, qtdLinha);
            printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage);
            try
            {
                Reporter mr = new Reporter();
                //quem vai colocar em italico e talz
                EpsonCodes mer = new EpsonCodes();
                if (File.Exists(endereco))
                    File.Delete(endereco);
                mr.Output = endereco;
                mr.StartJob();
                //--------------------------------------------------------------------------------

                string pont = "|-----------------------------------|";

                int line = 1;
                mr.PrintText(line++, 01, "|------------- LEITURA X -----------|");
                mr.PrintText(line++, 02, leitu.empresa);
                //o \n serve como paper feed na impressora...

                mr.PrintText(line++, 01, pont);
                mr.PrintText(line, 01, "|Data:" + leitu.dataLeitura); mr.PrintText(line++, 37, "|");
                mr.PrintText(line, 01, "|Hora:" + DateTime.Now.ToShortTimeString()); mr.PrintText(line++, 37, "|");

                mr.PrintText(line++, 01, pont);
                //data e hora

                mr.PrintText(line++, 01, "|HORA  -VENDA- PAGAM -VALOR  -SITUAC|");//id casa 1  - cod casa 7 -  desc - casa 12 - categ casa 32
                mr.PrintText(line++, 01, pont);
                //itens
                {
                    for (int i = 0; i < leitu.itens.Count; i++)
                    {
                        mr.PrintText(line, 01, "|");
                        mr.PrintText(line, 02, leitu.itens[i].hora);
                        mr.PrintText(line, 08, "-");
                        mr.PrintText(line, 09, ""+leitu.itens[i].cod_venda);
                        mr.PrintText(line, 15, "-");
                        mr.PrintText(line, 16, leitu.itens[i].formaPagamento.Substring(0,5));

                        mr.PrintText(line, 22, "-");
                        mr.PrintText(line, 23, new Tratamento().retornaValorEscrito( leitu.itens[i].valor));
                        mr.PrintText(line, 30,"-"+ leitu.itens[i].situac.Substring(0,6));
                        mr.PrintText(line++, 37, "|");
                    }

                }
                //itens

                mr.PrintText(line++, 01, pont);
                mr.PrintText(line, 01, "|"); mr.PrintText(line, 15, ("TOTAL R$ " + new Tratamento().retornaValorEscrito(leitu.valorTotal))); mr.PrintText(line++, 37, "|");
                if (leitu.extorno > 0)
                { mr.PrintText(line, 01, "|"); mr.PrintText(line, 15, ("EXTORNO RS " + new Tratamento().retornaValorEscrito(leitu.extorno))); mr.PrintText(line++, 37, "|"); }
                if (leitu.totDinheiro > 0)
                { mr.PrintText(line, 01, "|"); mr.PrintText(line, 15, ("DINHEIRO RS " + new Tratamento().retornaValorEscrito(leitu.totDinheiro))); mr.PrintText(line++, 37, "|"); }
                if (leitu.totCredito > 0)
                { mr.PrintText(line, 01, "|"); mr.PrintText(line, 15, ("CREDITO RS " + new Tratamento().retornaValorEscrito(leitu.totCredito))); mr.PrintText(line++, 37, "|"); }
                if (leitu.totDebito > 0)
                { mr.PrintText(line, 01, "|"); mr.PrintText(line, 15, ("DEBITO RS " + new Tratamento().retornaValorEscrito(leitu.totDebito))); mr.PrintText(line++, 37, "|"); }
                if (leitu.totCheque > 0)
                { mr.PrintText(line, 01, "|"); mr.PrintText(line, 15, ("CHEQUE RS " + new Tratamento().retornaValorEscrito(leitu.totCheque))); mr.PrintText(line++, 37, "|"); }

                mr.PrintText(line++, 01, pont);
                //--------------------------------
                mr.PrintText(line, 01, "|"); mr.PrintText(line++, 37, "|");
                mr.PrintText(line, 01, "|Data Impresao :" + DateTime.Now.ToShortDateString()); mr.PrintText(line++, 37, "|");
                mr.PrintText(line++, 01, "|___________________________________|");

                mr.PrintJob();
                mr.EndJob();
                lerArquivo(0);

            }
            catch { }
        }
        public void novoMetodo(Completa[] produto, string[] mesa)
        {
            try
            {
                Reporter mr = new Reporter();
                EpsonCodes mer = new EpsonCodes();

                if (File.Exists(endereco))
                    File.Delete(endereco);

                mr.Output = endereco;
                mr.StartJob();
                Comanda cc = new Comanda(venda.cod_venda, true);
                string pont = "|---------------------------|";
                int line = 1;
                int limite = 29;
                mr.PrintText(line++, 01, "|----------COZINHA----------|");

                mr.PrintText(line, 01, "|Data:" + DateTime.Now.ToShortDateString()); mr.PrintText(line++, limite, "|");
                mr.PrintText(line, 01, "|Hora:" + DateTime.Now.ToShortTimeString()); mr.PrintText(line++, limite, "|");
                mr.PrintText(line++, 01, pont);
                mr.PrintText(line, 01, "|"); mr.PrintText(line++, limite, "|");
                //produto
                int ii = produto.Length;

                while (ii-- > 0)
                {
                    mr.PrintText(line, 1, "| - " + produto[ii].segmentoImprimir); mr.PrintText(line++, limite, "|");
                    string tam = new BancoInformacao().tamanhoDescricaoByCodigo(produto[ii].produto[0].cod_tamanho);
                    if (tam.Length > 18) tam = tam.Substring(0, 18);
                    mr.PrintText(line, 1, "|Tamanho- " + tam); mr.PrintText(line++, limite, "|");
                    for (int j = 0; j < produto[ii].produto.Length; j++)
                    {
                        string prod = new Banco().preencherNomeProdctAll(produto[ii].produto[j].cod_produto);
                        if (prod.Length > 27) prod = prod.Substring(0, 27);
                        mr.PrintText(line, 01, "|" + prod); mr.PrintText(line++, limite, "|");
                        mr.PrintText(line, 01, "|"); mr.PrintText(line, 6, "--" + (produto[ii].produto[j].porcentagem * 100) + " %"); mr.PrintText(line++, limite, "|");
                    }

                    mr.PrintText(line, 1, "|Quantidade - " + produto[ii].quantidade); mr.PrintText(line++, limite, "|");
                    string noticia = "";
                    int u = 0;
                    string nota = produto[ii].getNoticia(); string obs = "obs. "; int limit = limite -7;
                    while (u < nota.Length)
                    {
                        if (noticia.Length % limit == 0 && u >= limit)
                        {
                            mr.PrintText(line, 01, obs + noticia); mr.PrintText(line++, limite, "|"); noticia = ""; obs = ""; limit = limite-1;
                        }
                        noticia += produto[ii].getNoticia().Substring(u++, 1);
                    }
                    mr.PrintText(line, 01, "|" + noticia); mr.PrintText(line++, limite, "|"); noticia = "";
                    mr.PrintText(line++, 01, "| -- - -- - --  |");
                }
                //produto
                mr.PrintText(line++, 01, pont);
                if (produto[0].garconImprimir.Length > 15) produto[0].garconImprimir = produto[0].garconImprimir.Substring(0, 15);
                string garc = "|GARCON -" + produto[0].garconImprimir;
                mr.PrintText(line, 01, garc); mr.PrintText(line++, limite, "|");

                mr.PrintText(line, 01, "| " + mesa[mesa.Length - 1]); mr.PrintText(line++, limite, "|");
                mr.PrintText(line++, 01, pont);

                mr.PrintJob();
                mr.EndJob();

                ImprimirBematech(endereco, new Banco().getCodImpressoraByTipo(new BancoConsulta().cod_tipoPeloNome(new Banco().segmentoDoProduto(produto[0].produto[0].cod_produto))));

            }
            catch { }
        }
        public void gerarComandaNaoFiscal(string formaPagamento,double dinheiro, double troco)
        {
            int qtdLinha = 30 + (venda.Completos.Length * 2);
            qtdLinha *= 10;
            qtdLinha += 70;
            this.printDocument1.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("comanda", 304, qtdLinha);
                        printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage);
            try
            {
                Reporter mr = new Reporter();
                //quem vai colocar em italico e talz
                EpsonCodes mer = new EpsonCodes();
                if (File.Exists(endereco))
                    File.Delete(endereco);
                mr.Output = endereco;
                mr.StartJob();
                //--------------------------------------------------------------------------------
                Comanda cc = new Comanda(venda.cod_venda);
                string pont = "|-----------------------------------|";
                int line = 1; int i = 0; int ii = 0;
                mr.PrintText(line++, 02, cc.empresa);
                //o \n serve como paper feed na impressora...
                mr.PrintText(line++, 01, cc.telefone);
                mr.PrintText(line++, 01, pont);
                mr.PrintText(line++, 01, cc.fixCenter("Cupom Nao Fiscal", 1));
                mr.PrintText(line++, 01, pont);
                mr.PrintText(line++, 01, pont);
                mr.PrintText(line, 01, "ID da VENDA : " + venda.cod_venda); mr.PrintText(line++, 37, "|");
                mr.PrintText(line++, 01, pont);
                //data e hora
                mr.PrintText(line++, 01,  cc.fixCenter("Data : "+DateTime.Now.ToShortDateString()+" Hora : "+DateTime.Now.ToShortTimeString(),1));
                mr.PrintText(line++, 01, pont);

                mr.PrintText(line++, 01, "| ID |COD |     DESCRICAO    |CATEG |");//id casa 1  - cod casa 7 -  desc - casa 12 - categ casa 32
                mr.PrintText(line++, 01, "|    QTD Un X VL Un   =  SUB-TOTAL  |");// qtd - casa 6  - X na casa 7 - val Uni - casa 8 - sub total casa 18
                mr.PrintText(line++, 01, pont);

                i = venda.Completos.Length;
                while (ii < i)
                {
                    mr.PrintText(line, 01, "|"); mr.PrintText(line, 02, "" + new Tratamento().makeId(ii + 1)); mr.PrintText(line, 06, "-");
                    mr.PrintText(line, 07, "" + venda.Completos[ii].produto[0].cod_produto); mr.PrintText(line, 11, "-");
                    string prod = new Banco().preencherNomeProdctAll(venda.Completos[ii].produto[0].cod_produto);
                    if (venda.Completos[ii].produto.Length > 1) prod = "mist " + prod;
                    if (prod.Length > 16) prod = prod.Substring(0, 16);
                    mr.PrintText(line, 12, prod);
                    mr.PrintText(line, 28, "-");
                    string tam = new BancoInformacao().tamanhoDescricaoByCodigo(venda.Completos[ii].produto[0].cod_tamanho);
                    if (tam.Length > 7) tam = tam.Substring(0, 7); mr.PrintText(line, 29, tam);
                    mr.PrintText(line++, 37, "|");

                    mr.PrintText(line, 01, "|"); mr.PrintText(line, 08, "" + venda.Completos[ii].quantidade); mr.PrintText(line, 11, "X");

                    mr.PrintText(line, 15, new Tratamento().retornaValorEscritoCo(venda.Completos[ii].valorUnitario));
                    mr.PrintText(line, 23, "=");

                    if ((venda.Completos[ii].valorUnitario * venda.Completos[ii].quantidade) >= 100)
                        mr.PrintText(line, 26, new Tratamento().retornaValorEscritoCo((venda.Completos[ii].valorUnitario * venda.Completos[ii++].quantidade)));
                    else
                        mr.PrintText(line, 25, new Tratamento().retornaValorEscritoCo((venda.Completos[ii].valorUnitario * venda.Completos[ii++].quantidade)));
                    mr.PrintText(line++, 37, "|");
                }
                mr.PrintText(line++, 01, pont);
                if (venda.valorComissao > 0)
                {
                    mr.PrintText(line++, 01, cc.fixRightPont("COUVERT : " + new Tratamento().retornaValorEscrito(venda.valorComissao), 1));

                }

                mr.PrintText(line++, 01, pont);
                                mr.PrintText(line++, 01,cc.fixCenter( "FORMA DE PAGAMENTO : "+formaPagamento, 1));

                mr.PrintText(line, 01, "|"); mr.PrintText(line, 18, ("TOTAL RS : " + new Tratamento().retornaValorEscrito(venda.valorSomado)));
                mr.PrintText(line++, 37, "|");
                mr.PrintText(line, 01, "|"); mr.PrintText(line, 18, ("DINHEIRO : " + new Tratamento().retornaValorEscrito(dinheiro)));
                mr.PrintText(line++, 37, "|");
                mr.PrintText(line, 01, "|"); mr.PrintText(line, 18, ("TROCO    : " + new Tratamento().retornaValorEscrito(troco)));
                mr.PrintText(line++, 37, "|");
                mr.PrintText(line++, 01, pont);
                //--------------------------------

                mr.PrintText(line, 01, "|"); mr.PrintText(line++, 37, "|");
                mr.PrintText(line++, 01, cc.mensagem);
                mr.PrintText(line, 01, "|"); mr.PrintText(line++, 37, "|");
                mr.PrintText(line++, 01, pont);
                mr.PrintText(line++, 01, cc.cidade);
                mr.PrintText(line++, 01, pont);
                mr.PrintText(line++, 01, cc.progNome);
                mr.PrintText(line++, 01, cc.progTelefone);
                mr.PrintText(line++, 01, "|___________________________________|");

                mr.PrintJob();
                mr.EndJob();
                lerArquivo(1);

            }
            catch { }
        }