[Linuxtrent] aiuto con python

  • From: Marco Ciampa <ciampix@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Wed, 29 Oct 2014 17:35:59 +0100

Sto smanettando con python ma, non facendo il programmatore di
professione né essendo brillante di mio, arranco (che novità :-).

Vorrei trasformate dei testi creati con Libre/OpenOffice.

LibO esporta in HMTL ma purtroppo non ha l'opzione per generare le
immagini a parte.

Mi è venuta l'idea di predere il sorgente HTML e separare le immagini ma
mi sono piantato.

In pratica le immagini capitano in singole righe html dove ad un certo
punto si trovano delle righe:

..... style="margin-bottom: 0cm"><img
src="data:image/png;base64,iVBOR...............SuQmCC" name="graphics1"
align="left" width="588" height="404" border="0"><br clear...

l'idea è di sostituire questa <img src="data ..." name=graphics1"...> con
la stessa cosa ma salvando l'immagine decodificata .png in
images/graphics1.png e cambiare il link in <img src="images/graphics1.png" 
...> 

Ho buttato li tutto per dare un'idea di dove stavo andando a parare.
Premetto che non sono mai stato un mago neanche delle espressioni regolari.
ecco qua:

#!/usr/bin/python3

import re
import base64
import os

#Created images folder
directory='images'
if not os.path.exists(directory):
    os.makedirs(directory)

#Source file
FIN=open('cvpcb_EN-LIBO.html')
#Destination file
FOUT=open('cvpcb_EN-out.html','w')

for line in FIN:
    #Search for image tag
    cerca = re.search('$(.*) (<img src="data:image/png;base64,.*) (.*)', line)
    if (cerca):
        preamble=cerca.group(0)
        resto=cerca.group(1)
        print ("found in line ",n_line,":",preamble[0:10])
    #cerca = re.search('<img src="data:image/png;base64,(.*?)" 
name="(graphics.?.?.?)" (.*)', line)
    #If img tag matches ... convert it into image
        #start=cerca.group(1)
        #img=cerca.group(2)
        #name=cerca.group(3)
        #FIMG=open('images/'+name+'.png','w')
        #print ("found in line ",n_line,":",'"'+name+'"')
        #FIMG.close
    n_line=n_line+1
#    FOUT.write(line)

mille grazie anticipate...

--


Marco Ciampa

I know a joke about UDP, but you might not get it.

+--------------------+
| Linux User  #78271 |
| FSFE fellow   #364 |
+--------------------+

-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: