0

如何从 WinRT 平台读取字体文件流?我需要从 C# UWP 获取字体文件内容。据您所知,没有办法直接从 Fonts 文件夹中读取文件。FilePicker 也不适合我,因为选择此文件夹不是用户的责任。我找到了使用 DirectWrite (C++) 枚举字体名称的方法,然后用 COM 组件包装它,该组件将在 C# ( https://code.msdn.microsoft.com/FontExplorer-lets-you-f01d415e#content ) 中可用,我想知道是否可以做类似的事情来将字体文件内容读取为 byte[] 或 Stream?

4

3 回答 3

0

如果用户不手动导航到文件,则无法直接从 UWP 应用读取 TTF 文件。UWP 应用程序不允许在没有提示用户的情况下打开文件,除非它们位于特定位置。

此外,正如评论中提到的,许多字体在没有特殊许可的情况下可能无法分发或嵌入。

于 2015-11-05T16:35:51.610 回答
0

好消息:PDF 导出在 Windows 10 中没有多大意义。Windows 10 具有内置 PDF 打印机。所以,不如一石二鸟:实现打印,免费导出PDF。

于 2015-11-17T03:35:16.600 回答
0

假设您已经创建了IDWriteFontFile实例,那么很容易读取任意文件片段:

  1. 使用 . 获取文件引用密钥IDwriteFontFile::GetReferenceKey();
  2. 获取加载器接口IDWriteFontFile::GetLoader();
  3. IDWriteFontFileLoader::CreateStreamFromKey()使用步骤 1 中的密钥创建流实例。
  4. 用于IDWriteFontFileStream::ReadFileFragment/ReleaseFileFragment从文件流读取到缓冲区。
于 2016-01-07T16:55:56.543 回答