Estrarre il file thumbnail contenuto nel file odt

Da Gambas-it.org - Wikipedia.

Il file di formato ODT, file di testo facente parte della famiglia dei file ODF, è sostanzialmente un file XML contenuto in un file .zip . Infatti all'interno del file compresso ODT si trova - tra gli altri - anche la cartella Thumbnails/, la quale a sua volta contiene un file immagine in formato .png di piccole dimensioni che riproduce quanto mostrato dal file odt.

Per estrarre il file thumbnail .png, contenuto nel file .odt, senza dover preventivamente utilizzare un decompressore il file medesimo, si può adottare il seguente codice che utilizza esclusivamente risorse native di Gambas:

Public Sub Form_Open()
 
 Dim fl As File
 Dim i, sp As Integer
 Dim bb As Byte[]
 Dim s As String
 
  fl = Open "/percorso/del/file.odt" For Read
   
' Legge la dimensione del file immagine ".png" presente nel file ".odt":
  Seek #fl, 99
  Read #fl, i
  
' Legge dopo quanti byte iniziano i dati del file immagine ".png":
  Read #fl, sp
  
' Ci si sposta sul primo byte dei dati del file immagine ".png":
  Seek #fl, Seek(fl) + sp
  
' Legge i soli dati appartenenti al file immagine ".png":
  With bb = New Byte[i]
    .Read(fl, 0, i)
' Salva i dati in una variabile di tipo "Stringa":
    s = .ToString(0, i)
  End With
  
' Salva i dati letti in un nuovo file immagine ".png" esternamente al file ".odt":
  File.Save("/percorso/del/file.png", s)
  
  PictureBox1.Picture = Picture.Load("/percorso/del/file.png")
  
End



Riferimenti