|
Imprimir desde Android por bluetooth |
Iniciado por JAVIER / Javier, abr., 15 2014 5:17 AM - 26 respostas |
| |
| | | |
|
| |
Membro registado 12 mensagems |
|
Publicado em abril, 15 2014 - 5:17 AM |
Alguien ha impreso desde Android por bluetooth? como lo han hecho? |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
Publicado em abril, 16 2014 - 6:12 AM |
con la impresora portátil me vino un cd con un programa demo y el sdk, el programa en java es el siguiente, como lo puedo integrar en una aplicación windev mobile?
/* * Copyright (C) 2011 Beijing REGO tech ltd. * mobile printer library * auther * wpeng@rgprt.com * * website * www.rgprt.com * * date * 2011/3/16 */
package rego.PrintTest;
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import android.view.View.OnClickListener; import rego.PrintLib.*; import rego.PrintLib.PortOperation.btOperation; public class PrintTestAcitvity extends Activity { btOperation bo = new btOperation(); //// ¶ÔÆ뷽ʽ /** * printing text align left */ public static final int AT_LEFT = 0; /** * printing text align center */ public static final int AT_CENTER = 1; /** * printing text align right */ public static final int AT_RIGHT = 2; private Button btConnect = null; private Button btCancel = null; private Button asciiSend = null; private Button graphicSend = null; private regoPrinter mobileprint = null; private boolean bConnect = true; private TextView textTitle = null; private EditText portName; private int iObjectCode; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btConnect = (Button)findViewById(R.id.connect); btCancel = (Button)findViewById(R.id.cancel); asciiSend = (Button)findViewById(R.id.asc_send); graphicSend = (Button)findViewById(R.id.gra_send); textTitle = (TextView)findViewById(R.id.title); portName = (EditText)findViewById(R.id.portName); iObjectCode = 0; mobileprint = new regoPrinter(); asciiSend.setEnabled(false); graphicSend.setEnabled(false); btConnect.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String strName = portName.getText().toString(); if(strName.length() == 0) { Toast.makeText(PrintTestAcitvity.this, "Error:port name empty", Toast.LENGTH_SHORT).show(); return; } if(bConnect) { try { mobileprint.CON_LnitPrintLib(); iObjectCode = mobileprint.CON_ConnectDevice(strName); } catch(printLibException e) { Toast.makeText(PrintTestAcitvity.this, e.GetMessage(), Toast.LENGTH_LONG).show(); } finally { if(iObjectCode != 0) { // connect succeed textTitle.setText(strName + PrintTestAcitvity.this.getString(R.string.consucceed)); btConnect.setText(R.string.disconnect); bConnect = false; asciiSend.setEnabled(true); graphicSend.setEnabled(true); } } } else { textTitle.setText(strName + PrintTestAcitvity.this.getString(R.string.disconnect)); asciiSend.setEnabled(false); graphicSend.setEnabled(false); try { mobileprint.CON_CloseConnect(iObjectCode); } catch (printLibException e) { // TODO Auto-generated catch block e.printStackTrace(); } bConnect = true; btConnect.setText(R.string.connect); } } }); btCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(!bConnect) { try { mobileprint.CON_CloseConnect(iObjectCode); } catch (printLibException e) { // TODO Auto-generated catch block e.printStackTrace(); } } mobileprint.CON_FreePrintLib(); finish(); return; } }); asciiSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub try { // mobileprint.CON_PageStart(iObjectCode, 576, 0) && if(mobileprint.ASCII_QueryPrinterStatus(iObjectCode)) { //Çå³ý´òÓ¡»ú»º³å mobileprint.ASCII_Reset(iObjectCode); //´òÓ¡LogoͼƬ£¬ÏȽ«Í¼Æ¬ÏÂÔØÖÁ´òÓ¡»úÖÐÔÙÖ´Ðд˺¯Êý //mobileprint.PrintFlashPic(1, 0); //´òÓ¡title mobileprint.ASCII_AlignType(iObjectCode, AT_CENTER); mobileprint.ASCII_FormatString(iObjectCode,false,false,true,false,false); mobileprint.ASCII_SendString(iObjectCode, "±£ÏÕÀíÅâµ¥", "gb2312"); mobileprint.ASCII_FeedLines(iObjectCode, 20); mobileprint.ASCII_Reset(iObjectCode); //´òÓ¡ÄÚÈÝ mobileprint.ASCII_SetLineSpace(iObjectCode, 20);//ÉèÖÃÐмä¾à mobileprint.ASCII_FormatString(iObjectCode,false,false,true,false,false); mobileprint.ASCII_SendString(iObjectCode, "±¨°¸ºÅ£º ", "gb2312"); mobileprint.ASCII_FormatString(iObjectCode,false,false,false,false,false); mobileprint.ASCII_SendString(iObjectCode, "90202011335665433532", "gb2312"); mobileprint.ASCII_PrintCRLF(iObjectCode, 1); mobileprint.ASCII_FormatString(iObjectCode,false,false,true,false,false); mobileprint.ASCII_SendString(iObjectCode, "³µÅƺŠ: ", "gb2312"); mobileprint.ASCII_FormatString(iObjectCode,false,false,false,false,false); mobileprint.ASCII_SendString(iObjectCode, "¾©A12133", "gb2312"); mobileprint.ASCII_PrintCRLF(iObjectCode, 1); mobileprint.ASCII_FormatString(iObjectCode,false,false,true,false,false); mobileprint.ASCII_SendString(iObjectCode, "±£ÏÕÈËÐÕÃû : ", "gb2312"); mobileprint.ASCII_FormatString(iObjectCode,false,false,false,false,false); mobileprint.ASCII_SendString(iObjectCode, "YN-KF56", "gb2312"); mobileprint.ASCII_PrintCRLF(iObjectCode, 1); mobileprint.ASCII_FormatString(iObjectCode,false,false,true,false,false); mobileprint.ASCII_SendString(iObjectCode, "±¾È˳ÐŵÒò ______________________________________________ ", "gb2312"); mobileprint.ASCII_PrintCRLF(iObjectCode, 2); mobileprint.ASCII_SendString(iObjectCode, "(ÊÂÓÉ)·ÅÆú´ËʹʵÄÒ»ÇÐÅ⳥Ȩ", "gb2312"); mobileprint.ASCII_AlignType(iObjectCode, AT_RIGHT); mobileprint.ASCII_SendString(iObjectCode, "Äê Ô ÈÕ", "gb2312"); mobileprint.ASCII_PrintCRLF(iObjectCode, 2); mobileprint.ASCII_Reset(iObjectCode); mobileprint.CON_PageEnd(iObjectCode); } else { Toast.makeText(PrintTestAcitvity.this, "Printer status error", Toast.LENGTH_LONG).show(); } } catch (printLibException e) { // TODO Auto-generated catch block Toast.makeText(PrintTestAcitvity.this, e.GetMessage(), Toast.LENGTH_LONG).show(); } } }); graphicSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub try { if(mobileprint.CON_PageStart(iObjectCode, 576, 450) && mobileprint.ASCII_QueryPrinterStatus(iObjectCode)) { //Çå³ý´òÓ¡»ú»º³å mobileprint.ASCII_Reset(iObjectCode); mobileprint.DRAW_Line(iObjectCode,0, 1, 575, 1,3); mobileprint.DRAW_Line(iObjectCode,0, 1, 0, 450,3); mobileprint.DRAW_Line(iObjectCode,575, 1, 575, 450,3); mobileprint.DRAW_Line(iObjectCode,0, 450, 575, 450,3); mobileprint.DRAW_Line(iObjectCode,465, 1, 465, 450,1); mobileprint.DRAW_Rectangle(iObjectCode, 0, 0, 80, 50, 1, true); mobileprint.DRAW_Text(iObjectCode, 30, 80, "ÉϺ£¿ì½Ý¿ìÔËÓÐÏÞ¹«Ë¾ ", 40); mobileprint.DRAW_Text(iObjectCode,90, 185, "ÉϺ£ -> ±±¾©", 35); mobileprint.DRAW_Text(iObjectCode,80, 245, "(ÉϺ£±±Ç๫·°ì)", 20); mobileprint.DRAW_Text(iObjectCode,310, 245, "(»ðʮ·վ)", 20); mobileprint.DRAW_Text(iObjectCode,20, 305, "20112-02100100-0101-2112-10", 30); mobileprint.DRAW_Code128(iObjectCode, 60, 350, 1, 60, "754432112-2"); mobileprint.DRAW_CreateRotalBlock(iObjectCode,476, 0, 450,100, 2);//(0.0) Ϊ×óÉϽǵľØÐÎ mobileprint.DRAW_Code128(iObjectCode, 40, 5, 1, 60, "754432112-2");
mobileprint.CON_PageEnd(iObjectCode); } else { Toast.makeText(PrintTestAcitvity.this, "Printer status error", Toast.LENGTH_LONG).show(); } } catch (printLibException e) { // TODO Auto-generated catch block Toast.makeText(PrintTestAcitvity.this, e.GetMessage(), Toast.LENGTH_LONG).show(); } } }); } } |
| |
| |
| | | |
|
| | |
| |
Publicado em maio, 27 2014 - 5:46 AM |
Nadie lo ha hecho??? eso es lo que no me ha gustado de Windev, no hay documentación, soporte ni donde consultar las cosas que en otras herramientas las encuentras. |
| |
| |
| | | |
|
| | |
| |
Publicado em outubro, 02 2014 - 6:44 PM |
Tengo el mismo problema, lo conseguiste? Opino igual que tu, es herramienta muy potente pero nada de nada de documentación y cuando preguntas algo la gente no ayuda, yo vengo de Velneo y si algo bueno tiene es su foro. Espero que esto cambie y tengamos una buena comunidad. Saludos. |
| |
| |
| | | |
|
| | |
| |
Publicado em outubro, 02 2014 - 10:24 PM |
Te cuento que por fin lo logré.
Creas un procedimiento en java como el que te pongo a continuación.
en esta linea: impresora = callWLProcedure_String("imp1"); llama a un procedimiento en windev y lo que hace es seleccionar poner el nombre de la impresora ( si quieres lo puedes poner directo )
en esta linea: String msg = callWLProcedure_String("imp_texto"); llama a un procedimiento donde armas es texto a imprimir y le das un Result texto_a_imprimir (tambien podrias ponerlo directo) y listo, cualquier cosa me preguntas.
import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.TextView; import android.widget.EditText; import android.widget.Button; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Set; import java.util.UUID;
public static void imprime_factura() { // android built in classes for bluetooth operations BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; BluetoothDevice mmDevice; OutputStream mmOutputStream; InputStream mmInputStream; Thread workerThread; byte[] readBuffer; int readBufferPosition; int counter; String impresora; impresora = ""; try { mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); Set<BluetoothDevice> pairedDevices = mBluetoothAdapter .getBondedDevices(); if (pairedDevices.size() > 0) { impresora = callWLProcedure_String("imp1"); for (BluetoothDevice device : pairedDevices) { if (device.getName().equals(impresora)) { mmDevice = device ; UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid); mmSocket.connect(); mmOutputStream = mmSocket.getOutputStream(); mmInputStream = mmSocket.getInputStream(); String msg = callWLProcedure_String("imp_texto"); msg += "\n"; mmOutputStream.write(msg.getBytes()); mmOutputStream.close(); mmInputStream.close(); mmSocket.close(); break; } } } } catch (NullPointerException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } |
| |
| |
| | | |
|
| | |
| |
Membro registado 51 mensagems Popularité : +2 (2 votes) |
|
Publicado em outubro, 03 2014 - 9:39 AM |
Hola Javier,
Sí, tienes razón. Lamentablemente no hay una comunidad grande de Windev - España.
Nosotros somos ditribuidores de Pcsoft para España. Antes teníamos una comunidad más amplia, teníamos un foro en nuestra web, pero debido a ciertas circunstancias graves se dejo y crackearon el foro. La persona que lo creo estuvo 1 año prácticamente sin movimiento.
Estamos intentado recuperar esa comunidad poco a poco. Cuando actualicemos nuestra web crearemos también un foro. Hace un par de días creamos un grupo en Facebook de Windev, todavía no hay movimiento. Poco a poco esperamos que sea una gran grupo donde la gente pueda opinar, consultar..etc: https://www.facebook.com/groups/463317133806320/
En las siguientes direcciones de Youtube puedes consultar vídeo tutoriales en español, aunque de momento son solo de Windev:
También indicarte que disponemos de los manuales de las tres herramientas traducidos al español, por si te pudiera interesar.
Espero que aunque poca, esta información te sirva de ayuda.
-- Salvador Soler. María Soler. Distribuidores de PcSoft en España. www.windeveloper.es s.soler@serival.es |
| |
| |
| | | |
|
| | |
| |
Publicado em outubro, 03 2014 - 11:29 AM |
Gracias Javier por tu comentario, Menuda la que hay que montar, lo pruebo y te cuento.
Hola Salvador, tomo nota y espero con ansia ese foro que anuncias, seria muy bueno para todos. Saludos a todos los windeveros |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 05 2015 - 2:46 PM |
Bueb dia Veo el ejemplo que tiene para la impresion desde windev mobile para android Estoy tratando de hacer que mi aplicacion imprima por bluetoot pero no lo he Logrado tengo el sdk que viene en mi impresora y funciona bien desde eclipse
Quien puede orientarme como hacerlo desde windev |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 11 2015 - 11:20 AM |
Buen día, me puedes indicar como llamar el procedimiento.
Gracias |
| |
| |
| | | |
|
| | |
| |
Publicado em setembro, 24 2015 - 7:28 PM |
Buenas tardes, Hernan te contesto tarde y supongo que lo tendrás solucionado, si no es así te explico, el procedimiento tienes que pasarlo a Java y eso lo haces pulsando en la cabecera que pone WL y cambiará a Java. Introduces el código Java que nos proporciono nuestro compañero Javier que funciona perfectamente (GRACIAS X EL APORTE!! te debo una ) y sigue sus instrucciones. No tiene complicación si tienes alguna duda pregunta Un saludo |
| |
| |
| | | |
|
| | |
| |
Publicado em março, 29 2016 - 3:45 PM |
Por sky hay un foro en latinoamerica y es muy movido. lo creo Thierry Planchais de TAD STUDIO http://www.tap-studio.com/
Cordial saludo,
Orlando Guzman |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 04 2016 - 8:48 PM |
Buen día amigo, un súper aporte. Solo que aun me da error en las librerías. Cuales fueron las que añadiste? Estamos iniciando con WinDev Mobile y lo único que eh podido lograr es a través de sokets escribir directamente en la impresora. El inconveniente es que no puedes añadir imágenes.
Te agradecería mucho tu ayuda
Saludos |
| |
| |
| | | |
|
| | |
| |
Publicado em novembro, 18 2016 - 7:02 PM |
sabe alguno como imprimir NEGRITA en el papel? actualmente logro imprimir gracias al codigo puesto en el foro pero como logramos realzar algunos textos? como puedo hacer que imprima algunas letras mas grandes que otras? |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 20 2017 - 9:54 AM |
Acabo de incorporarme a la plataforma Windev y tengo este mismo problema con esta misma impresora, soy novísimo en esto (años en otras plataformas)
¿ Como puedo incluir las librerías en la ruta? ¿Alguien tendría un código sencillo?
He conseguido conectar con la impresora mediante bluetooth, abrir socket, incluso enviar información, pero ni se entera, por lo que supongo que necesitaré usar su propio SDK. Saludos. |
| |
| |
| | | |
|
| | |
| |
Publicado em outubro, 19 2018 - 12:06 AM |
Tu codigo me funciona, pero solo en Android 4.1.2 en Motorola TC55, pero cuando quiero correr el apk donde esta la rutina en un Samsumg J2 prime por ejemplo, solo emite la conectvidad del bluethoo pero no sale la impresión (impresoras zebras iMZ320 y ZQ320). Alguien sabe que debo de modificar para que imprima en un smartphone? |
| |
| |
| | | |
|
| | |
| |
Membro registado 795 mensagems Popularité : +40 (42 votes) |
|
Publicado em outubro, 19 2018 - 7:48 PM |
| |
| |
| | | |
|
| | |
| |
Publicado em outubro, 31 2018 - 3:34 PM |
Hola Ruben, gracias por ahi no sale mucho... tengo dias batallando inclusive me pase a la version 23 de Windev y sigue sin funcionar. No entiendo que puede estar pasando. |
| |
| |
| | | |
|
| | |
| |
Publicado em outubro, 31 2018 - 4:28 PM |
IF SocketConnectBluetooth(sNom,"00001101-0000-1000-8000-00805F9B34FB",host.impresoraMac)=False THEN Error("No se ha podido conectar a impresora bluetooth "+sNombreImpresora+" "+impresoraMac,ErrorInfo(errFullDetails)) RETURN END
SocketWrite(sNombreImpresora,gsImprimir_texto)
SocketClose(sNombreImpresora) |
| |
| |
| | | |
|
| | |
| |
Publicado em outubro, 31 2018 - 4:29 PM |
IF SocketConnectBluetooth(sNom,"00001101-0000-1000-8000-00805F9B34FB",host.impresoraMac)=False THEN Error("No se ha podido conectar a impresora bluetooth "+sNombreImpresora+" "+impresoraMac,ErrorInfo(errFullDetails)) RETURN END
SocketWrite(sNombreImpresora,gsImprimir_texto)
SocketClose(sNombreImpresora) |
| |
| |
| | | |
|
| | |
| |
Publicado em novembro, 03 2018 - 12:00 AM |
Hola Javier, gracias por responder! Disculpa que sea tan abusiva, pero podrias indicarme en qué parte del código que posteaste hace tiempos debo de incluir ese if?
Saludos! |
| |
| |
| | | |
|
| | |
| |
Publicado em novembro, 04 2018 - 5:55 PM |
le puedes poner en un procedimiento y llamarlo una vez seleccionada la impresora y leido los datos de la misma pasas esos datos por parámetros al procedimiento.
sNombreImpresora es una variable con el nombre de la impresora bluetooth, impresoraMac es la dirección mac de la impresora, gsImprimir_texto es una variable con el texto a imprimir.
IF SocketConnectBluetooth(sNombreImpresora,"00001101-0000-1000-8000-00805F9B34FB",host.impresoraMac)=False THEN Error("No se ha podido conectar a impresora bluetooth "+sNombreImpresora+" "+impresoraMac,ErrorInfo(errFullDetails)) RETURN END
SocketWrite(sNombreImpresora,gsImprimir_texto)
SocketClose(sNombreImpresora) |
| |
| |
| | | |
|
| | |
| |
Publicado em novembro, 04 2018 - 5:59 PM |
el último código que postee del If es todo el código, no tiene relación con el anterior con Java, ya con ese código puedes imprimir directo al socket bluetooth. |
| |
| |
| | | |
|
| | |
| |
Publicado em novembro, 05 2018 - 9:57 PM |
Hola Javier, muchas gracias! Te comento que no tengo la version WM 23, si no la 20. Ahi creo que no esta disponible verdad?
Saludos, |
| |
| |
| | | |
|
| | |
| |
Publicado em novembro, 06 2018 - 5:20 PM |
Hola, si está, yo lo tengo desde la version 18 |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 09 2020 - 2:41 PM |
Sé que este post es muy antiguo y quizás la gente ya no este tan puesta en las impresoras portátiles.
Me comprado la impresora portátil Canon Zoemini Pv-123 en Amazon a través de una oferta que encontré en esta página https://objetosportatiles.com y por desgracia no he sido capaz de configurar la impresión por bluetooth.
He leído las instrucciones y me ha sido imposible.
¿Alguien la ha utilizado y sabe cómo hacerlo?
Muchas Gracias |
| |
| |
| | | |
|
| | |
| |
Publicado em maio, 30 2022 - 8:11 PM |
Es lo mas facil... si aun tienes dudas de como hacerlo preguntame y te paso un ejemplo solo se toma como 3 lineas de codigo |
| |
| |
| | | |
|
| | |
| |
Publicado em março, 05 2023 - 7:47 PM |
francisco wrote: > Es lo mas facil... si aun tienes dudas de como hacerlo preguntame y te paso un ejemplo solo se toma como 3 lineas de codigo
Tengo el detalle en windev mobile 27.
Ya me deja imprimir en impresora bluetooth texto. Pero quiero imprimir una imagen. Y sólo logro enviar muchos garabatos. Tienen una idea de cómo mandar a imprimir una imagen . |
| |
| |
| | | |
|
| | | | |
| | |
|