Altova XMLSpy 2023 Enterprise Edition

格式处理器和PDF阅读器对字体的处理

格式处理器(例如FOP)用来创建PDF,PDF阅读器(通常是Adobe Reader)用来读取PDF。

 

要对PDF进行布局,格式处理器需要了解文档中使用的字体的详细信息,特别是所有使用的字形的宽度。此信息用于计算行长、连字符、对齐方式等。这一信息被称为字体度量,并与每种字体一起存储。一些格式处理器可以直接从系统的字体文件夹中读取度量。其他处理器(例如FOP)需要特殊格式的度量才能读取它们。当格式处理器可以使用字体度量时,它才可以对PDF进行布局。因此,请确保您在文档中使用的所有字体的字体度量文件对您正在使用的格式处理器可用。

 

格式处理器可以引用字体或将其嵌入PDF文件中。通常,如果引用了字体,PDF阅读器(例如Adobe Reader)会先在其自己的字体资源文件夹(包含Base 14字体)中查找该字体,然后再在系统的字体文件夹中查找。如果该字体可用,则将在PDF显示时使用。否则,阅读器将使用其资源文件夹中的替代字体或生成错误。替代字体可能具有不同的度量,因此可能会导致显示错误。

 

如果格式处理器在PDF文件中嵌入了字体,则PDF阅读器将使用嵌入的字体。格式处理器可以嵌入整个字符集,或仅嵌入文档中使用的字形的子字符集。这一因素会影响PDF文件的大小,并可能导致与字体使用相关的版权问题(参见下方注意事项)。当您为您的格式处理器设置选项时,可能需要考虑如何在这两个选项中进行选择。

 

XMLSpy和PDF字体

在XMLSpy中,PDF文档通常通过使用外部FO处理器(例如FOP)处理XSL-FO文档,从XSL-FO文档(也称为FO文档)生成。(在“选项”对话框中,您可以指定FO处理器的位置。这允许从XMLSpy用户界面启动FO处理。)

 

XSL-FO文档本身是通过使用XSLT样式表处理XML文档而生成的。(为此,您可以使用Altova的XSLT引擎(内置于XMLSpy)或外部XSLT引擎。)

 

PDF文档的格式,包括所有文本的字体属性,都在XSL-FO文档中指定。如果您使用的格式处理器可以直接从字体中读取所需字体的度量,您只需要在格式处理器中配置字体的路径即可。然而,如果您使用FOP作为格式处理器,则需要为其提供正确的字体度量文件,以用于非Base-14字体。

 

为格式处理器提供字体

大多数格式处理器(包括FOP)已经可以使用Base 14字体。为了正确地为格式处理器指定字体,您需要知道格式处理器识别它们的名称。这就是格式处理器所提供的基本字体支持。但是,您可以通过执行一些针对您所使用的格式处理器的简单步骤来增加格式处理器可用的字体数量。以下是FOP的步骤。

 

在FOP中设置附加字体支持的一般步骤

要使附加字体可用于FPO,您需要执行以下操作:

 

1.从PostScript或TrueType字体文件生成所需字体的字体度量文件。FOP提供PFM读取器和TTF读取器来分别将PostScript和TrueType字体转换为XML字体度量文件。有关如何执行此操作的详细信息,请参见FOP:字体页面。

2.设置FOP配置文件以使用所需的字体度量文件。为此,请在FOP配置文件中输入有关字体文件的信息。请参见FOP:字体

3.fop.bat文件中,编辑最后一行:

 

         "%JAVACMD%" […] org.apache.fop.cli.Main %FOP_CMD_LINE_ARGS%

 

 

以包括配置文件的路径:

 

"%JAVACMD%" […] org.apache.fop.cli.Main %FOP_CMD_LINE_ARGS% -c conf\fop.xconf

 

在FOP上(FOP配置文件中)注册了度量文件,并将FOP可执行文件设为读取配置文件后,附加字体就可用于创建PDF。

 

设置FOP配置文件

FOP配置文件名为fop.xconf,位于FOP安装文件夹的conf文件夹中。该文件是一个XML文档,必须进行编辑才能使FOP正确读取字体度量文件。对于您想要FOP呈现的每种字体,在文档中由font元素占位符指示的位置上添加一个font元素:

 

<font metrics-url="arial.xml" kerning="yes" embed-url="arial.ttf">

         <font-triplet name="Arial" style="normal" weight="normal"/>

         <font-triplet name="ArialMT" style="normal" weight="normal"/>

</font>

 

在上列中是,

 

arial.xml

度量文件的URL;最好使用绝对路径。

arial.ttf

TTF文件的名称(通常位于%WINDIR%\Fonts中)。

Arial

指定当字体系列被定义为Arial时,将使用上述度量和TTF文件。

style="normal"

指定当字体样式被定义为normal(而不是italic)时,将使用上述度量和TTF文件。

weight="normal"

指定当字体粗细被定义为normal(而不是bold)时,将使用上述度量和TTF文件。

 

 

有关字体版权的注意事项:字体的使用受版权法的约束,其中包含不同的使用条款。因此,请确保您为该字体购买的许可证允许您嵌入字体,尤其是嵌入整个字体时。

 

字符集

请注意,字体的字符集各有不同。Base 14字体涵盖了ISO-8859-1字符,以及Symbol和Zapf Dingbats字体中的字形。如果您的文档包含Base 14字体未涵盖的字符,则必须使用在其字符集中包含该字符的字体。一些字体,例如Arial Unicode,提供Unicode所涵盖的字符。

 

© 2017-2023 Altova GmbH