Estrarre i dati video da un file PDF

Da Gambas-it.org - Wikipedia.

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

Mostriamo un possibile codice, con il quale potranno essere raccolti i dati video, presenti nel file PDF, di formato AVI e MP4:

Public Sub Main()

 Dim s, id As String
 Dim asf, avi, mov, mp4, n, i As Integer
 
 s = File.Load("/percorso/del/file.pdf")
 
 n = InStr(s, "EmbeddedFile")
 
 If InStr(s, "ftypmp42", n) > 0 Then mp4 = InStr(s, "ftypmp42", n)
 If InStr(s, "ftypisom", n) * InStr(s, "mp41", InStr(s, "ftypisom", n)) > 0 Then mp4 = InStr(s, "ftypisom", n)
 If mp4 * InStr(s, "mp4", mp4) > 0 Then 
   i = mp4 - 4
   id = "mp4"
 Endif

 avi = InStr(s, "AVI LIST", n)
 If avi > 0 Then
   i = avi - 8
   id = "avi"
 Endif

 i = InStr(s, "ftypqt", n)
 If i > 0 Then 
   i = i - 4
   id = "mov"
 Endif

 asf = InStr(s, "0&\xB2u\x8Ef\xCF\x11", n)
 If asf > 0 Then 
   i = asf
   id = "asf"
 Endif

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

' Crea il file video:
 File.Save("/tmp/video." & id, Mid(s, i, n))

End