Differenze tra le versioni di "Estrarre i dati video da un file PDF"
Da Gambas-it.org - Wikipedia.
(3 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= | + | s = File.Load("<FONT Color=darkgreen>''/percorso/del/file.pdf''</font>") |
n = InStr(s, "EmbeddedFile") | n = InStr(s, "EmbeddedFile") | ||
− | + | If InStr(s, "ftypmp42", n) > 0 Then mp4 = InStr(s, "ftypmp42", n) | |
− | If InStr(s, "mp4", | + | If InStr(s, "ftypisom", n) * InStr(s, "mp41", InStr(s, "ftypisom", n)) > 0 Then mp4 = InStr(s, "ftypisom", n) |
− | i = | + | If mp4 * InStr(s, "mp4", mp4) > 0 Then |
+ | i = mp4 - 4 | ||
id = "mp4" | id = "mp4" | ||
Endif | Endif | ||
− | + | ||
− | + | avi = InStr(s, "AVI LIST", n) | |
− | If | + | If avi > 0 Then |
− | i = | + | 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 | ||
− | |||
<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