如何将XGraphics渲染的内容复用至PDF不同页面?
PdfSharp复用已绘制文本的解决方案
无法直接复用已绘制到
XGraphics对象上的文本。XGraphics的绘制操作是直接写入PDF内容流的,一旦完成绘制,内容就固定为PDF文档的一部分,没有内置机制可以将已绘制元素移动或复制到其他位置。你提到的
System.Drawing.Graphics.AddMetafileComment在PdfSharp-GDI版本中没有对应的可访问接口,PdfSharp并未将绘制操作封装为可提取的图元文件对象,因此无法通过该途径获取已绘制的文本内容。XGraphics.CreateMeasureContext仅用于测量文本尺寸,无法复用已绘制的文本内容,对你的问题没有帮助。最优方案是将绘制文本的逻辑封装为可复用方法,通过传入不同的位置参数来在多个地方绘制相同文本,实现代码复用(本质仍是重新绘制,但避免重复编写绘制逻辑)。
示例代码:
// 封装的文本绘制方法 private void DrawReusableText(XGraphics gfx, XPoint drawPosition) { var textFont = new XFont("Arial", 14, XFontStyle.Bold); gfx.DrawString("目标文本内容", textFont, XBrushes.DarkBlue, drawPosition); } // 调用示例 // 在第一个位置绘制 DrawReusableText(gfx, new XPoint(50, 50)); // 在第二个位置绘制 DrawReusableText(gfx, new XPoint(150, 200));
内容的提问来源于stack exchange,提问作者jmucchiello
相关产品推荐
相关产品推荐

