Control OCX para escaner

Control OCX para escaner

Postby Rafael Clemente » Fri Apr 25, 2008 7:30 pm

He encontrado un control OCX muy bueno para manejar escanners TWAIN. Os lo podeis descargar aquí: http://www.viscomsoft.com/products/scanner/

Viene con algunos ejemplos en VB y VFP. Yo he probado el de VB y es excelente. He intentado utilizarlo desde FWH pero después de muchas pruebas no he conseguido nada. La verdad es que no tengo mucha práctica con ActiveX/Ocx

Alguien podría ponerme un ejemplo mínimo de cómo utilizarlo?. En teoría debería ser algo así:
Code: Select all  Expand view
oActiveX := TActiveX():New(oWnd, ??????????)
oActiveX:SelectImageSource()
oActiveX:Scan()


Gracias,
Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby Rafael Clemente » Sat Apr 26, 2008 3:43 pm

Después de jugar un rato, he conseguido conectarme al OCX y adelantar algo:
Code: Select all  Expand view
#include "fivewin.ch"
function Main()
local oWnd, oActiveX

DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"
oActiveX := TActiveX():New( oWnd, "SCANNER.ScannerCtrl.1" )
@ 2,40 Button "SOURCE" Size 100,20 Of oWnd Action oActiveX:Do("SelectImageSource")
@ 4,40 Button "SCAN"   Size 100,20 Of oWnd Action Adquirir(oActiveX)
ACTIVATE WINDOW oWnd VALID (oActiveX:End(), .T.)
Return Nil

STATIC FUNCTION Adquirir(oActiveX)
Local n
n := oActiveX:Do("Scan")
n := oActiveX:Do("Save", "MiFoto1.jpg", "JPG")
Return Nil


En este ejemplo, el botón SOURCE funciona (o sea, permite elegir la fuente de escaneado)
El botón SCAN Lanza el escanner y captura una imagen. Pero no he conseguido que la presente en pantalla o la guarde en disco...

¿Hay alguien que quiera seguir mirándose este OCX y continuar el proyecto? Parece muy bueno (captura TIFs y PDFs), está bien de precio y puede usarse libre de royalties.

Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby George » Sat Apr 26, 2008 6:43 pm

Rafael,
Este otro OCX de http://www.ciansoft.com/twaincontrolx/default.asp
Funciona perfecto con FWH.

he aqui un ejemplo de como usarlo:
oScan := TOleAuto():New("TwainControlXTrial.Twain")
oScan:SelectDevice()
oScan:Acquire()
oScan:SaveMultiPagePDF("c:\TestScan.pdf")
oScan:WritePDF( "c:\TestScan.pdf")

Puedes bajar un demo del link mas arriba indicado.

Saludos,

George
George
 
Posts: 724
Joined: Tue Oct 18, 2005 6:49 pm

Postby Rafael Clemente » Sat Apr 26, 2008 7:02 pm

George:
Gracias por tu comentario. ¿En dónde esta la clase TOleAuto? Yo utilizo FWH 2.6 + Harbour y quizá sea una versión demasiado anticuada...
Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby George » Sun Apr 27, 2008 12:05 am

Rafael

Yo uso xHarbour Builder (la version comercial) conjuntamente con FWH; en esta version de xHarbour esta ya integrada tOleauto.
Creo que esta esta libreria esta tambien diponible para Harbour pero que hay que enlazarla al crear tu aplicacion.

George
George
 
Posts: 724
Joined: Tue Oct 18, 2005 6:49 pm

Postby mmercado » Sun Apr 27, 2008 5:12 am

Rafael Clemente wrote:¿En dónde esta la clase TOleAuto? Yo utilizo FWH 2.6 + Harbour y quizá sea una versión demasiado anticuada...
Rafael

Rafael, dame un email para enviarte HbOle.lib que seguramente te servirá.

Saludos.

Manuel Mercado
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Postby Rafael Clemente » Sun Apr 27, 2008 6:48 am

Manuel:

Me encuentras en: rafaelclem@telefonica.net
Y muchísimas gracias por adelantado

Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby Rafael Clemente » Sun Apr 27, 2008 9:55 am

George:
Me he bajado el OCX de Ciansoft y tu ejemplo funciona perfecto. Muchas gracias a ti y a Manuel Mercado
Saludos,
Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Re: Control OCX para escaner

Postby AIDA » Sun Mar 01, 2009 11:13 pm

