Bematech - Non fiscal printer MP 4200 TH

Asked

Viewed 1,327 times

0

I’m having problems with the non fiscal thermal printer in relation to the paper cut made by the guillotine.

Let me give you an example:

Today the printer is printing normal, but does not trigger the automatic guillotine cutting the paper.

I tried to add the DLL, but it is giving error. Follow code of the project.

Class

public class MP2032 
{
            [DllImport("MP2032.dll", CallingConvention = CallingConvention.Cdecl)]         
            public static extern int AcionaGuilhotina(int parcial_full);
}

Main

  private void ImprimeImpressora(string codigoPedido)  
    {
        #region BUSCAR DADOS

        DataTable dtEmpresa = BuscarEmpresa(codigoPedido);
        DataTable dtCliente = BuscarCliente(codigoPedido);
        DataTable dtProduto = BuscarProduto(codigoPedido);
        DataTable dtPedido = BuscarPedido(codigoPedido);
        if (dtProduto.Rows.Count == 0)
        {
            MessageBox.Show("Pedido não possui produtos.");
            return;
        }
        #endregion
       // Imprimir(codigoPedido);

                    ImprimeTexto imp = new ImprimeTexto();
                    imp.SetarFonte("Arial", 5);
                    imp.Inicio("LPT1");

                    imp.ImpLF(dtEmpresa.Rows[0]["d006_nome_empresa"].ToString());
                    imp.ImpLF(dtEmpresa.Rows[0]["d006_endereco"].ToString() + "," + dtEmpresa.Rows[0]["D006_NUM"].ToString() + " - " + dtEmpresa.Rows[0]["d006_bairro"].ToString());
                    imp.ImpLF(dtEmpresa.Rows[0]["d006_cidade"].ToString() + " - " + dtEmpresa.Rows[0]["d006_uf"].ToString() + " (" + dtEmpresa.Rows[0]["D006_DDD"].ToString() + ")" + dtEmpresa.Rows[0]["D006_TELEFONE1"].ToString());
                    imp.ImpLF("==========================================");
                    if (dtPedido.Rows[0]["D007_TIPO_MOVIMENTO"].ToString() == "P")
                        imp.ImpLF("Numero Pedido: " + codigoPedido);
                    else
                        imp.ImpLF("Numero Orcamento: " + codigoPedido);
                    imp.ImpLF("Vendedor.....: " + dtPedido.Rows[0]["D024_NOME"].ToString());
                    imp.ImpLF("Data / Hora..: " + dtPedido.Rows[0]["D007_DATA_HORA_DIGITACAO"].ToString());
                    imp.ImpLF("------------------------------------------");
                    imp.ImpLF(imp.Comprimido + "CLIENTE" + imp.Normal);
                    imp.ImpLF(dtCliente.Rows[0]["D022_CLIENTE_ID"].ToString() + " - " + dtCliente.Rows[0]["D007_NOME"].ToString());
                    imp.ImpLF(dtCliente.Rows[0]["D022_ENDERECO"].ToString() + "," + dtCliente.Rows[0]["D022_NUMERO"].ToString());
                    imp.ImpLF(dtCliente.Rows[0]["D022_BAIRRO"].ToString() + " - " + dtCliente.Rows[0]["D022_CIDADE"].ToString() + " (" + dtCliente.Rows[0]["D022_DDD"].ToString() + ")" + dtCliente.Rows[0]["D022_FONE1"].ToString());
                    imp.ImpLF("------------------------------------------");
                    imp.ImpCol(00, "COD");
                    imp.ImpCol(06, "UN");
                    imp.ImpColLF(8, "Descricao"); 
                    imp.ImpCol(8, "Quantidade"); //8
                    imp.ImpCol(11, "Vlr Unitario"); 
                    imp.ImpColLF(29, "Vlr Total"); //33
                    imp.ImpLF("------------------------------------------");
                    for (int i = 0; i < dtProduto.Rows.Count; i++)
                    {
                        imp.ImpCol(00, dtProduto.Rows[i]["d002_codigo_produto"].ToString());
                        imp.ImpCol(06, dtProduto.Rows[i]["d008_unidade_medida"].ToString());
                        imp.ImpColLF(8, dtProduto.Rows[i]["d002_descricao"].ToString());
                        imp.ImpCol(8, dtProduto.Rows[i]["d008_quantidade2"].ToString());
                        if (dtProduto.Rows[i]["d002_preco_venda"].ToString() == "")
                            imp.ImpCol(16,"0");
                        else
                            imp.ImpCol(16, double.Parse(dtProduto.Rows[i]["d002_preco_venda"].ToString()).ToString("n2"));
                        imp.Pula(1);

                    }
                    imp.Pula(1);
                    //imp.ImpLF("------------------------------------------");
                    //imp.ImpCol(00, "Desc..:" + double.Parse(dtPedido.Rows[0]["D007_DESCONTO_GLOBAL"].ToString()).ToString("n2"));
                    //imp.ImpCol(13, "Frete..:" + double.Parse(dtPedido.Rows[0]["D007_VALOR_FRETE"].ToString()).ToString("n2"));
                    imp.ImpColLF(29, "Total..:" + double.Parse(dtPedido.Rows[0]["D007_TOTAL_PEDIDO"].ToString()).ToString("n2"));
                    imp.ImpLF("------------------------------------------");
                    imp.ImpLF("Forma de Pagamento: " + dtPedido.Rows[0]["D082_DESCRICAO"].ToString());
                    imp.ImpLF("------------------------------------------");
                    imp.ImpColLF(10, "OBRIGADO E VOLTE SEMPRE!");
                    imp.ImpLF("------------------------------------------");
                    imp.ImpColLF(10,"<<DOCUMENTO NAO FISCAL>>");
                    imp.ImpColLF(9,"<<NAO SERVE COMO GARANTIA>>");
                    imp.ImpLF("==========================================");
                    imp.Pula(10);

                    imp.Fim();
                    MP2032.AcionaGuilhotina(1); 
                    MessageBox.Show("Impressão realizada com sucesso.");
                }

