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, " | + | 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