Вопрос
Есть ли любой способ указать к libreoffice
, через командную строку, для использования Cambria
для происшествий Calibri
в поколении PDF без потребности какого-либо взаимодействия с пользователем?
Контекст
Я использую эту команду:
libreoffice --headless --invisible --convert-to pdf --outdir images/output/ images/Mockups.pptx
или этот:
unoconv -f pdf -o images/output/ images/Mockups.pptx
автоматически преобразовать a PPTX
кому: PDF
в a virtualbox
машина, запущенная с vagrant
выполнение ubuntu/trusty64
.
Vagrantfile:
config.vm.box = "ubuntu/trusty64"
[...]
config.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
sudo apt-get install -y unoconv imagemagick default-jdk ant docbook-xsl fop libxml2-utils xsltproc php5-cli
SHELL
Оригинал pptx
редактируется людьми окна использования и использует Calibri
шрифт. Я не могу потребовать, чтобы они использовали различные настройки или шрифты.
Как Calibri
шрифт не находится в trusty
распределение, PDF
преобразование, сделанное libreoffice
смешивает расположение.
Я читал Cambria
метрически-эквивалентно Calibri
.
Так, как указано, вопрос состоит в том, как сообщить libreoffice
для определенной замены шрифтов через командную строку.
Формат файла pptx
- это просто zip-файл с другим расширением, вы можете попробовать разархивировать его и выполнить замену текста:
unzip -d tmp Mockups.pptx
find tmp -type f | xargs sed -i 's/Calibri/Cambria/g'
( cd tmp; zip -r ../Mockups2.pptx . )
rm -Rf tmp
У нас была похожая проблема с LibreOffice под Alfresco (который также работает без головы). Установка пакетов шрифтов ChromeOS для Carlito (эквивалент Calibri) и Caladea (эквивалент Cambria) исправила это, воспользовавшись подсказкой здесь: https://wiki.debian.org/SubstitutingCalibriAndCambriaFonts . Изменение отображений в LO ничего не сделало ни на головном компьютере, ни на рабочем столе - только установка пакетов решила это. (Для полноты мы добавили записи для отображений в LO registrymodification.xcu, и это ничего не дало на обеих платформах - кажется, редактирование файлов в файле conf.d имеет преимущество).
Установлены следующие пакеты:
Примечание: $ ниже - приглашение системы ...
Linux:
$ sudo apt-get install fonts-crosextra-carlito fonts-crosextra-caladea
blockquote>FreeBSD: (Подсказка: сначала выполните поиск как имя может со временем меняться)
$ pkg search cros
$ sudo pkg install crosextrafonts-caladea-20130214_1 crosextrafonts-carlito-20130920_2
blockquote>Вы может потребоваться выполнить:
$ fc-cache -r
blockquote>Проверить с помощью:
$ fc-match Calibri
Carlito-Regular.ttf: "Carlito" "Regular"
$ fc-match Cambria
Caladea-Regular.ttf: "Caladea" "Regular"
blockquote >Отлично работает сейчас.
Эти установки создают следующие файлы, которые дают желаемые замены шрифтов (в зависимости от вашей платформы):
Linux (Ubuntu 14.x):
/ etc / fonts / conf.avail / 30-0-google-crosextra-caladea-fontconfig.conf
/etc/fonts/conf.avail/30-0-google-crosextra-carlito-fontconfig.conf
blockquote>Они связаны с /etc/fonts/conf.d следующим образом:
30-0-google-crosextra-caladea-fontconfig.conf -> ../conf.avail /30-0-google-crosextra-caladea-fontconfig.conf
30-0-google-crosextra-carlito-fontconfig.conf -> ../conf.avail/30-0-google-crosextra- carlito-fontconfig.conf
blockquote>FreeBSD (10.x):
/usr/local/etc/fonts/conf.avail/30-metric-aliases. conf
blockquote>... связанный раздел ...
/usr/local/etc/fonts/conf.d/30-metric-aliases.conf@ -> /usr/local/etc/fonts/conf.avail/30-metric-aliases.conf [ 1127] blockquote>