Error message on execution:

Consulte o final desta mensagem para obter detalhes sobre como chamar a 
depuração just-in-time (JIT) em vez desta caixa de diálogo.

************** Texto de Exceção **************
System.Configuration.ConfigurationErrorsException: O sistema de configuração falhou ao inicializar ---> System.Configuration.ConfigurationErrorsException: Apenas um elemento <configSections> é permitido por arquivo de configuração e, se presente, deve ser o primeiro filho do elemento <configuration> raiz. (C:\s-commerce\apls\ProjetoAux.exe.Config line 4)
   em System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
   em System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
   em System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
   --- Fim do rastreamento de pilha de exceções internas ---
   em System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
   em System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName)
   em System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.RefreshConfig(String sectionName)
   em System.Configuration.ClientSettingsStore.ReadSettings(String sectionName, Boolean isUserScoped)
   em System.Configuration.LocalFileSettingsProvider.GetPropertyValues(SettingsContext context, SettingsPropertyCollection properties)
   em System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider provider)
   em System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName)
   em System.Configuration.SettingsBase.get_Item(String propertyName)
   em System.Configuration.ApplicationSettingsBase.GetPropertyValue(String propertyName)
   em System.Configuration.ApplicationSettingsBase.get_Item(String propertyName)
   em ProjetoAux.Properties.Settings.get_FbConexao()
   em ProjetoAux.ImpressaoNaoFiscalLPT.BuscarEmpresa(String codigoPedido)
   em ProjetoAux.ImpressaoNaoFiscalLPT.ImprimeImpressora(String codigoPedido)
   em ProjetoAux.ImpressaoNaoFiscalLPT._btnImpressao_Click(Object sender, EventArgs e)
   em System.Windows.Forms.Control.OnClick(EventArgs e)
   em System.Windows.Forms.Button.OnClick(EventArgs e)
   em System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   em System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   em System.Windows.Forms.Control.WndProc(Message& m)
   em System.Windows.Forms.ButtonBase.WndProc(Message& m)
   em System.Windows.Forms.Button.WndProc(Message& m)
   em System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Assemblies Carregados **************
mscorlib
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
ProjetoAux
    Versão do Assembly: 1.0.0.0
    Versão do Win32: 1.0.0.0
    Base de Código: file:///C:/s-commerce/apls/ProjetoAux.exe
----------------------------------------
System.Windows.Forms
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Accessibility
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Data
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Core
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
FirebirdSql.Data.FirebirdClient
    Versão do Assembly: 3.0.2.0
    Versão do Win32: 3.0.2.0
    Base de Código: file:///C:/s-commerce/apls/FirebirdSql.Data.FirebirdClient.DLL
----------------------------------------
System.Transactions
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------
System.Configuration
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Configuration.resources
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration.resources/v4.0_4.0.0.0_pt-BR_b03f5f7f11d50a3a/System.Configuration.resources.dll
----------------------------------------
System.Windows.Forms.resources
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_pt-BR_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.6.79.0 built by: NETFXREL2
    Base de Código: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_pt-BR_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------

************** Depuração JIT **************
Para habilitar a depuração just-in-time (JIT), o arquivo .config deste
aplicativo ou computador (machine.config) deve ter o valor
jitDebugging definido na seção system.windows.forms.
O aplicativo também deve ser compilado com a depuração
habilitada.

Por exemplo:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Quando a depuração JIT está habilitada, qualquer exceção sem tratamento
será enviada ao depurador JIT registrado no computador,
em vez de ser tratada nesta caixa de diálogo.
  • Washington Guilherme, post the code itself, thus hinders the visualization of it.

  • Enter the code, the image makes it difficult for anyone to help you because you can’t edit and test your code. Read here to learn more about how to ask.

  • Post the error that you are getting tbm.

  • I managed to solve this step. By downloading the DLL from the Bematech website and configuring the DLL for the program.

  • @Washingtonguilherme Voce can post an answer to your question, so you will help people who have the same problem you had.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.