Una via semplice per unire molti file DocX.
Ci sono diversi servizi online che ci permettono di fare questo lavoro senza costi economici direttiu.
Ma se abbiaamo centinaia o miglia di file DocX e li vogliamo unire in un solo file DocX?
Facilmente superiamo i limiti dei servizi senza costi economici. Se abbiamo stringenti vindoli di riservatezza è una via da scartare subito.
Fare una macro per Office o LibreoOffice non è per nulla facile.
Programmini stand alone c'è qualcosina, ma quelli per Linux vanno compilati e chideono librerie ad hoc.
Una via facile e cross platform è fare uno script Python invocando la libreria ``python-docx`` .
Fase uno
Prima di fare lo script va installata la libreria ``python-docx``. Per il mondo Debian e derivate basta dare la seguente istruzione:
sudo apt install python3-python-docx
Fase due
Creiamo lo script seguendo lo snip qui di seguito. A titolo di esempio il file sarà ``merge-docx.py`` :
# Inclusione della libreria python-docxfrom docx import Document
# Creazione degli oggettidocs = []docsTitles = []
# Creazione dell'lenco dei file DocX da uniredocsTitles.append('Files/file001.docx')docsTitles.append('Files/file002.docx')docsTitles.append('Files/file003.docx')docsTitles.append('Files/file004.docx')
# Inizio del loopi = 0for item in docsTitles: docs.append(Document(item))
# Inserimento del salto pagina if i > 0: # Adding a page break docs[i].add_page_break()
# Appende il file for element in docs[i].element.body: docs[0].element.body.append(element)
# Incremento dell'indice di 1 i = i + 1
# Salavataggio del file che unisce tuttodocs[0].save('./NomeFileMerge.docx')
Fase tre
Eseguiamo lo script.
Nel mondo Linux possiamo eseguirlo come segue:
python merge-docx.py
Nota
Lo script funziona SOLO con file .docx .
I vecchi file .doc di Word sono binari e sono tutto un altro formato. Pertanto se vogliano unire file .doc con questa tecnica dobbiamo prima convertirli in .docx .
Pssiamo usare, ad esempio, unoconv , con la seguente sintassi:
unoconv -d document --format=docx Files/*.doc