Differenze tra le versioni di "Estrarre i dati audio da un file PDF"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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...")
 
Riga 24: Riga 24:
 
   Endif  
 
   Endif  
 
   
 
   
   wav = InStr(s, "RIFF", n)
+
   wav = InStr(s, "WAVEfmt ", n)
   If wav > 0 Then  
+
   If InStr(s, "WAVEfmt ", n) * InStr(s, "RIFF", wav - 8) > 0 Then
 
     id = "wav"
 
     id = "wav"
     i = wav
+
     i = wav - 8
 
   Endif
 
   Endif
 
   
 
   

Versione delle 12:59, 27 set 2023

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 InStr(s, "\xFF\xFB\x93") > 0 Then mp3 = InStr(s, "\xFF\xFB\x93")
 If mp3 > 0 Then 
   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

 n = RInStr(s, "Length", i)
' 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