LINUX.ORG.RU

История изменений

Исправление Einstok_Fair, (текущая версия) :

При сборке PDF/A выдаётся сообщение

«For PDF/A-1b, all fonts, even the base 14 fonts, have to be embedded! Offending font: /Helvetica»

На эту тему есть пара ссылок из гугла:
https://stackoverflow.com/questions/45435698/fo-to-pdf-a-conversion-with-apache-fop-java-library
http://apache-fop.1065347.n5.nabble.com/To-PDF-a-Conversion-without-licensed-fonts-java-td45365.html

Мне непонятно, почему на stackoverflow пишут что «FOP defaults to using Helvetica when no font-family is set», в то время как в документации написано, что в этом случае используется Times.

When FOP does not have a specific font at its disposal (because it's not installed in the operating system or set up in FOP's configuration), the font is replaced with «any». «any» is internally mapped to the Base-14 font «Times» (see above).

http://apache-fop.1065347.n5.nabble.com/Font-substitution-td11238.html

Are you sure you have specified the font family for the entire document? If you forget to specify the font-family then it defaults to «sans-serif,Symbol,ZapfDingbats» By default sans-serif maps to Helvetica, so that may be how it ends being used in your case.

А как указать шрифт всего документа?

Теперь дальше, почему нет шрифта Гельветика? Потому что он проприетарный. В википедии есть по этому поводу специальный раздел: Helvetica -> Nimbus Sans L

Есть ли такой? Да:
$ fc-list | grep "Nimbus Sans L" | sort
/usr/share/fonts/urw-fonts/n019003l.pfb: Nimbus Sans L:style=Regular
/usr/share/fonts/urw-fonts/n019004l.pfb: Nimbus Sans L:style=Bold
/usr/share/fonts/urw-fonts/n019023l.pfb: Nimbus Sans L:style=Regular Italic
/usr/share/fonts/urw-fonts/n019024l.pfb: Nimbus Sans L:style=Bold Italic
/usr/share/fonts/urw-fonts/n019043l.pfb: Nimbus Sans L:style=Regular Condensed
/usr/share/fonts/urw-fonts/n019044l.pfb: Nimbus Sans L:style=Bold Condensed
/usr/share/fonts/urw-fonts/n019063l.pfb: Nimbus Sans L:style=Regular Condensed Italic
/usr/share/fonts/urw-fonts/n019064l.pfb: Nimbus Sans L:style=Bold Condensed Italic
Откуда он взялся в системе?
$ qfile /usr/share/fonts/urw-fonts/n019003l.pfb
media-fonts/urw-fonts: /usr/share/fonts/urw-fonts/n019003l.pfb
Но непонятно, как сделать так, чтобы он использовался в FOP вместо гельветики.

У fop есть разные параметры командной строки, и если я запускаю его таким образом:

#!/bin/bash

FONT="Nimbus Sans L" 

/usr/bin/fop \
    -xml mybook.xml \
    -xsl /usr/share/sgml/docbook/xsl-stylesheets/fo/docbook.xsl \
 -param body.font.family "${FONT}" \
 -param title.font.family "${FONT}" \
 -param monospace.font.family "${FONT}" \
 -param symbol.font.family "${FONT}" \
 -pdfa1b mybook.pdf
то выдаётся уже другое сообщение:
WARNING: Font «Nimbus Sans L,normal,400» not found. Substituting with «any,normal,400».

Исправление Einstok_Fair, :

При сборке PDF/A выдаётся сообщение

«For PDF/A-1b, all fonts, even the base 14 fonts, have to be embedded! Offending font: /Helvetica»

На эту тему есть пара ссылок из гугла:
https://stackoverflow.com/questions/45435698/fo-to-pdf-a-conversion-with-apache-fop-java-library
http://apache-fop.1065347.n5.nabble.com/To-PDF-a-Conversion-without-licensed-fonts-java-td45365.html

