Estrarre i dati audio da un file PDF

Da Gambas-it.org - Wikipedia.

Se un file PDF possiede dati audio, questi possono essere raccolti per creare un file audio indipendente.

Mostriamo un possibile codice, con il quale potranno essere raccolti i dati audio, presenti nel file PDF, di formato MP3, OGG e WAV:

Public Sub Main()

 Dim s, id As String
 Dim mp3, ogg, wav, n, i As Integer

 s = File.Load("/percorso/del/file.pdf")

 n = InStr(s, "EmbeddedFile")

 mp3 = InStr(s, "ID3", n)
 If mp3 == 0 Then
   If InStr(s, "\xFF\xFB\x92") > 0 Then mp3 = InStr(s, "\xFF\xFB\x92")
   If InStr(s, "\xFF\xFB\x93") > 0 Then mp3 = InStr(s, "\xFF\xFB\x93")
 Else 
   id = "mp3"
   i = mp3
 Endif

 ogg = InStr(s, "Ogg", n)
 If ogg > 0 Then 
   id = "ogg"
   i = ogg
 Endif 

 wav = InStr(s, "WAVEfmt ", n)
 If InStr(s, "WAVEfmt ", n) * InStr(s, "RIFF", wav - 8) > 0 Then
   id = "wav"
   i = wav - 8
 Endif

' Ottiene il valore della quantità dei dati audio dichiarato nel file PDF:
 n = Val(Scan(Mid(s, n, i - n), "*Length * *")[1])

' Con i byte-dati estratti crea un file audio indipendente:
 File.Save("/tmp/audio." & id, Mid(s, i, n))
 
End