Как встроить шрифт в файл .pptx - PullRequest
0 голосов
/ 18 сентября 2018

Я создаю файл .pptx, используя ASPOSE.Slides. Я пытаюсь внедрить шрифт с помощью Aspose, но он не работает из-за некоторых проблем. Поэтому я ищу альтернативный вариант для достижения той же функциональности.

Я хочу встроить свой собственный шрифт в файл .pptx. Не могли бы вы дать предложения по встраиванию шрифтов в MS Power Point, используя Apache poi или другие.

Пожалуйста, не дайте ответов для статической или локальной системы.

Ответы [ 4 ]

0 голосов
/ 29 декабря 2018

С POI 4.1.0 (которая будет выпущена к февралю 2019 г.) я также добавил возможности встраивания шрифтов в 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
0 голосов
/ 18 сентября 2018

Как было сказано выше, вы можете легко это сделать без Apache.

Официальный сайт

Вы можете просмотреть / добавить / удалить шрифт, выбрав C: \ Windows \ Fonts

0 голосов
/ 18 сентября 2018

@ 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.

0 голосов
/ 18 сентября 2018

Я не знаю, как изменить его с помощью Apache, но вы можете легко изменить его с помощью powerpoint ...

...