Мне непонятно, почему на stackoverflow пишут что «FOP defaults to using Helvetica when no font-family is set», в то время как в документации написано, что в этом случае используется Times.

When FOP does not have a specific font at its disposal (because it's not installed in the operating system or set up in FOP's configuration), the font is replaced with «any». «any» is internally mapped to the Base-14 font «Times» (see above).

http://apache-fop.1065347.n5.nabble.com/Font-substitution-td11238.html

Are you sure you have specified the font family for the entire document? If you forget to specify the font-family then it defaults to «sans-serif,Symbol,ZapfDingbats» By default sans-serif maps to Helvetica, so that may be how it ends being used in your case.

А как указать шрифт всего документа?

Теперь дальше, почему нет шрифта Гельветика? Потому что он проприетарный. В википедии есть по этому поводу специальный раздел: Helvetica -> Nimbus Sans L

Есть ли такой? Да:
$ fc-list | grep "Nimbus Sans L" | sort
/usr/share/fonts/urw-fonts/n019003l.pfb: Nimbus Sans L:style=Regular
/usr/share/fonts/urw-fonts/n019004l.pfb: Nimbus Sans L:style=Bold
/usr/share/fonts/urw-fonts/n019023l.pfb: Nimbus Sans L:style=Regular Italic
/usr/share/fonts/urw-fonts/n019024l.pfb: Nimbus Sans L:style=Bold Italic
/usr/share/fonts/urw-fonts/n019043l.pfb: Nimbus Sans L:style=Regular Condensed
/usr/share/fonts/urw-fonts/n019044l.pfb: Nimbus Sans L:style=Bold Condensed
/usr/share/fonts/urw-fonts/n019063l.pfb: Nimbus Sans L:style=Regular Condensed Italic
/usr/share/fonts/urw-fonts/n019064l.pfb: Nimbus Sans L:style=Bold Condensed Italic
Откуда он взялся в системе?
FONT="Nimbus Sans L" 

$ qfile /usr/share/fonts/urw-fonts/n019003l.pfb
media-fonts/urw-fonts: /usr/share/fonts/urw-fonts/n019003l.pfb
Но непонятно, как сделать так, чтобы он использовался в FOP вместо гельветики.

У fop есть разные параметры командной строки, и если я запускаю его таким образом:

#!/bin/bash

/usr/bin/fop \
    -xml mybook.xml \
    -xsl /usr/share/sgml/docbook/xsl-stylesheets/fo/docbook.xsl \
 -param body.font.family "${FONT}" \
 -param title.font.family "${FONT}" \
 -param monospace.font.family "${FONT}" \
 -param symbol.font.family "${FONT}" \
 -pdfa1b mybook.pdf
то выдаётся уже другое сообщение:
WARNING: Font «Nimbus Sans L,normal,400» not found. Substituting with «any,normal,400».

Исправление Einstok_Fair, :

При сборке PDF/A выдаётся сообщение

«For PDF/A-1b, all fonts, even the base 14 fonts, have to be embedded! Offending font: /Helvetica»

На эту тему есть пара ссылок из гугла:
https://stackoverflow.com/questions/45435698/fo-to-pdf-a-conversion-with-apache-fop-java-library
http://apache-fop.1065347.n5.nabble.com/To-PDF-a-Conversion-without-licensed-fonts-java-td45365.html

Мне непонятно, почему на stackoverflow пишут что «FOP defaults to using Helvetica when no font-family is set», в то время как в документации написано, что в этом случае используется Times.

When FOP does not have a specific font at its disposal (because it's not installed in the operating system or set up in FOP's configuration), the font is replaced with «any». «any» is internally mapped to the Base-14 font «Times» (see above).

http://apache-fop.1065347.n5.nabble.com/Font-substitution-td11238.html

Are you sure you have specified the font family for the entire document? If you forget to specify the font-family then it defaults to «sans-serif,Symbol,ZapfDingbats» By default sans-serif maps to Helvetica, so that may be how it ends being used in your case.