Hola después de pasar dos días y una noche sin dormir :cry:
haciendo pruebas para generar un PDF con imágenes desde el escáner, definitivamente solo me funciono el TwainControlXTrial.Twain :)

me podrían orientar como podría meter más de una imagen en un PDF que comando se usa del TwainControlXTrial.Twain para escanear multiples documentos creo que tendré que sacar el dinerito de mi cochinito de ahorros para la licencia :?

Les mando muchos saludos :D

Aida :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: Control OCX para escaner

Postby Rafael Clemente » Mon Mar 02, 2009 2:58 pm

Aida:
Prueba el OCR de Ciansoft: http://www.ciansoft.com/twaincontrolx/default.asp Va de maravilla: TIffs, PDFs, páginas únicas o multipágina...
Yo lo llamo mediante TActiveX() desde FWH y funciona sin problemas. Eso sí, recuerda que para manejar propiedades tienes que utilizar GetProp() y SetProp() y para ejecutar métodos, Do() y que necesitarás una versión de FWH posterior a julio del año pasado.
Un saludo,
Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Re: Control OCX para escaner

Postby AIDA » Tue Mar 03, 2009 12:57 am

Hola Rafael :D

Muchas gracias por contestar :) fíjate que ese control que me recomiendas es el mismo que definitivamente decidí usar.

no sé si seria mucha molestia me pudieras orientar de que comandos necesito para hacer que el escáner me permita meter más de una imagen en un PDF
ya tengo funcionando el escáner de modo simple :D solamente me falta el modo de escanear múltiples documentos en un PDF te agradecería mucho de tu ayuda

Saluditos :mrgreen:

Aida :wink:

mi messenger es - aida_p_z@hotmail.com
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: Control OCX para escaner

Postby Rafael Clemente » Tue Mar 03, 2009 7:42 am

Aida:
Si ya tienes el control funcionando, hacer un PDF multipágina es sencillísimo.

1.- Crea el control: oImgBox := TActiveX():New(Self, "csXImage.ImageBox")

2.- Limpia las imágenes en memoria: oImgBox:Do("ClearPdf")

3.- Declara la función de manejo de eventos: oImgBox:bOnEvent := {|event, aParams, pParams| ::EventCapt(event, aParams, pParams, oImgBox)}

La funcion on EventCapt es más o menos así:

Code: Select all  Expand view

METHOD EventCapt( event, aParams, pParams, oImgBox ) CLASS Escanear
     Case event = "OnAcquireFinish"
             oImgBox:Do("WritePdf", myFile)    // Aquí es donde creo el fichero PDF
     Case event = "OnAcquire"
              If File(myFile)
                 oImgBox:Do("Insert"+cExt, cFileDummy, "", 0)     // Si existe el fichero, grabo directo a disco
              Else
                 oImgBox:Do("AddToPdf", 0)      // Voy salvando las páginas a memoria
              Endif
EndCase
Return Nil
 


Naturalmente, esto es sólo un esqueleto del programa. Seguro que tú ya has trabajado ajustando las diferentes propiedades del control.
Un saludo y suerte!

Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Re: Control OCX para escaner

Postby Rafael Clemente » Tue Mar 03, 2009 7:44 am

Aida:
En mi ejemplo de antes había un error. La línea para grabar directo a disco debe ser:
Code: Select all  Expand view
 
  oImgBox:Do("InsertPdf", myFile, "", 0)     // Si existe el fichero, grabo directo a disco
 

Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Re: Control OCX para escaner

Postby AIDA » Wed Mar 04, 2009 1:01 am

Hola gracias por el dato

me da pena :oops: pero no sé nada de métodos no entendí nada :(

yo solamente tome el ejemplo siguiente que me funciono

Code: Select all  Expand view

 FUNCTION ScanOCX2(cFilename)
local oscan

oScan := TOleAuto():New("TwainControlXTrial.Twain")
oScan:SelectDevice()
oScan:AddToPDF(0)
oScan:Acquire()
oScan:SaveMultiPagePDF("TestScan.pdf")
oScan:WritePDF( "TestScan.pdf")
presenta()
RETURN (.T.)
 


creí que seria sencillo hacer lo de las multipaginas en el manualito del control vi un comando es AddToPDF pero no sé cómo utilizarlo :?:

me da mucha pena :oops: pero no soy tan avanzada como muchos de esta fantástica comunidad :D

Gracias por todo :wink:

Aida
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 88 guests