![]() |
Extraccion de Miniatura de Archivo .ODT (Open/LibreOffice)
1 Archivos Adjunto(s)
Hola gente del Foro!
Hace un tiempo buscando por la red encontré un código que me devuelve una miniatura de un archivo o su ícono. Utiliza IExtract para hacer esto. Funciona correctamente con imágenes, archivos Word, Excel, PDF, etc. Cuando quiero obtener la miniatura de un archivo .odt (Open/LibreOffice) se cuelga el programa. Os dejo a continuación adjunto los fuentes de un pequeño programa ejemplo. ShObjIdlQuot.pas es una unidad con la definición de cosas auxiliares. ShellObjHelper.pas es la unidad que hace el trabajo. UFMMain.pas/dfm es el programa ejemplo que utiliza estas unidades. Por lo que vi y hasta donde puedo llegar con mis conocimientos: Se llama a GetExtractImageItfPtr (Archivo, XtractImage) XtractImage es diferente de nil. Se llama a ExtractImageGetFileThumbnail(XtractImage, MINIATURA_WIDTH, MINIATURA_HEIGHT, ColorDepth, Flags, RT, Bmp) Dentro de este procedimiento se llama a XtractImage.GetLocation(...) Con varios archivos devuelve NOERROR (0) o E_PENDING (-24...) Si lo llamo con un archivo que no sea .odt XtractImage sigue siendo diferente de nil. Si es .odt XtractImage se vuelve nil y todo empieza a fallar. Espero que alguien con conocimientos de la API o de estas interfaces me pueda dar una solución :confused: Gracias!
|
Supongo que tienes OpenOffice instalado, si no es así no funcionará.
Asumiendo que está correctamente instalado, prueba de esta manera:
Saludos. |
¡¡¡MUCHÍSIMAS GRACIAS ESCAFANDRA!!!
Te voy a poner al nivel de Neftali y sus 11K mensajes Hacía ya varios días que le estaba dando vuelvas a esto y no encontraba solución. No entiendo porqué tu función da resultado y la que implemento yo no. Ambas utilizan IExtractImage.GetLocation e IExtractImage.Extract. Algún día trataré de estudiar un poco la lógica detrás de estas Interfaces. Repito: MUCHAS GRACIAS! y felices inmersiones... |
| La franja horaria es GMT +2. Ahora son las 04:51:47. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi