Bonjour à tous,
Bon, désolé d'être un boulet mais ça fait une heure (je suis même en dessous de la réalité) que je cherche où poser ma question. Je suis pas vraiment sûr que ce soit ici, mais comme idéalement j'aimerais le faire en java... Si jamais un modérateur charitable veut bien mettre ma prose au bon endroit...
Sinon mon problème est tout bête : je voudrais extraire des fichiers sons contenu dans un pdf.
J'ai besoin de le faire "programatiquement" (j'ai beaucoup de fichiers et je dois automatiser ce processus).
Je pensais être le dix-milième à vouloir faire ça et trouver rapidement sur le net mais rien (ou alors je suis pas dégourdi).
J'ai à peu près compris que les informations étaient entre et (d'autant qu'en mettant le bloc dans un pdf minimal avec juste un lien on obtient le son) mais à part ça rien, je n'arrive même pas à identifier le format.
Comme il est écrit "FlateDecode" dans la déclaration j'ai tenté de "décompressé" les fichiers mais ça n'est pas beaucoup plus concluant.
Plus précisément
<</B 16/E/Signed/Filter/FlateDecode/Length 18944/R 22050/Type/Sound>>stream
Si quelqu'un a des pistes je suis preneur...
ps : Pour info j'ai fait ma décompression en utilisant python (je ne tiens pas particulièrement à utiliser ce language mais je n'avais pas en tête de méthode pour le faire en java) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
pdf = open("mon_fichier.pdf", "rb").read()
stream = re.compile(r'.*?FlateDecode.*?Sound.*?stream(.*?)endstream', re.S)
block_count = 0
for s in stream.findall(pdf):
s = s.strip('\b\r\n')
try:
block_count = block_count + 1
file_name = "sound_file_" + str(block_count)
file = open(file_name, "a")
file.write(zlib.decompress(s))
file.close()
except:
pass |
Partager