如何为 PDF 文档生成创建和使用自定义字体

How to create and use custom fonts for PDF document generation

我想用附加符号扩展位于传统 MS Windows 字体包中的 truetype 字体,并使用它生成新的 pdf 文档。可能吗?

使用内置 EUDC 编辑器设计自定义 TrueType 字体 (Windows)

您可以使用任何能够处理 TrueTypeOpenType 字体的字体编辑器,最简单可用的是最终用户字符编辑器由 Microsoft 提供并随 Windows 一起提供。它被称为 eudcedit,可以通过在 运行 window 中执行 eudcedit 命令来 运行 它(可以通过按 [ 来调用) =49=] Key + R). 编辑器启动,您现在可以使用其图形工具设计自己的角色并定义它们的代码。完成字符设计后,您可以通过选择 File -> Font Links… 并在调用的对话框中按 OK 来保存它们。

从现在开始,如果这些最终用户定义的字符实现了 EUDC 支持,它们就可以被许多文本编辑和查看应用程序使用。如果他们使用 Windows API 来显示文本,它将自动工作。

我们将设计一些简单的字符,并将生成的字体用于PDF生成例程。请参阅下图显示字符编辑器 window、代码分配和字体保存过程。

分配的字符代码在上图中突出显示,我们使用默认分配的代码,但可以使用任何允许的代码。我们可以使用设计并保存的角色并创建包含它的 PDF 文件。 为了让它工作,让我们从 windows 字体目录复制生成的字体,并通过将其扩展名从 tte 更改为 ttf 来重命名生成的文件。

假设OS安装在“C:\Windows”,我们要将文件复制到“” C:\customfonts\eudc.ttf” 它看起来如下(使用命令提示符)。以下代码生成包含我们创建的字符的 PDF 文件(使用 API of Apitron.PDF.Kit for .NET):

// 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));
}

下图展示了结果:

此外,此自定义字体将嵌入到生成的文档中,使其可以在其他显然没有安装我们的自定义字体的设备上查看。