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

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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...")
 
 
(4 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Se un file PDF possiede dati video, questi possono essere raccolti per creare un file video indipendente.
 
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:
+
Mostriamo un possibile codice, con il quale potranno essere raccolti i dati video, presenti nel file PDF, di formato ASF, AVI, MOV e MP4:
 
  Public Sub Main()
 
  Public Sub Main()
 
   
 
   
 
   Dim s, id As String
 
   Dim s, id As String
   Dim n, i As Integer
+
   Dim asf, avi, mov, mp4, 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")
 
    
 
    
   i = InStr(s, "ftypisom", n)
+
   If InStr(s, "ftypmp42", n) > 0 Then mp4 = InStr(s, "ftypmp42", n)
   If InStr(s, "mp4", i) > 0 Then  
+
  If InStr(s, "ftypisom", n) * InStr(s, "mp41", InStr(s, "ftypisom", n)) > 0 Then mp4 = InStr(s, "ftypisom", n)
     i = i - 4
+
   If mp4 * InStr(s, "mp4", mp4) > 0 Then  
 +
     i = mp4 - 4
 
     id = "mp4"
 
     id = "mp4"
 
   Endif
 
   Endif
 
+
   i = InStr(s, "AVI", n)
+
   avi = InStr(s, "AVI LIST", n)
   If InStr(s, "AVI", n) + InStr(s, "AVI", --8) > 0 Then
+
   If avi > 0 Then
     i = i - 8
+
     i = avi - 8
 
     id = "avi"
 
     id = "avi"
   Endif  
+
  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
 
   
 
   
  n = RInStr(s, "Length", i)
 
 
  <FONT Color=gray>' ''Ottiene il valore della quantità dei dati video dichiarato nel file PDF:''</font>
 
  <FONT Color=gray>' ''Ottiene il valore della quantità dei dati video 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 15:49, 20 gen 2024

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 ASF, AVI, MOV 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