Question
Existe-t-il un moyen de spécifier libreoffice
, via la ligne de commande, d'utiliser Cambria
pour les occurrences de Calibri
dans la génération PDF sans aucune interaction de l'utilisateur?
contexte
J'utilise cette commande:
libreoffice --headless --invisible --convert-to pdf --outdir images/output/ images/Mockups.pptx
ou celui-ci:
unoconv -f pdf -o images/output/ images/Mockups.pptx
convertir automatiquement un PPTX
en PDF
dans une machine virtualbox
lancée avec vagrant
et exécutant 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
L'original pptx
est édité par les utilisateurs de Windows et utilise la police Calibri
. Je ne peux pas leur demander d'utiliser des paramètres ou des polices différents.
Comme la police Calibri
ne fait pas partie de la distribution trusty
, la conversion PDF
effectuée par le libreoffice
perturbe la mise en page.
J'ai lu Cambria
est l'équivalent métrique de Calibri
.
Ainsi, comme indiqué, la question est de savoir comment indiquer à libreoffice
une certaine substitution de polices via la ligne de commande.
Le format de fichier pptx
est simplement un fichier Zip avec une extension différente, vous pouvez essayer de le décompresser et de le remplacer par du texte:
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
Nous avons eu un problème similaire avec LibreOffice sous Alfresco (qui fonctionne aussi sans tête). L'installation des packages de polices ChromeOS pour Carlito (équivalent Calibri) et Caladea (équivalent Cambria) a corrigé le problème en utilisant un indice à partir d'ici: https://wiki.debian.org/SubstitutingCalibriAndCambriaFonts . Changer les mappages dans LO ne faisait rien, ni sur le sans tête ni sur le bureau - seulement l’installation des paquets le résolvait. (Par souci d'exhaustivité, nous avions ajouté les entrées pour les mappages à LO registrymodifications.xcu et cela n'a donné aucun résultat, semble-t-il, l'édition des fichiers sous conf.d a priorité.
Les paquets installés étaient:
Remarque: $ ci-dessous est l'invite du système ...
Linux:
$ Sud apt-get install polices-crosextra-carlito polices-crosextra-caladea
FreeBSD: (Astuce: faites la recherche d'abord car son nom peut changer avec le temps)
$ pkg recherche cros
$ Sudo pkg installer crosextrafonts-caladea-20130214_1 crosextrafonts-carlito-20130920_2
Vous devrez peut-être exécuter:
$ fc-cache -r
Vérifier avec:
$ fc-match Calibri
Carlito-Regular.ttf: "Carlito" "Régulier"
$ fc-match Cambria
Caladea-Regular.ttf: "Caladea" "Régulier"
Fonctionne parfaitement maintenant.
Ces installations créent les fichiers suivants qui donnent les substitutions de polices souhaitées (selon votre plate-forme):
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
Ceux-ci sont liés depuis /etc/fonts/conf.d comme ceci:
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
FreeBSD (10.x):
/usr/local/etc/fonts/conf.avail/30-metric-aliases.conf
... lié ala ...
/usr/local/etc/fonts/conf.d/30-metric-aliases.conf@ -> /usr/local/etc/fonts/conf.avail/30-metric-aliases.conf