我想扩展位于传统MS Windows字体包中的truetype字体和附加符号,并使用它生成新的pdf文档。有可能吗?
答案 0 :(得分:2)
使用内置EUDC编辑器设计自定义TrueType字体(Windows)
您可以使用任何能够处理 TrueType 或 OpenType 字体的字体编辑器,以及Microsoft提供并随Windows附带提供的最简单易用的最终用户字符编辑器。它被称为eudcedit,可以通过在运行窗口中执行 eudcedit 命令来运行它(可以通过按 Windows Key + R 来调用)。编辑器启动,您现在可以设计您自己的角色使用其图形工具,并定义他们的代码。完成角色设计后,您可以选择文件 - >来保存它们。字体链接 ...并在调用的对话框中按确定。
从现在开始,如果这些最终用户定义的字符实现了EUDC支持,它们可以被许多文本编辑和查看应用程序使用。如果他们使用Windows API显示文本,它将自动运行。
我们将设计一些简单的字符,并在PDF生成例程中使用生成的字体。请参见下图,其中显示了字符编辑器窗口,代码分配和字体保存过程。
指定的字符代码在前面的图像上突出显示,我们使用默认分配的字符代码,但可以使用任何允许的代码。我们可以使用设计和保存的角色并创建包含它的PDF文件。 为了使它工作,让我们从windows fonts目录复制生成的字体,并通过将其扩展名从tte更改为ttf来重命名生成的文件。
假设操作系统安装在“ C:\ Windows ”并且我们要将文件复制到“ C:\ customfonts \ eudc.ttf ”它看起来如下(使用命令提示符)。以下代码生成包含我们创建的字符的PDF文件(使用Apitron.PDF.Kit for .NET的API):
// create document
FlowDocument document = new FlowDocument() { Margin = new Thickness(5) };
// lets create the village, using \uE000 charcode for each symbol
document.Add(new TextBlock("\uE000\uE000\uE000\uE000\uE000\uE000\uE000\uE000")
{ Font = new Font(@"c:\customfonts\eudc.ttf", 20) });
// generate PDF document
using (Stream stream = File.Create("CustomFontsUsageSample.pdf"))
{
document.Write(stream, new ResourceManager(), new PageBoundary(Boundaries.A4));
}
此外,此自定义字体将嵌入到生成的文档中,使其可以在其他显然没有安装自定义字体的设备上查看。