我在哪里可以获得Microsoft Word的Font-family到语言对映射

时间:2015-03-05 02:56:21

标签: ms-word multilingual docx4j

我使用docx4j以编程方式生成MSWord 2011双语文件(包含2种语言的文本)。我的计划是根据文本中的语言设置文本的字体系列。例如:当我通过拉丁语和印度语时,所有包含英语的文本都将包含“Times New Roman”字样。和印地语作为'梵文'作为他们的字体类型。

MS Word文档没有任何相关信息。任何帮助,以找到MS-Word支持的所有主要语言的列表及其相应的字体家族赞赏。

1 个答案:

答案 0 :(得分:1)

起点是rFonts element

正如它所说:

  

此元素指定用于显示的字体   此运行的文本内容。在一次运行中,最多可能有   存在四种类型的内容,每种内容都应允许使用a   独特的字体:

     

•ASCII

     

•高ANSI

     

•复杂脚本

     

•东亚

     

这些字体的使用应由Unicode确定   除非通过手动覆盖,否则运行内容的字符值   使用cs元素

有关进一步评论以及docx4j(在其PDF输出中)用于模仿Word的实际算法,请参阅RunFontSelector

为简化一点,你需要弄清楚Word将用于你的印地语的4个属性中的哪一个(来自它的Unicode字符值),然后将该属性设置为你想要的字体。

您可以将属性设置为实际的字体名称,或使用主题参考(请参阅RunFontSelector代码了解其工作原理)。

如果我是你,我会在Word中创建一个docx,你可以根据需要设置它,然后查看它的底层XML。如果它在字体属性中使用主题引用,您可以使用您创建的docx作为docx4j工作的模板,也可以手动“解析”引用并将其替换为实际的字体名称。

如果您想以编程方式重现Word为您创建的内容,可以将docx上传到docx4j webapp以生成合适的代码。

最后,请注意打开docx的计算机上需要提供字体。 (除非字体嵌入在docx中)如果不是,则可以替换另一种字体。