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...")
 
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 7: Riga 7:
 
   Dim mp3, ogg, wav, n, i As Integer
 
   Dim mp3, ogg, wav, n, i As Integer
 
   
 
   
   s = File.Load("<FONT Color=gray>''/percorso/del/file.pdf''</font>")
+
   s = File.Load("<FONT Color=darkgreen>''/percorso/del/file.pdf''</font>")
 
   
 
   
 
   n = InStr(s, "EmbeddedFile")
 
   n = InStr(s, "EmbeddedFile")
 
   
 
   
 
   mp3 = InStr(s, "ID3", n)
 
   mp3 = InStr(s, "ID3", n)
   If InStr(s, "\xFF\xFB\x93") > 0 Then mp3 = InStr(s, "\xFF\xFB\x93")
+
   If mp3 == 0 Then
  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"
 
     id = "mp3"
 
     i = mp3
 
     i = mp3
Riga 24: Riga 26:
 
   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
 
   
 
   
  n = RInStr(s, "Length", i)
 
 
  <FONT Color=gray>' ''Ottiene il valore della quantità dei dati audio dichiarato nel file PDF:''</font>
 
  <FONT Color=gray>' ''Ottiene il valore della quantità dei dati audio dichiarato nel file PDF:''</font>
 
   n = Val(Scan(Mid(s, n, i - n), "*Length * *")[1])
 
   n = Val(Scan(Mid(s, n, i - n), "*Length * *")[1])

Versione attuale delle 14:04, 19 gen 2024

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