0

我正在使用 ASPOSE.Slides 创建一个 .pptx 文件。我正在尝试使用 Aspose 嵌入字体,但由于某些问题它无法正常工作。因此,我正在寻找实现相同功能的替代选项。

我想将我的自定义字体嵌入到 .pptx 文件中。您能否提供使用 Apache poi 或其他在 MS Power Point 中嵌入字体的建议。

请不要给出静态或本地系统的答案。

4

4 回答 4

0

如上所述,您可以在没有 Apache 的情况下轻松完成。

官方网站

您可以通过访问 C:\Windows\Fonts 查看/添加/删除字体

于 2018-09-18T09:53:30.163 回答
0

@Bhagyashree,

Aspose.Slides 允许您在演示文稿中嵌入字体。我建议您尝试在您的终端上使用以下示例代码来达到目的。

    String dataDir = Utils.getDataDir(AddEmbeddedFonts.class);
    Presentation pres=new Presentation(dataDir+"");
    IFontData[] allFonts = pres.getFontsManager().getFonts();
    IFontData[] embeddedFonts = pres.getFontsManager().getEmbeddedFonts();
    for (IFontData font : except(allFonts, embeddedFonts))
    {
        pres.getFontsManager().addEmbeddedFont(font,EmbedFontCharacters.All);
    }

    pres.save("saved.pptx",SaveFormat.Pptx);

如果您遇到任何问题,请随时分享。我在 Aspose 担任支持开发人员/传播者。

于 2018-09-18T15:12:30.003 回答
0

在 POI 4.1.0(将在 2019 年 2 月左右发布)中,我还在 Apache POI 中添加了字体嵌入功能。提供的方法只是“半故事”,因为您不能简单地添加 .ttf/.otf 文件。

为了将 True-Type (.ttf) 或 Open-Type (.otf) 字体转换为与 Office 兼容的EOT/MTX字体,我使用的是sfntly。snftly 类尚未作为 maven 工件提供,我不喜欢将整个块导入 POI,也不喜欢以我的名义发布重新打包的 googles 代码版本,因此您需要克隆和调整我的示例项目

要将 MTX 字体流添加到幻灯片(HSLF 或 XSLF,即SlideShow它们的通用界面),您可以调用:

org.apache.poi.sl.usermodel.SlideShow.addFont(InputStream fontData)

对于字体子集,您需要使用的代码点,可以通过以下方式提取:

org.apache.poi.sl.extractor.SlideShowExtractor.getCodepoints(String typeface, Boolean italic, Boolean bold)

为了获取有关 MTX 字体数据流的信息,有一个新的辅助类:

org.apache.poi.common.usermodel.fonts.FontHeader
于 2018-12-29T00:18:41.670 回答
-1

我不知道如何用 Apache 更改它,但是您可以使用 powerpoint 轻松更改它...

于 2018-09-18T09:37:25.997 回答