首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDFsharp DrawString线条高度

PDFsharp DrawString线条高度
EN

Stack Overflow用户
提问于 2015-09-15 10:56:25
回答 2查看 1.5K关注 0票数 0

我正在使用PDFsharp (http://www.pdfsharp.net/)来绘制一个字符串。我希望文本被放置在位置( 0,0),但是当它渲染到PDF时,X位置是0,但是文本的顶部是向下偏移的。我认为这是由于字体的行高,因为当我突出显示文本时,我可以看到突出显示超出了顶部和底部。如何让PDFsharp在没有填充的情况下定位文本,使文本的顶部恰好位于标签的边缘?

这是我用来绘制文本的代码片段:

代码语言:javascript
复制
XFont font = new XFont(text.Font, 
              XUnit.FromMillimeter(text.Height), XFontStyle.Regular);

gfx.DrawString(text.Content, font, textLayer,
                new XPoint(XUnit.FromMillimeter(0), XUnit.FromMillimeter(0)), 
                 XStringFormats.TopLeft);
EN

回答 2

Stack Overflow用户

发布于 2015-09-15 14:06:37

填充是字体的一部分。有些字符有变音符号-有些甚至有两个,一个堆叠在另一个之上。

你可以画"u","A",“base”或"Ǻ“--它们将共享相同的基线。

我不知道您是否可以从字体中查询升降器的高度,以使"T“的顶栏位于0行。

在最坏的情况下,您可以在生成的PDF文件中测量“填充”,并将其用作偏移量,以在负值位置绘制字符串。

但是,如果文本发生变化,您可能会丢失重要的变音符号。

票数 0
EN

Stack Overflow用户

发布于 2015-09-16 12:55:30

这就是我最终要做的。将字符串转换为XGraphicsPath。然后使用GdiPath获取文本每边的最小/最大点。在我得到它们之后,我能够计算出最高字母的顶部在哪里,并减去与原始位置(具有填充)的差值。然后,我可以绘制实际的文本偏移该值。

代码语言:javascript
复制
XGraphicsPath path = new XGraphicsPath();
    XFont font = new XFont(text.Font, XUnit.FromMillimeter(text.Height), XFontStyle.Regular);
    //path.AddString with my string details

    PointF[] points = path.Internals.GdiPath.PathPoints;

    foreach (PointF point in points)
    {
        //Get leftmost point x value
        if (minX == null || point.X < minX)
        {   
            minX = point.X;
        }

        //Get top most point y value
        if (minY == null || point.Y < minY)
        {
            minY = point.Y;
        }

        //Get top most point y value
        if (maxX == null || point.X > maxX)
        {
            maxX = point.X;
        }

        //Get bottom most point y value
        if (maxY == null || point.Y > maxY)
        {
            maxY = point.Y;
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32576988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档