Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
  COBOL Foro > IDE-s y compiladores COBOL > Fujitsu COBOL > PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
Comunicados
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Texto inicial en un Textbox dmosca PowerCOBOL (ActiveX, v4 - v11) 4 25 de julio de 2017 16:45
[Sintaxis] Pasar CSV a texto plano theezraak RM/COBOL 8 24 de octubre de 2016 10:01
[Sintaxis] Pasar datos a texto plano Matias PowerCOBOL (ActiveX, v4 - v11) 6 12 de agosto de 2016 18:47
[Herramienta] Convertir Label a JPG Anthony AcuCobol 2 22 de julio de 2016 23:54
[Componente] Encriptar Texto Josber PowerCOBOL (ActiveX, v4 - v11) 10 14 de junio de 2016 16:49
Respuesta
 
Herramientas

  #1
Antiguo 27 de febrero de 2015, 16:56
IDENTIFICATION DIVISION
Roger
 Senior
ENVIRONMENT DIVISION
Avatar de Roger
DATA DIVISION
febrero 2015
Lima
04.02.2021 12:03
PROCEDURE DIVISION
Posts: 255
Enviado: 27
Recibido: 81
Soluiones: 5
Reputación: 13
Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road
Medalla OCR para convertir la IMG a texto

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 no ha iniciado sesión   Responder Con Cita
  #2
Antiguo 1 de marzo de 2015, 22:20
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 19:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 225
Soluiones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

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 no ha iniciado sesión   Responder Con Cita
  #3
Antiguo 2 de marzo de 2015, 01:36
IDENTIFICATION DIVISION
Roger
 Senior
ENVIRONMENT DIVISION
Avatar de Roger
DATA DIVISION
febrero 2015
Lima
04.02.2021 12:03
PROCEDURE DIVISION
Posts: 255
Enviado: 27
Recibido: 81
Soluiones: 5
Reputación: 13
Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road
Predeterminado

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 no ha iniciado sesión   Responder Con Cita
  #4
Antiguo 2 de marzo de 2015, 16:16
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 19:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 225
Soluiones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

Roger,

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

Vê se ajuda alguma coisa.

Saludos,
Rui
Rapinto no ha iniciado sesión   Responder Con Cita
  #5
Antiguo 3 de marzo de 2015, 00:07
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 19:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 225
Soluiones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

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: 33
Tamaño:  45,2 KB  
Archivos Adjuntos
Tipo de Archivo: zip Site_sunat.zip (5,5 KB, 15 descargas Quién descargó)
Rapinto no ha iniciado sesión   Responder Con Cita
  #6
Antiguo 3 de marzo de 2015, 22:19
IDENTIFICATION DIVISION
Roger
 Senior
ENVIRONMENT DIVISION
Avatar de Roger
DATA DIVISION
febrero 2015
Lima
04.02.2021 12:03
PROCEDURE DIVISION
Posts: 255
Enviado: 27
Recibido: 81
Soluiones: 5
Reputación: 13
Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road
Predeterminado

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 no ha iniciado sesión   Responder Con Cita
  #7
Antiguo 4 de marzo de 2015, 00:02
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 19:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 225
Soluiones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

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 no ha iniciado sesión   Responder Con Cita
  #8
Antiguo 4 de marzo de 2015, 15:56
IDENTIFICATION DIVISION
Roger
 Senior
ENVIRONMENT DIVISION
Avatar de Roger
DATA DIVISION
febrero 2015
Lima
04.02.2021 12:03
PROCEDURE DIVISION
Posts: 255
Enviado: 27
Recibido: 81
Soluiones: 5
Reputación: 13
Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road Roger is on a distinguished road
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 no ha iniciado sesión   Responder Con Cita
  #9
Antiguo 6 de marzo de 2015, 11:24
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 19:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 225
Soluiones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

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 no ha iniciado sesión   Responder Con Cita
Respuesta

Tags
ocr


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

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



La franja horaria es GMT +1. Ahora son las 02:17.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2021, Jelsoft Enterprises Ltd.