2010-07-14 2 views
2

Является ли кто-нибудь знакомым с .fntdata структурой встроенного шрифта? Это используется в PowerPoint 2007/2010 при встраивании шрифта в презентацию (в отличие от .odttf, который используется в Word 2007/Word 2010). В принципе, я просто хочу преобразовать это в файл .ttf или .odttf, чтобы его можно было прочитать с помощью приложений WPF/Silverlight.Преобразование файла .fntdata в .ttf

One page стандартных состояний следующие:

гр. В стандарте указано, что application/x-fontdata указывает, что шрифт должен быть сохранен в виде растрового шрифта (каждый глиф хранится в качестве растрового изображения).

PowerPoint хранит TrueType и OpenType шрифты (Embed-Open-Type-Format, Micro-Type-Exp-Format) в части этого типа. Word не читает или не пишет этот тип контента.

Что полезно знать, что, по крайней мере, есть направление для исследования, но я не уверен, куда идти отсюда с точки зрения того, как конвертировать, если можно конвертировать и т. Д. (В. NET предпочтительнее).

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

Чтобы увидеть этот шрифт, перейдите в PowerPoint 2007/2010, создайте один пустой слайд и добавьте текстовое поле. Добавьте текст и измените шрифт на "Chiller" (например). Затем перейдите к Orb (что круглый предмет сверху), нажмите Сохранить как ..., а затем прямо рядом с кнопкойсохранения Нажмите Tools ниспадающее меню, а затем нажмите на Сохранить параметры. Как только появится диалоговое окно, внизу выберите Вставить шрифты в файл (не имеет значения, какое радио ниже того, что вы выберете). Хорошо, теперь спасите, и все готово. Теперь закройте файл и найдите его в том месте, где вы только что его сохранили. Переименуйте расширение от .pptx до .zip и затем разархивируйте его. В этой папке перейдите к /ppt/fonts/, и вы найдете там несколько шрифтов. Любой из них сделает это.

Есть ли у кого-нибудь идеи?

ответ

2

Я думаю, что у меня есть близко к ответу за вас. Шрифты этого типа имеют формат Embedded Open Type (EOT), который следует за спецификацией PowerPoint Binary File Format. Вы можете больше узнать о деталях EOT на W3C's Embedded Open Type (EOT) file format.

Я проверил несколько шрифтов против этого, как Calibri Жирный и Chiller, делая обе инструкции вы дали выше PowerPoint, а затем также с помощью Microsoft Web Embedding Fonts Tool (WEFT). Они оба создают одинаковые размеры файлов, но шифрование выглядит по-другому - я предполагаю, что WEFT применяет другое шифрование из-за того, как он создает EOT для определенных сайтов. На приведенной выше странице W3C может быть больше информации о шифровании.

Хорошей новостью является то, что, по крайней мере, на веб-странице вы можете использовать генерируемый PowerPoint «как есть». В PowerPoint встроенного шрифта я создал шрифт холодильного, который font1.fntdata при встраивании, я просто взял, что и создал веб-страницу, используя его, и он работал просто отлично:

<html> 
    <head> 
     <title>Chill</title> 
     <style type="text/css"> 
     @font-face{ 
     font-family: Chiller; 
     src: url('font1.fntdata'); 
     } 
     .Chiller{ 
     font-family: Chiller; 
     font-size:60px; 
     color:#000; 
     } 
     </style> 
    </head> 
    <body> 
     <div class="Chiller">Cold Beer</div> 
     Free! 
    </body> 
</html> 

Я не зашел так далеко, чтобы проверить, могут ли они напрямую использоваться в WPF/Silverlight, но по крайней мере теперь вы знаете, с чем имеете дело.

+0

o em jee! вау, у меня была эта проблема в течение столь длительного времени, я почти думал, что это невозможно решить. это блестящее понимание! позвольте мне провести несколько тестов по этому поводу. –

+0

отлично поработал в HTML. все еще пытаясь понять, можно ли его использовать в WPF/Silverlight, но это огромно. Спасибо! –

1

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

Первый шаг, очевидно, заключается в извлечении глифов. Быстрый поиск не дает абсолютно ничего в Интернете о файлах .fntdata. Я попробовал разглядеть один в шестнадцатеричном редакторе, но ничего не вышло (кроме имени шрифта в виде строки). Кроме того, TrID понятия не имел, что там было. Вы можете экспериментировать и посмотреть, сможете ли вы извлечь какие-либо полезные данные. – Желаю вам удачи.

Если вы выяснили, как получить глифы, вам нужно просто вставить их в TTF-файл. Согласно OpenType file spec (который охватывает файлы .ttf), TTF могут содержать растровые глифы. (В частности, см. EBDT table). Я не думаю, что есть .NET-реализация парсера или писателя TTF, поэтому вам придется начинать с нуля, чтобы реализовать спецификацию. Опять же, я желаю вам удачи.

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

+0

Спасибо, что посмотрели на это, это дает мне немного больше знаний, чем у меня было около часа назад. Да, это то, что мне нужно выяснить, так как это приложение конвертера. Но мальчик это пугающий! –

Смежные вопросы