ActiveX AcroPdf no funciona
Hola amigos:
He desarrollado algunos programas en los que he utilizado el componente ActiveX AcroPdf, para visualizar archivos PDF. La última actualización de Adobe Reader modifica la AcroPdf.dll a la versión 11.0.7.79, con lo cual el componente deja de funcionar al igual que los programas que lo utilizan, enviando un mensaje de AccessViolation. Si restauro mi sistema a un punto anterior a esta actualización todo vuelve a la normalidad, pero lamentablemente Adobe Reader se actualiza automáticamente a pesar de que tenga desactivadas las actualizaciones en este programa. Como he visto que muchas personas han hecho consultas aquí en el foro en relación al uso de este componente, me imagino que también podrían verse afectados sus programas. En el foro de Adobe ya se han publicado varios casos que apuntan al mismo problema. ¿Alguien dispone de alguna información al respecto? Saludos |
Hola,
Lo que yo haría (y quizá no sirva para nada) es: 1º Intentar actualizar el componente en cuestión de manera que use la última versión de la DLL de marras, tal vez "importándola" para crear otro "ActiveX" o algo así... 2º Mostrar al usuario los PDF dentro de un "WebBrowser" preparado para tal efecto. De este modo el "WebBrowser" lidiaría con la última versión instalada en el equipo. 3º No mostrar, pero, "lanzar" los documentos PDF de manera que el usuario los visualize usando el programa que prefiera y tenga instalado: Acrobat Reader u otro. Nota: el orden los puntos anteriores tal vez no sea el esperado, sino que podríamos empezar por el final y aquí paz y después gloria. ;) |
Muchas gracias por responder dec.
Lo que tú señalas ya lo intenté y como bien acotas no sirvió de nada. Por lo que he leído en los foros de Adobe se trataría de un bug no considerado en la última actualización, que pretende corregir algún problema de seguridad. Al parecer habrá que esperar que los gurus de Adobe corrijan el problema y ojalá lo tengan presente en futuras actualizaciones. Saludos |
Hola,
Hombre, si se puede esperar... ¿pero qué hay de la segunda o tercera soluciones propuestas? |
PDF con Windows 7 64 bits
Despues de haber dejado el tema ( por cansancio) sin solucion, ayer decidi darle unas vueltas mas y, parece que descubri la solucion:
AcroPDFLib_TLB no basta con colocarlo en el uses de la form que hace el display del PDF. Se me ocurrio colocarlo en todas las Unit que llama a la form del PDF. Esto dio el resultado que yo esperaba. Ojala sirva para los que aun no han encontrado una solucion. Yo se lo que es eso. |
radenf,
Cita:
Cita:
Espero sea útil :) Nelson. |
Muchas gracias por sus opiniones y aportes.
Creo que esperaré la solución que provea Adobe. Esto me ha abierto los ojos a la vulnerabilidad de los programas que desarrollamos cuando se utilizan componentes de terceros o cuando a través de componentes nativos, como es el caso, se llama a programas de terceros(Adobe Reader). Intentaré a futuro encontrar alguna alternativa que no utilice Adobe Reader, aunque sea de pago.. Un abrazo |
Mi casuística es la siguiente:
Funciona con windows Vista y 7 con Acrobat XI. Falla con Windows XP SP2 en todos los casos y la única solución que he encontrado ha sido downgrade a Adobe 10. Funciona con windows XP SP3 totalmente actualizado y falla (ocasionalmente) cuando falta alguna actualización. Un saludo. |
Estimado apicito:
Gracias por tu respuesta. El error se produce sólo con la versión 11.0.7.79 de AcroPdf.dll que corresponde a la última actualización de Adobe Reader XI. Yo utilizo Windows 7 64 bits. Saludos |
radenf,
Cita:
Cita:
Cita:
El código anterior en Delphi 7 bajo Windows 7 Professional x32, permite abrir un documento PDF en un TPanel por medio de la función ShellExecute, como se muestra en la siguiente imagen: Nota: 1- En esta versión es mandatorio finalizar cualquier instancia previa de Acrobat Reader para poder visualizar el documento seleccionado en el TPanel. 2- Esta versión no depende de ningún componente de terceros, solo de las APIs de Windows y de la versión instalada de Acrobat Reader. Espero sea útil :) Nelson. |
Muchas gracias Nelson.
Excelente alternativa. Probaré tu código adaptándolo a mi programa. Saludos |
ActiveX AcroPdf - imprimir varios pdf sin visualizar
Hola
Estoy intentando imprimir varios ficheros Pdf con el componente TAcroPDF, segun lo que he leido se puede enviar a la impresora sin visualizar los documentos. Mi problema es que me descargo el fichero Pdf de un servidor y despues lanzo la impresión, solo me imprime el último fichero cargado en el componente. ademas solo me permite imprimirlo si ejecuto primero un Show sobre el componente antes de ejecutar PrintAll, ya que Print no funciona tampoco. ¿Sabeis alguna solución? o ¿alguno otro componente que permita enviar a la impresora vairos documentos pdf? Muchas gracias. |
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)
|
La franja horaria es GMT +2. Ahora son las 01:06:30. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi