Correggere un errore di apertura di un file .docx

Quando un documento di Microsoft Office non funziona (nemmeno su MS Office stesso), di solito noi utenti di LibreOffice non perdiamo la calma e lo apriamo con il nostro programma preferito: questo, in moltissimi casi, funziona perfettamente e ci permette di esportare il file in un formato standard.

A volte, però, capita di imbattersi in documenti che sembra non vogliano saperne di aprirsi, neppure con LibreOffice.

In alcuni casi, come quello che vi mostrerò a breve, il problema è causato da qualche errore presente all’interno dei file che compongono il documento: docx e odt, infatti, non sono altro che archivi contenenti le informazioni sul documento quali contenuto, formattazione, ecc.

Per vederne il contenuto basta estrarre il documento in questione con un’utility di gestione degli archivi (7-zip, rar, ecc): otterremo così una cartella recante lo stesso nome del file originale e contenente, a sua volta, altri file con estensione .xml. Sono proprio questi a contenere le informazioni cui facevo riferimento prima.

Questa caratteristica ci permette di correggere il problema che impedisce a LibreOffice di aprire il documento andando a modificare (con accortezza, s’intende) i giusti file xml.

Vediamo come.

Aprendo il docx non funzionante, viene mostrato un messaggio simile ai seguenti:

Illustrazione 1: l’errore in LibreOffice

Illustrazione 2: l’errore in MS Word 2007

Entrambi i programmi descrivono lo stesso errore, in maniere leggermente diverse: combinando i due messaggi possiamo capire quale sia il problema.

In questo caso, nel file document.xml l’attributo w:eastAsiaTheme è stato “ridefinito”, cioè inserito due volte nello stesso tag, comportamento che provoca l’impossibilità di aprire il file.

Entrambi i software indicano la posizione dell’errore, ma con una differenza: LibreOffice ne rileva uno in una posizione precedente rispetto a quella indicata da Word. Che Word ignori alcune occorrenze dell’errore e non altre? Non saprei dire, ma la cosa non mi stupirebbe.

A questo punto, estratto il contenuto del documento, entriamo nella cartella generata e cerchiamo il file document.xml che si trova nella sottocartella word/ ed apriamolo con un editor di testo che ci mostri correttamente la posizione in cui ci troviamo nel testo: io ho usato Kate e Brackets in ambiente GNU/Linux ed entrambi mostrano riga e colonna nell’area in basso.

Intanto rassicuriamoci: il frutto delle nostre ore di lavoro non è andato perso!

Sorge però un altro problema: nella posizione indicata da entrambi i programmi non è presente il doppio attributo.

Per aggirare questo ostacolo, basta aprire il file document.xml con Chromium (Chrome se siete su Windows): il browser segnalerà l’errore, ma visualizzerà comunque il contenuto del documento precedente l’errore.

In base al contenuto visualizzato dal browser, potremo quindi identificare la posizione corretta dell’errore.

Nel caso dell’esempio, l’ultima parola che il browser permette di visualizzare è “quota”: cercandola nel testo ho trovato la riga incriminata:

<w:rFonts w:eastAsia=”Calibri” w:cs=”Times New Roman” w:eastAsiaTheme=”minorHAnsi” w:ascii=”Times New Roman” w:hAnsi=”Times New Roman” w:eastAsiaTheme=”minorHAnsi”/>

Come vedete tra il tag di apertura ‘<’ e quello di chiusura ‘/>’ è presente due volte l’attributo w:eastAsiaTheme=”minorHAnsi”; cancelliamo dal testo la seconda occorrenza, salviamo il file e ricarichiamo la pagina del browser per vedere se siano presenti altri errori (possiamo farlo anche utilizzando la funzione di ricerca integrata nel nostro editor di testo, inserendo come chiave di ricerca l’intera stringa errata): se non sono presenti altri errori, chiudiamo editor e browser.

Non ci resta che ricomprimere la cartella in un file che sia leggibile da LibreOffice. Il modo più veloce per farlo su GNU/Linux è tramite il terminale.

Apriamo la shell ed entriamo nella cartella che abbiamo estratto dal documento.

Supponendo che essa si trovi nella nostra cartella home, digitiamo:

cd $HOME/nome-del-documento/

Una volta qui, inseriamo il comando per comprimere la cartella ed il suo contenuto in un archivio, che poi altro non è che il nostro documento:

zip -r nome-del-documento.docx .

Ovviamente ‘nome-del-documento’ è un nome a vostra scelta.

Non dimenticate il punto alla fine del comando! In questo caso indica che nel documento/archivio dovrà essere inserito ciò che si trova nella cartella in cui stiamo operando, incluse le sottocartelle (opzione -r).

Finalmente dovremmo avere un documento nuovamente funzionante, pronto per essere aperto con LibreOffice… e convertito in formato odt!

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

This site uses Akismet to reduce spam. Learn how your comment data is processed.