LibreOffice Writer — загрузка файла из командной строки (CLI) и сохранение его

LibreOffice Writer — загрузка файла из командной строки (CLI) и сохранение его

Я заметил, что LibreOffice Writer обладает хорошим качеством: при загрузке файла .docx и его немедленном сохранении структура сохраненного файла немного отличается от исходного файла — в хорошем смысле — это как бы решает некоторые проблемы со структурой .docx и т. д. (что позволяет мне позже лучше обрабатывать его с помощью Apache POI).

Я хотел бы просто использовать его для исправления файлов .docx, загружая и сразу сохраняя их — либо из командной строки, либо каким-то образом, напрямую вызывая функции Writer.

Буду признателен за некоторые указания по решению.

решение1

Вы можете использовать libreofficeинструмент CLI, у него есть --convert-toопция конвертации файлов, которую можно использовать для конвертации в тот же формат, который вам нужен. Если вы используете это без указания выходного каталога, топерезаписываетисходный файл, и вы не можете дать ему другое имя выходного файла. Обойти это можно, преобразовав файл в /tmp/first и затем переместив его обратно:

libreoffice --convert-to docx --outdir /tmp/ NAME.DOCX && mv /tmp/NAME.DOCX ./NEWNAME.DOCX

Вам просто нужно изменить жирные части, набранные заглавными буквами,NAME.DOCXк вашему входному имени файла иNEWNAME.DOCXк желаемому имени выходного файла.

В bashкомандной строке это можно сократить до:

libreoffice --convert-to docx --outdir /tmp/ NAME.DOCX && mv !#:4!#:5 ./NEWNAME.!#:2

Это используетbashИстория Расширениетак что вам не придется вводить пути и имена файлов несколько раз – вам просто нужно изменитьNAME.DOCXк вашему входному имени файла иNEWNAMEк желаемому имени выходного файла без расширения.

Связанный контент