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
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
Aida
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
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
solamente me falta el modo de escanear múltiples documentos en un PDF te agradecería mucho de tu ayuda
Saluditos
Aida
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
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
pero no soy tan avanzada como muchos de esta fantástica comunidad
Gracias por todo
Aida