Page 1 of 1

Control OCX para escaner

Posted: Fri Apr 25, 2008 7:30 pm
by Rafael Clemente
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

oActiveX := TActiveX():New(oWnd, ??????????)
oActiveX:SelectImageSource()
oActiveX:Scan()
Gracias,
Rafael

Posted: Sat Apr 26, 2008 3:43 pm
by Rafael Clemente
Después de jugar un rato, he conseguido conectarme al OCX y adelantar algo:

Code: Select all

#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

Posted: Sat Apr 26, 2008 6:43 pm
by George
Rafael,
Este otro OCX de http://www.ciansoft.com/twaincontrolx/default.asp
Funciona perfecto con FWH.

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

Puedes bajar un demo del link mas arriba indicado.

Saludos,

George

Posted: Sat Apr 26, 2008 7:02 pm
by Rafael Clemente
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

Posted: Sun Apr 27, 2008 12:05 am
by George
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

Posted: Sun Apr 27, 2008 5:12 am
by mmercado
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

Posted: Sun Apr 27, 2008 6:48 am
by Rafael Clemente
Manuel:

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

Rafael

Posted: Sun Apr 27, 2008 9:55 am
by Rafael Clemente
George:
Me he bajado el OCX de Ciansoft y tu ejemplo funciona perfecto. Muchas gracias a ti y a Manuel Mercado
Saludos,
Rafael

Re: Control OCX para escaner

Posted: Sun Mar 01, 2009 11:13 pm
by AIDA
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:

Re: Control OCX para escaner

Posted: Mon Mar 02, 2009 2:58 pm
by Rafael Clemente
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

Re: Control OCX para escaner

Posted: Tue Mar 03, 2009 12:57 am
by AIDA
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

Re: Control OCX para escaner

Posted: Tue Mar 03, 2009 7:42 am
by Rafael Clemente
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

 
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

Re: Control OCX para escaner

Posted: Tue Mar 03, 2009 7:44 am
by Rafael Clemente
Aida:
En mi ejemplo de antes había un error. La línea para grabar directo a disco debe ser:

Code: Select all

  
  oImgBox:Do("InsertPdf", myFile, "", 0)     // Si existe el fichero, grabo directo a disco
 
Rafael

Re: Control OCX para escaner

Posted: Wed Mar 04, 2009 1:01 am
by AIDA
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

 FUNCTION ScanOCX2(cFilename)
local _

_ := TOleAuto():New("TwainControlXTrial.Twain")
_:SelectDevice()
_:AddToPDF(0)
_:Acquire()
_:SaveMultiPagePDF("TestScan.pdf")
_: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