.net通过PDFsharp在System.Drawing中操作下划线粗细的方法

时间:2016-08-18 23:41:29

标签: c# .net system.drawing pdfsharp

我有兴趣调整/微调一些使用PDFsharp library写入PDF的代码。

问题是:当我的文字既粗体又带下划线时,下划线以及各自的文字都会变粗。我希望能够让下划线保持细长,而文本变为粗体。

查看PDFsharp的API以及System.Drawing的API,看起来没有简单的方法可以做到这一点。

有人知道吗?

下面是使用PDFsharp lib的代码的当前输出示例,我非常确定它会对System.Drawing和其他GDI / WPF实现进行一些包装调用。

我们正在使用GDI我很确定。我们在这里进行的主要PDFsharp调用是

public void DrawString(string s, XFont font, XBrush brush, double x, double y, XStringFormat format, double width)

enter image description here

1 个答案:

答案 0 :(得分:1)

PDFsharp在生成PDF文件时不使用System.Drawing,因此操作System.Drawing在您的情况下不会有任何好处。

PDFsharp使用字体表中的下划线位置和下划线粗细。

由于PDFsharp是开源的,您可以修改它以使用固定的下划线粗细。

或编写一个帮助方法,绘制没有下划线的文本,然后在文本下面画一条线。这可以在不修改PDFsharp的情况下完成,您可以轻松升级到更高版本。

更新:另一个选项:使用MigraDoc创建PDF文件。

MigraDoc使用PDFsharp创建PDF文件,但MigraDoc使用自己的代码绘制文本下划线,常规和粗体文本将具有相同的下划线。