Csharp/C#教程:PDFsharp在图形下绘制文本分享


PDFsharp在图形下绘制文本

我正在使用PDFsharp从头开始生成PDF文档。 我试图在渐变填充矩形上面写文字。 生成文档后,渐变显示在文本顶部,使文本完全隐藏。

using (var document = new PdfDocument()) { var page = document.AddPage(); var graphics = XGraphics.FromPdfPage(page, XGraphicsPdfPageOptions.Append); graphics.SmoothingMode = XSmoothingMode.HighQuality; var bounds = new XRect(graphics.PageOrigin, graphics.PageSize); graphics.DrawRectangle( new XLinearGradientBrush( bounds, XColor.FromKnownColor(XKnownColor.Red), XColor.FromKnownColor(XKnownColor.White), XLinearGradientMode.ForwardDiagonal), bounds); graphics.DrawString( "Hello World!", new XFont("Arial", 20), XBrushes.Black, bounds.Center, XStringFormats.Center); document.Save("test.pdf"); document.Close(); } 

如何在矩形顶部渲染文本?

我发现之后绘制的任何图像都会出现在矩形的顶部。 这是唯一隐藏的文字。

试试这样:

 using (var document = new PdfDocument()) { var page = document.AddPage(); var graphics = XGraphics.FromPdfPage(page, XGraphicsPdfPageOptions.Append); graphics.SmoothingMode = XSmoothingMode.HighQuality; var bounds = new XRect(graphics.PageOrigin, graphics.PageSize); var state = graphics.Save(); graphics.DrawRectangle( new XLinearGradientBrush( bounds, XColor.FromKnownColor(XKnownColor.Red), XColor.FromKnownColor(XKnownColor.White), XLinearGradientMode.ForwardDiagonal), bounds); graphics.Restore(state); graphics.DrawString( "Hello World!", new XFont("Arial", 20), XBrushes.Black, bounds.Center, XStringFormats.Center); document.Save("test.pdf"); document.Close(); } 

不幸的是,根据这篇论坛post ,图书馆的代码中存在一个错误。 解决方法是在操作之间SaveRestore XGraphics对象的状态。

使用当前版本的PDFsharp 1.50时,第一篇文章中给出的代码工作正常。

当使用PDFsharp版本1.3x或更早版本时,需要在上一个答案中给出的解决方法。

上述就是C#学习教程:PDFsharp在图形下绘制文本分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1251018.html

(0)
上一篇 2022年11月8日
下一篇 2022年11月8日

精彩推荐