Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Convertir LibreOffice Basic a COBOL¿? Xavier PowerCOBOL y COM/OLE 6 25 de agosto de 2021 12:52
[Sintaxis] Convertir DECIMAL a NUMERO para COBOL Dasije WinDev 0 11 de agosto de 2019 23:44
[Duda] Eejempo: convertir string binario en valor Kuk Micro Focus COBOL 0 9 de agosto de 2019 16:24
[Herramienta] Herramienta para pasar datos de RM85- RMKF a texto cfdiaz COBOL - General 6 15 de mayo de 2019 22:32
[Herramienta] Convertir Label a JPG Anthony AcuCobol 2 23 de julio de 2016 00:54

Respuesta
 
Herramientas

  #1
Antiguo 27 de febrero de 2015, 17:56
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60
Vacaciones OCR para convertir la IMG a texto
0 Inactivo Inactivo

Amigos de foro
Necesito incrustar en mi programa un enlace de consuta pero esta tiene un capcha y revisando la red un programa que evita este capcha pero esta echo en visual basic y utiliza
tessnet2.dll para convertir la imagen de pantalla en texto de esa forma lee el capcha y lo pone en el link y ya esta la consulta en linea con los datos.
aca las codigos
Código VB:
  1. private void mt_otro3()
  2. {
  3. try
  4. {
  5. //Creating the Web Request.
  6. HttpWebRequest httpWebRequest = HttpWebRequest.Create("http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias") as HttpWebRequest;
  7. //Specifing the Method
  8. httpWebRequest.Method = "POST";
  9. //Data to Post to the Page, itis key value pairs; separated by "&"
  10. string data = "accion=consPorRuc&nroRuc=20100495989&search1:20100495989&codigo=FGRT&tipdoc=1";
  11. //Setting the content type, it is required, otherwise it will not work.
  12. httpWebRequest.ContentType = "application/x-www-form-urlencoded";
  13. //Getting the request stream and writing the post data
  14. using (StreamWriter sw = new StreamWriter(httpWebRequest.GetRequestStream()))
  15. {
  16. sw.Write(data);
  17. }
  18. //Getting the Respose and reading the result.
  19. HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
  20. using (StreamReader sr = new StreamReader(httpWebResponse.GetResponseStream()))
  21. {
  22. MessageBox.Show(sr.ReadToEnd());
  23. }
  24. }
  25. catch (WebException wex)
  26. {
  27. StringBuilder sb = new StringBuilder();
  28. sb.AppendLine("ERROR:" + wex.Message + ". STATUS: " + wex.Status.ToString());
  29.  
  30. if (wex.Status == WebExceptionStatus.ProtocolError)
  31. {
  32. var response = ((HttpWebResponse)wex.Response);
  33. sb.AppendLine(string.Format("Status Code : {0}", response.StatusCode));
  34. sb.AppendLine(string.Format("Status Description : {0}", response.StatusDescription));
  35.  
  36. try
  37. {
  38. StreamReader reader = new StreamReader(response.GetResponseStream());
  39. sb.AppendLine(reader.ReadToEnd());
  40. }
  41. catch (WebException ex) { throw; }
  42. }
  43.  
  44. throw new Exception(sb.ToString(), wex);
  45. }
  46.  
  47. }

inclusive he descargado un .exe no se en que lenguaje pero funciona de esa manera
yo creo que con un poco de paciencia se puede hacer en powercobol
Roger is offline   Responder Con Cita
  #2
Antiguo 1 de marzo de 2015, 23:20
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Roger,

Vamos ver se entendi:

O código que tens aqui, serve para enviar o pedido ao Site, indicando o que pretendes pesquisar,
e os 4 Alfanuméricos da Capcha (codigo=FGRT).

O código que tens aqui pode passar-se para PowerCobol.
Mas não é com este código que se "apanha" as 4 letras da Capcha.

Tentei utilizar o tessnet2.dll para ir buscar as 4 letras, mas não faz nada. Não dá erro, mas também não executa nada.
Se tiveres essa parte resolvida, (podes por exemplo gravar as 4 letras num ficheiro sequencial)
Posso tentar fazer a parte de ligar ao site e ir buscar os dados.

Saludos,
Rui Pinto
Rapinto is offline   Responder Con Cita
  #3
Antiguo 2 de marzo de 2015, 02:36
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Rui
Mi intencios es crear un programa similar como lo hacen otros programadores con este link de
consulta RUC (registro unico de contribuyentes).
Buscando informacion me indican que para elaborar este programa lo primero que tengo que hacer es ver la forma de llevar la imagen de consulta de este link a un archivo (jpg )
luego con un programa interno OCR se lee este archivo y grabarlo a texto.

Luego paso las variables al link y repito el proceso.

Parece simple, lo hice en forma manual para probar con el boton imprime pantalla la imagen pegue al paint y grabe en jpg y con varios programas que hay en la red en linea OCR converti esta imagen en un archivo de texto y solo era leer este archivo para pasar la variable capcha.

Pueden probar este proceso si funciona ahora como hacerlo internamente en powercobol
para que sea transparente al usuario.

Roger is offline   Responder Con Cita
  #4
