在同一基线上用不同大小的字体书写文本

问题描述 投票:0回答:0

我正在使用 PdfSharpCore 创建 PDF 文件。

我需要在

XRect
中打印文本。我在网上找到了以下代码,用于弄清楚如何垂直放置文本。

double lineHeight = font.GetHeight();
double cyAscent = lineHeight * font.CellAscent / font.CellSpace;
double y = rect.Y + cyAscent;
graphics.DrawString(text, font, brush, rect.X, y);

这似乎完全符合我的要求。但是,我现在使我的代码更加复杂,以允许在同一行上使用不同的字体。有些字体可能比其他字体高,它们都应该有相同的基线。

我正在尝试了解如何调整上述逻辑来处理这种情况。

简单的方法就是做这样的事情。

double y = rect.Y + heightOfTallestFont;
graphics.DrawString(text, font, brush, rect.X, y);

但这似乎将文本打印得比应有的略低。

c# pdf fonts pdfsharp pdfsharpcore
© www.soinside.com 2019 - 2024. All rights reserved.