3

У меня в офисе возникла небольшая деликатная проблема, заключающаяся в том, что группа имиджа бренда решила внести некоторые изменения в наш графический профиль. Это приводит к изменению шрифтов документа с "Times New Roman" на "Georgia".

Это означает, что у нас есть сотни документов, в которых нам нужно будет изменить шрифты.

Есть ли способ замены шрифтов из строки или сценария в Linux/Libreoffice или Windows/MS Office?

Возможно что-то вроде:

for i in *.doc; do
  libreoffice --font-substitution input-font="Times New Roman" output-font="Georgia" newfiles/$i $i;
done

Я надеюсь, что вы получите картину. Способ замены шрифтов "в массовом порядке":-)

Спасибо за ваши старания!

/Павел

3 ответа3

1

Спасибо нгулам!

Ваш ответ привел меня к поиску решений для командной строки, и теперь я получил его!

Поместите несколько файлов Officefiles (новые сжатые, такие как DOCX, PPTX, ODT) в каталог. Используйте копии. Не запускайте это на оригиналах. Затем создайте и запустите следующий скрипт Bash.

#!/bin/bash

for i in *.*; do

unzip -d tmp $i
find tmp -type f | xargs sed -i 's/"Times New Roman"/Georgia/g'
# find tmp -type f | xargs sed -i 's/"'Times New Roman'"/"Georgia"/g'
cd tmp; zip -r ../$i .
rm -Rf tmp

done

exit0

Когда сценарий завершен, шрифт "Times New Roman" был заменен на "Georgia" во всех файлах в каталоге.

/Павел

PS! Вторая строка кода, начинающаяся с "find", была необходима при замене "Times New Roman" на "Georgia", но не при замене, например, "Arial" на "Georgia". Это, вероятно, зависит от пробелов в "Times New Roman".

0

Некоторые вещи, о которых стоит задуматься, прежде чем вы даже подумаете о начале этого: Word использует стили для текстового формата. Когда вы копируете какой-то текст из другого средства записи, вы будете копировать туда стили, когда вы просто используете CTRL V. Если вы посмотрите на свою таблицу стилей, то увидите, что загружено множество стилей.

Если это так, ваш трюк изменить все за один раз НЕ будет работать

Чтобы это работало ВСЕ ваши стили должны быть основаны на нормальном стиле. Тогда все ваши тексты должны использовать стили независимо от форматирования, которое вы делаете. Только одно изменение шрифта, сделанное вручную, приведет к сбою. Это даже может сделать этого доктора коррумпированным.

Другая проблема заключается в том, что некоторые стили основаны на "Нет", размещая их на том же уровне, что и обычный стиль. Каждый из этих стилей должен быть изменен. Вы можете сделать это в VBA, задавая каждый стиль в этом формате и затем изменить его соответствующим образом.

Для себя. Я бы не делал это. Возьмите документ со временем. Поговорите с менеджерами по продажам и продуктам о том, какие из них наиболее часто используются, и начните с них.

0

В моей версии LibreOffice есть возможность заменить шрифт другим, см .: Tools>Options...>LibreOffice>Fonts

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .