Page 1 of 2
Problemas con Acrobar reader version 7.0.7
Posted: Tue Feb 06, 2007 8:10 am
by Andrés González
Antonio no se que me puede estar pasando pero todos los ejemplos de activex funcionan a la perfeccion incluso este ejemplo con el control activex anterior funcionaba pero ahora me marca un error del activex, he visto varios mensajes del mismo estilo en el foro pero no encuentro la solucion. Tengo montados en un win2000 una acrobat reader version 7.0.7 y un adobe Acrobat 7.0.0 profesional para el tema de crear los PDF. lo que me marca OLEVIEW :
Code: Select all
En el ProgID de Adobe PDF reader pone
ProgID = AcroPDF.PDF.1
el path de implementacion:
C:\Archivos de programa\Adobe\Acrobat 7.0\ActiveX\AcroPDF.dll
Sencillamente he sustituido el anterior por el que pone ahora. Supongo que el reader se ha debido de actualizar solo y ahora el progID es diferente al anterior. Antes funcionaba perfectamente el ejemplo ahora me da un error en el activex pero sin especificar el error.
El condigo que compilo me toma el fichero pdf del disco duro sin problema es a la hora de activar el activex que me da error de activex.
El ejemplo que he modificado es el siguiente pero por mucho que intento buscar una explicacion no puedo saber a que se debe el error pues no me genera ningun numero de error, sencillamente sale un dialogo que dice:
Harbour Excepcion
called from CREATEACTIVEX(0)
called from TACTIVEX:NEW(0)
y un boton de aceptar.
mi codigo:
Code: Select all
// FiveWin ActiveX support demo - Using Adobe Acrobat Reader
#include "FiveWin.ch"
function Acrobat(cPdfName)
local oWnd, oActiveX
Local cPdfName := cGetFile("*.pdf","Choose Report")
DEFINE WINDOW oWnd TITLE "Acrobat Reader 7.0"
//oActiveX = TActiveX():New( oWnd, "PDF.PdfCtrl.10" )
oActiveX = TActiveX():New( oWnd, "AcroPDF.PDF.1" )
oWnd:oClient = oActiveX // To fill the entire window surface
oActiveX:Do( "LoadFile",cPdfName )
oActiveX:Do( "SetCurrentPage", 1 )
ACTIVATE WINDOW oWnd ;
ON INIT oActiveX:Do( "Show" )
return nil
Mi version: fwh25, hasta la fecha todo funcionaba bien supongo que debe ser algo del acrobat reader, pero mi conocimiento para intentar buscar la solucion no es posible. Pero tengo la sensacion que el comando AcroPDF.PDF.1 le falta algo o no es el correcto pese a que no encuentro otro. Si intento poner paradas del tipo ? "1", ? "2"... entre los comandos del activex de la ventana no me los muestra osea que me imagino que algo anda mal.
Posted: Tue Feb 06, 2007 8:33 am
by Antonio Linares
Ejecuta regedit y busca "PdfCtrl" ó "AcroPDF" y comprueba cual es el valor correcto del ProgID que tienes instalado
Posted: Tue Feb 06, 2007 9:10 am
by Andrés González
Antonio eso ya lo habia mirado:
PdfCtrl (no me lo encuentra)
AcroPDF el que he puesto en el mensaje AcroPDF.FDF.1
Ahora me sale un mensaje
Code: Select all
FiveWin ActiveX Support:pdf.exe - Error de aplicación
La instruccion en "0x004178dd" hace referencia a la memoria en "0x00000000". La memoria no puede ser "read".
Haga clic en Aceptar para finalizar este progama
Haga clic en CANCELAR para depurar el programa
dos botones Aceptar y Cancelar
Si doy a cancelar me carga el Visual 2005 de Microsoft, que lo instale hace tiempo para hacer alguna practica pero nunca he utilizado. Pero no me llega a mostrar nada del error. Espero que te sirva de ayuda pues a mi es como si me hablaran en chino.
Tengo la sensacion de que algo que esta en el ejemplo le impide funcionar pero no tengo ni idea de como hacer para ver algun mensaje con los comandos de activex.
Posted: Tue Feb 06, 2007 9:14 am
by Antonio Linares
Andrés,
Por que no instalas el Acrobat reader más reciente ?
Posted: Tue Feb 06, 2007 9:52 am
by Antonio Linares
Andrés,
Acabamos de instalar la versión más reciente de Acrobat Reader. Es la versión 8. Su ProgID es "AcroPDF.PDF.1" y ha funcionado perfectamente con FWH:
Posted: Tue Feb 06, 2007 10:56 am
by Andrés González
Instalado y sigue dando el mismo problema. No lo entiendo....
Posted: Tue Feb 06, 2007 10:59 am
by Antonio Linares
Andrés,
Prueba samples\pdf.prg cambiándole el ProgId
Posted: Tue Feb 06, 2007 11:09 am
by Andrés González
Antonio fijate en la cosa que me pasa: He recompilado el ejemplo de excel y funciona perfecto, el del media player y funciona perfecto, pero el de flash justo antes de compilar lo he provado y ha ido fenomenal pero despues de recompilarlo funciona mal, me da exactamente el mismo error. Te suena a que puede ser debido, algo del compilador por ejemplo, todos los hago con el mismo bat. Me he fijado que ambos tanto el pdf como el flash tienen una sentencia ON INIT cuando se abre la ventana.
Posted: Tue Feb 06, 2007 11:22 am
by Andrés González
Antonio si no te es mucho transtorno puedes pasarme el exe compilado en un fichero zip para ver si funciona en mi maquina, lo que me ha pasado de de el flash me funcionaba bien y al recompilarlo, me hacen pensar que el flash va bien pero al recompilarlo alguna cosa se cuela en el compilado que no va bien. Dime ademas alguna ayuda para intentar ver que es lo que me falla.
Mi bp25.bat es el siguiente creo que eso esta todo bien.
Code: Select all
@ECHO ON
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 2.5 - October 2004 Harbour development power ³Ü
ECHO ³ (c) FiveTech, 1993-2004 for Microsoft Windows 95/98/NT/2000/ME and XP ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST
ECHO Compiling...
set hdir=g:\fwh\harbour25
set fwhdir=g:\fwh\fwh25
set bcdir=g:\bcc55
%hdir%\bin\harbour %1 /n /i..\include;%hdir%\include;%bcdir%\include;g:\clipper5\include;g:\bcc55\include;g:\fwh\fwh25\include /w /p %2 %3 > %1.log
@type %1.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT
echo -O2 -e%1.exe -I%hdir%\include %1.c > b32.bc
%bcdir%\bin\bcc32 -M -c @b32.bc
:ENDCOMPILE
IF EXIST %1.rc %bcdir%\bin\brc32 -r %1
echo c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo %fwhdir%\lib\FiveH.lib %fwhdir%\lib\FiveHC.lib + >> b32.bc
echo %hdir%\lib\dbfdbt.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\vm.lib + >> b32.bc
echo %hdir%\lib\gtwin.lib + >> b32.bc
echo %hdir%\lib\lang.lib + >> b32.bc
echo %hdir%\lib\macro.lib + >> b32.bc
echo %hdir%\lib\rdd.lib + >> b32.bc
echo %hdir%\lib\dbfntx.lib + >> b32.bc
echo %hdir%\lib\dbfcdx.lib + >> b32.bc
echo %hdir%\lib\dbfdbt.lib + >> b32.bc
echo %hdir%\lib\debug.lib + >> b32.bc
echo %hdir%\lib\common.lib + >> b32.bc
echo %hdir%\lib\pp.lib + >> b32.bc
echo %hdir%\lib\codepage.lib + >> b32.bc
rem Uncomment these two lines to use Advantage RDD
rem echo %hdir%\lib\rddads.lib + >> b32.bc
rem echo %hdir%\lib\Ace32.lib + >> b32.bc
echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\import32.lib + >> b32.bc
echo %bcdir%\lib\psdk\odbc32.lib + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib, >> b32.bc
IF EXIST %1.res echo %1.res >> b32.bc
rem uncomment this line to use the debugger and comment the next one
rem %bcdir%\bin\ilink32 -Tpe -s @b32.bc
%bcdir%\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
rem delete temporary files
@del %1.c
@del %1.il?
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built
%1
GOTO EXIT
ECHO
:LINKERROR
rem if exist meminfo.txt notepad meminfo.txt
GOTO EXIT
:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT
:NOEXIST
ECHO The specified PRG %1 does not exist
:EXIT
%1
pause
Posted: Tue Feb 06, 2007 12:12 pm
by Antonio Linares
Andrés,
Te he enviado el ejemplo PDF completo con el EXE, por email
Posted: Tue Feb 06, 2007 12:57 pm
by Andrés González
Gracias antonio, lo he ejecutado y sigue dandome el mismo error. No lo entiendo que es lo que hago mal, que ha cambiado en mi ordenador para que algunos funcionen y otros no. Si en el tuyo funciona deberia funcionar en el mio, instalando la nueva version claro la reader 8.0. La cuestion es que me he pegado un buen curro haciendo los pdf y ahora no puedo incluirlos via activex. Bueno, sigo investigando para ver si localizo el error.
Posted: Tue Feb 06, 2007 2:10 pm
by Andrés González
Perdon no se habia actualizado el ordenador el tuyo funciona a la perfeccion pero el mio no. Ahora por lo menos se que problemas del ProgID no es es algo de la compilacion del programa. Bueno mañana mas....
Posted: Tue Feb 06, 2007 5:16 pm
by R.F.
No problema del ActiveX de FiveWin, es problema del Acrobat en la version 7.0.
Por alguna extraña razon, la gente de Adobe hizo que las versiones 6 y 7.0 de Acrobat solo puedan funcionar como ActiveX desde el Internet Explorer.
No estoy seguro si pasa con la 6, pero con la 7 estoy super seguro que si, por lo tanto si quieres usarlo como ActiveX, tendras que crear un ActiveX para Internet Explorer y luego en la propiedad NAVIGATE() tendras que ponerle el nombre del PDF que quieres abrir.
En la version 8.0 vuelve a funciona nativamente.
Posted: Tue Feb 06, 2007 6:04 pm
by Rochinha
Amigo
Tentas diferentes ProIDs
Code: Select all
Function testa PDFActivex(oWnd)
MyProgID := ""
if IsActivex( "PDF.PdfCtrl.1" ); MyProgID := "PDF.PdfCtrl.1"; endif
if IsActivex( "PDF.PdfCtrl.2" ); MyProgID := "PDF.PdfCtrl.2"; endif
if IsActivex( "PDF.PdfCtrl.3" ); MyProgID := "PDF.PdfCtrl.3"; endif
if IsActivex( "PDF.PdfCtrl.4" ); MyProgID := "PDF.PdfCtrl.4"; endif
if IsActivex( "PDF.PdfCtrl.5" ); MyProgID := "PDF.PdfCtrl.5"; endif
if IsActivex( "PDF.PdfCtrl.6" ); MyProgID := "PDF.PdfCtrl.6"; endif
if IsActivex( "PDF.PdfCtrl.7" ); MyProgID := "PDF.PdfCtrl.7"; endif
if Empty( MyProgID )
MsgStop( 'No PDF Activex installed' )
return .f.
endif
ActiveX = TActiveX():New( oWnd, MyProgID )
return .t.
Posted: Wed Feb 07, 2007 7:46 am
by Andrés González
Gracias Rene, me he vuelto loco para encontrar la solucion, voy a mirar si ahora funciona.
Rochinha, la funcion IsActiveX es de fivewin o es algo tuyo me imagino que testea si esta puesto en el registro, puedes ponerla o enviarla al correo.
Gracias