Estrarre il file thumbnail contenuto nel file odt

Da Gambas-it.org - Wikipedia.
Versione del 12 nov 2015 alle 09:09 di Vuott (Discussione | contributi) (Creata pagina con "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...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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