Colegas,

Tenho a macro abaixo para exibir, em um diálogo do Basic (no caso
DlgMostraThumb), o Thumbnail do documento que fica gravado em
"Thumbnails/thumbnail.png" dentro do arquivo  (arquivo.ott, no caso).

Atualmente minha gambiarra consiste em extrair a imagem utilizando a
sub UnZip( ) e então carregá-la no diálogo, mais especificamente em um
componente de nome img.

Gostaria de saber se há como carregar essa miminatura diretamente do
arquivo.ott, sem precisar fazer a prévia gravação no disco, algo como
operar apenas em memória.

Outras duas perguntas:

1. Há como controlar a qualidade e dimensões (atualmente algo como
181x256px para um doc A4) do thumbnail gravado pelo OpenOffice?

2. Há outro método para carregar um preview de um documento OpenOffice
em um diálogo Basic?

Sub MostraThumb()
        sMyDir = "C:\Documentos\"
        sZipPackageUrl = ConvertToUrl( sMyDir & "arquivo.ott" )
        sPkgSourceFile = "Thumbnails\thumbnail.png"
        sDestination = sMyDir & sPkgSourceFile
        UnZip( sZipPackageUrl, sPkgSourceFile, sDestination )
        DialogLibraries.LoadLibrary("MinhaLib")
        oDlg = CreateUnoDialog(DialogLibraries.MinhaLib.DlgMostraThumb)
        oImg  = oDlg.getControl("img")
        oImg.Model.ImageURL = ConvertToUrl( sDestination)
        oDlg.Execute()
        oDlg.dispose()
End Sub

Sub UnZip( sZipPackageUrl As String, sPkgSourceFile As String,
sDestFile As String )
        oZipPackage = createUnoService("com.sun.star.packages.Package")
        oZipPackage.initialize( Array( sZipPackageUrl ) )
        oZipPackageStream = oZipPackage.getByHierarchicalName( sPkgSourceFile )
        xInputStream = oZipPackageStream.getInputStream()
        xSimpleFileAccess = createUnoService( 
"com.sun.star.ucb.SimpleFileAccess" )
        xSimpleFileAccess.WriteFile( ConvertToUrl( sDestFile ), xInputStream )
End Sub

-- 
José Ricardo Simões Rodrigues
jricardosimoes at gmail.com
ricardo at ricardosimoes.com
ricardosimoes.com
twitter.com/malechamawitz

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Responder a