2016-08-18 73 views
0

我感兴趣的调整,以操纵System.Drawing中下划线厚度方式/微调这是越来越写入使用PDFsharp library一个PDF一些代码。.NET通过PDFsharp

的问题是:当我的文字,既大胆,并强调,下划线变得更厚,以及其各自的文本。我希望能够在文字变得粗体的同时让底线保持细线。

在PDFsharp的API展望以及该的System.Drawing,它看起来像有这样的没有简单的方法。

有谁知道吗?

以下是使用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

生成PDF文件时,所以操作System.Drawing中不会做任何好你的情况PDFsharp不使用System.Drawing中。

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

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

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

更新:另一种选择:使用MigraDoc创建PDF文件。

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

+0

@lewiSnort更新了我的答案 - MigraDoc可能是您的一个解决方案。 –

+0

不幸的是MigraDoc不适合我们,但很高兴知道。我喜欢'解决方法'的解决方案,而不是修改第三方代码,但这是很好的信息,或者,也许我们可以向PdfSharp :)贡献一个功能。谢谢! – lewiSnort