Antiguo 2 de marzo de 2015, 17:16
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Roger,

Verifica no Sub-Forum COM+ como se liga ao site para obter resposta por WebService.

Vê se ajuda alguma coisa.

Saludos,
Rui
Rapinto is offline   Responder Con Cita
  #5
Antiguo 3 de marzo de 2015, 01:07
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Roger,

Fiz este pequeno teste com o teu código do 1º Post. (ppj versão 9 em Anexo)
mas a resposta que obtive sempre é que há um erro interno no Site (ver imagem)

Experimenta tu , para ver se não é um problema de code page ou outra coisa.

Saludos,
Rui Pinto

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  Image2.jpg
Vistas: 167
Tamaño:  45,2 KB  
Archivos Adjuntos
Tipo de Archivo: zip Site_sunat.zip (5,5 KB)Descargas: 150
Rapinto is offline   Responder Con Cita
  #6
Antiguo 3 de marzo de 2015, 23:19
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Rui
En los codigos que enviaste
Código COBOL:
  1. 01 WINHTTP               PIC X(128) VALUE "WinHttp.WinHttpRequest.5.1".
  2.  01  REQUEST  PIC X(1024)  VALUE "accion=consPorRuc&nroRuc=20100495989&search1:20100495989&codigo=VBNG&tipdoc=1".

donde dice codigo=VBNG es el capcha de la pagina como no se esta validando en la consulta envia error



Este es programa que hace lo que deseo

ruc

puedes probar con mi nro de RUC 10084682379 , 20510703309, 20557752651 , 20114883230

y funciona sin ingresar el capcha

Espero una luz en este tunel.
Roger is offline   Responder Con Cita
  #7
Antiguo 4 de marzo de 2015, 01:02
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Roger,

Não consigo encontrar nada para "apanhar" a capcha.

Consegues saber junto dos responsáveis do Site as instruções técnicas de Web Service??
Se conseguires manda-me as instruções.
Talvez eles tenham outras opções.

Onde encontras-te as instruções do 1º Post (código VB?) ???

Saludos,
Rui Pinto
Rapinto is offline   Responder Con Cita
  #8
Antiguo 4 de marzo de 2015, 16:56
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60
Rui este es un programa para enviar la captura de panta a un archivo
Código VB:
  1. Option Explicit  
  2.        
  3.      'Api para generar un evento de tecla, en este caso Print Screen  
  4.     ''''''''''''''''''''''''''''''''''''''''''''''''''''''  
  5.    Private Declare Sub keybd_event _  
  6.         Lib "user32" ( _  
  7.             ByVal bVk As Byte, _  
  8.             ByVal bScan As Byte, _  
  9.             ByVal dwFlags As Long, _  
  10.             ByVal dwExtraInfo As Long)  
  11.      
  12.     'recibe la ruta donde crear el BMP  
  13.    ''''''''''''''''''''''''''''''''''''''''''''''''''  
  14.    Private Sub Capturar_Guardar(Path As String)  
  15.          
  16.         ' borra el portapapeles  
  17.        Clipboard.Clear  
  18.          
  19.         ' Manda la pulsación de teclas para capturar la imagen de la pantalla  
  20.        Call keybd_event(44, 2, 0, 0)  
  21.          
  22.         DoEvents  
  23.         ' Si el formato del clipboard es un bitmap  
  24.        If Clipboard.GetFormat(vbCFBitmap) Then  
  25.          
  26.             'Guardamos la imagen en disco  
  27.            SavePicture Clipboard.GetData(vbCFBitmap), Path  
  28.             MsgBox " Captura generada en: " & Path, vbInformation  
  29.             Picture1.Picture = Clipboard.GetData(vbCFBitmap)  
  30.         Else  
  31.             MsgBox " Error ", vbCritical  
  32.         End If  
  33.      
  34.     End Sub  
  35.      
  36.     Private Sub Command1_Click()  
  37.         Call Capturar_Guardar("c:\pantalla.bmp")  
  38.     End Sub  
  39.      
  40.     Private Sub Form_Load()  
  41.         Command1.Caption = " Capturar pantalla "  
  42.     End Sub
con este ya puedo buscar un programa ocr que lo lee y convierta en txt
inclusive se puede localizar la captura de pantalla
pero este es un primer paso
Roger is offline   Responder Con Cita
  #9
Antiguo 6 de marzo de 2015, 12:24
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Roger,

A logica para fazer o que pretendes, é:

1. Abrir uma ligação com o site. (O site cria logo uma capcha para essa ligação).
2. Obter nessa ligação a imagem
3. passar a imagem para um OCR para apanhar as Letras
4. Continuando na mesma ligação enviando o pedido com a capcha.
5. Obter o resultado.

Na ligação que te enviei (exemplo) não obtemos na mesma ligação a imagem.
Parece-me por isso muito difícil de conseguir o que pretendes.
Se usares um processo externo para ir buscar a imagem, é criada outra imagem e não consegues obter o que pretendes.

Vou continuar a pesquisar para ver se descubro alguma maneira de resolver.

Saludos,
Rui Pinto
Rapinto is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:46.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.