@qvyue,
我已经在虚拟机上安装了Ubuntu 16.04(Linux)的新副本。 然后,我将您的DOCX Word文档转换为HTML格式。 然后,我设法观察到了这个问题。 (请参见输出文件 21.1 - using default fonts of Ubuntu 16.04.zip (774.5 KB))。
然后,我从Windows 10计算机的Linux文件夹中的自定义文件夹中复制了所需的Font文件,并运行了以下Java代码。 在这种情况下,我设法在相同的Linux操作系统上产生了正确的输出。 (请参见输出文件 21.1 - after copying windows fonts.zip (773.2 KB))。
Document doc = new Document(myDir + "224153/input.docx");
FontSettings fontSettings = new FontSettings();
addFontFolder(fontSettings, myDir + "CustomFonts/");
doc.setFontSettings(fontSettings);
doc.save(myDir + "224153/21.1/awjava-21.1.html");
private static void addFontFolder(FontSettings fontSettings, String folder)
{
FontSourceBase[] fontSourceBases = fontSettings.getFontsSources();
FontSourceBase[] newFontSourceBases = new FontSourceBase[fontSourceBases.length + 1];
System.arraycopy(fontSourceBases, 0, newFontSourceBases, 0, fontSourceBases.length);
newFontSourceBases[newFontSourceBases.length - 1] = new FolderFontSource(folder, true);
fontSettings.setFontsSources(newFontSourceBases);
}
因此,由于Aspose.Words for Java无法在您的计算机上找到以下字体文件,因此最终会发生此问题。 请将这些字体放在单独的文件夹中,然后运行上面的代码:
- Cambria Math
- 宋体
- Times New Roman
- SimSun
- SimHei