Извлечь глифы шрифтов - PullRequest
0 голосов
/ 23 ноября 2010

У меня есть проблема в моей голове, любая помощь будет оценена. Есть ли функция PHP или библиотека, которая может извлечь некоторые глифы из файла шрифта?

Edit: Чтобы извлечь некоторые глифы, я хотел создать новый файл шрифта на основе извлеченных глифов (поэтому он имеет меньшие байты) или просто получить глифы и создать из него данные шрифта в кодировке base64, чтобы я мог встраивать его через @ font- лицо. Я просто хотел избавиться от бесполезных глифов, поэтому CSS (base64) или файл шрифта будут загружаться быстрее.

Ответы [ 3 ]

0 голосов
/ 25 ноября 2010

Вы пытаетесь сделать поднабор шрифта, не так ли?Эта проблема была тщательно исследована сообществом встраиваемых шрифтов.

Тем не менее, здесь нет однозначного ответа.В прошлый раз, когда я проверял, люди пишут программы на Perl / C для извлечения двоичных данных из файлов шрифтов, основываясь на спецификации TTF / OTF.

Если вы используете латинский шрифт, не брат, потому что он достаточно малЕсли вы используете шрифт CJK, как я, FontForge может помочь вам скопировать и вставить символы вручную.Кроме этого вам нужно написать скрипт / программу самостоятельно.

0 голосов
/ 04 июля 2019

Я сделал это один раз, используя python: Вот фрагмент кода

def get_pdf_fontobjects(self, ):
    pdffile = self.pdffile
    pdf_font_objects = []
    p = subprocess.Popen(["pdffonts", pdffile], shell=False, stdout=subprocess.PIPE)
    for line in p.stdout:
        line = line.strip()
        g = re.search("^(\S+)\s.+?yes\s+(\d+)\s+(\d+)$", line)

        '''if g and g.group(1) in self.fonts2process:
            pdf_font_objects.append(g.group(2))'''

        if g:
            font_name = g.group(1)
            for font_pattern in self.fonts2process:
                if re.search(font_pattern, font_name):
                    pdf_font_objects.append(g.group(2))

    return pdf_font_objects

и font2process могут быть списком имен шрифтов: fonts2process = ['Arial-Unicode-MS', «Шрути», 'ArialUnicodeMS', «ТТ», 'Raavi', 'SolaimanLipi', 'AnjaliOldLipi', 'Vrinda', 'Surekh', 'AAAAAB + ArialUnicodeMS', 'AAAAAG + VArialUnicodeMS', 'DNCDIV + Tunga_00', 'JGTFDM + Tunga, Bold_00', 'Latha', «Мангал», 'Surekh', «Гаутами» ]

Но работа над определенным шрифтом без разрешения производителя является незаконной *

0 голосов
/ 23 ноября 2010

Я могу понять ваш вопрос двумя способами.Либо вы хотите извлечь изображение непосредственно из файла шрифта, либо вы хотите напечатать этот шрифт как текст на изображении.

Но оба имеют одинаковый ответ:

Попробуйте GD илиImageMagick для извлечения изображения глифа из файла шрифта, используя шрифт для печати этого символа в изображение.Не открывайте шрифт как изображение, используйте шрифт так, как это было задумано.Затем вы можете распечатать глиф любого размера и использовать его так, как хотите.

...