А как указать шрифт всего документа?

Теперь дальше, почему нет шрифта Гельветика? Потому что он проприетарный. В википедии есть по этому поводу специальный раздел: Helvetica -> Nimbus Sans L

Есть ли такой? Да:
$ fc-list | grep "Nimbus Sans L" | sort
/usr/share/fonts/urw-fonts/n019003l.pfb: Nimbus Sans L:style=Regular
/usr/share/fonts/urw-fonts/n019004l.pfb: Nimbus Sans L:style=Bold
/usr/share/fonts/urw-fonts/n019023l.pfb: Nimbus Sans L:style=Regular Italic
/usr/share/fonts/urw-fonts/n019024l.pfb: Nimbus Sans L:style=Bold Italic
/usr/share/fonts/urw-fonts/n019043l.pfb: Nimbus Sans L:style=Regular Condensed
/usr/share/fonts/urw-fonts/n019044l.pfb: Nimbus Sans L:style=Bold Condensed
/usr/share/fonts/urw-fonts/n019063l.pfb: Nimbus Sans L:style=Regular Condensed Italic
/usr/share/fonts/urw-fonts/n019064l.pfb: Nimbus Sans L:style=Bold Condensed Italic
Откуда он взялся в системе?
$ qfile /usr/share/fonts/urw-fonts/n019003l.pfb
media-fonts/urw-fonts: /usr/share/fonts/urw-fonts/n019003l.pfb
Но непонятно, как сделать так, чтобы он использовался в FOP вместо гельветики.

Исходная версия Einstok_Fair, :

При сборке PDF/A выдаётся сообщение

«For PDF/A-1b, all fonts, even the base 14 fonts, have to be embedded! Offending font: /Helvetica»

На эту тему есть пара ссылок из гугла:
https://stackoverflow.com/questions/45435698/fo-to-pdf-a-conversion-with-apache-fop-java-library
http://apache-fop.1065347.n5.nabble.com/To-PDF-a-Conversion-without-licensed-fonts-java-td45365.html

Мне непонятно, почему на stackoverflow пишут что «FOP defaults to using Helvetica when no font-family is set», в то время как в документации написано, что в этом случае используется Times.

When FOP does not have a specific font at its disposal (because it's not installed in the operating system or set up in FOP's configuration), the font is replaced with «any». «any» is internally mapped to the Base-14 font «Times» (see above).

Теперь дальше, почему нет шрифта Гельветика? Потому что он проприетарный. В википедии есть по этому поводу специальный раздел: Helvetica -> Nimbus Sans L

Есть ли такой? Да:
$ fc-list | grep "Nimbus Sans L" | sort
/usr/share/fonts/urw-fonts/n019003l.pfb: Nimbus Sans L:style=Regular
/usr/share/fonts/urw-fonts/n019004l.pfb: Nimbus Sans L:style=Bold
/usr/share/fonts/urw-fonts/n019023l.pfb: Nimbus Sans L:style=Regular Italic
/usr/share/fonts/urw-fonts/n019024l.pfb: Nimbus Sans L:style=Bold Italic
/usr/share/fonts/urw-fonts/n019043l.pfb: Nimbus Sans L:style=Regular Condensed
/usr/share/fonts/urw-fonts/n019044l.pfb: Nimbus Sans L:style=Bold Condensed
/usr/share/fonts/urw-fonts/n019063l.pfb: Nimbus Sans L:style=Regular Condensed Italic
/usr/share/fonts/urw-fonts/n019064l.pfb: Nimbus Sans L:style=Bold Condensed Italic
Откуда он взялся в системе?
$ qfile /usr/share/fonts/urw-fonts/n019003l.pfb
media-fonts/urw-fonts: /usr/share/fonts/urw-fonts/n019003l.pfb
Но непонятно, как сделать так, чтобы он использовался в FOP вместо гельветики.