图形和绘图

图形和绘图

Aspose.PDF FOSS for .NET 包含一个绘图子系统,用于向 PDF 页面添加矢量图形。Graph 容器保存形状元素(LineArcCircle),并被添加到页面的 Paragraphs 集合中。


创建图形容器

Graph 定义了一个具有指定宽度和高度的可绘制区域。

using var doc = new Document();
var page = doc.Pages.Add();

var graph = new Graph(400, 200);
page.Paragraphs.Add(graph);

绘制线条

var line = new Line(new float[] { 0, 0, 300, 100 });
graph.Shapes.Add(line);

绘制弧线和圆

var arc = new Arc(150, 100, 80, 0, 180);
graph.Shapes.Add(arc);

var circle = new Circle(150, 100, 50);
graph.Shapes.Add(circle);

使用颜色

Color 类提供用于 RGB、ARGB 和命名颜色的工厂方法。

var red = Color.FromRgb(1.0, 0.0, 0.0);
var semiTransparent = Color.FromArgb(128, 0, 0, 255);

绘制路径

DrawingPath 支持 MoveToLineToCurveToClose 用于自由形状矢量形状。

var path = new DrawingPath();
path.MoveTo(10, 10);
path.LineTo(100, 10);
path.CurveTo(150, 50, 150, 100, 100, 100);
path.Close();

图像格式

ImageFormat 提供用于将页面转换为图像时的光栅格式枚举值:BmpJpegPngTiffGif


技巧与最佳实践

  • 设置图形尺寸以匹配您想要绘制的区域——Graph 内的坐标相对于其边界。
  • 使用 Color.FromArgb 进行半透明填充(支持 alpha 通道)。
  • 在单个 Graph 中组合多个形状,以实现高效渲染。
  • DrawingPath 非常适合复杂的贝塞尔曲线和任意多边形形状。
  • Graph 添加到页面的 Paragraphs 集合中——不要将其添加到注释中。

常见问题

问题原因解决方案
Shape not visibleGraph dimensions too small for the shape coordinatesIncrease Graph width/height or scale shape coordinates
Colors appear different in viewerColor space mismatchUse Color.FromRgb with values in 0.0-1.0 range
Drawing overlaps textGraph placed at wrong position in paragraph flowAdjust paragraph ordering or use FloatingBox for absolute positioning

常见问题

我可以绘制填充形状吗?

是的。将形状的 GraphInfo.FillColor 属性设置为使用纯色填充。

如何在特定页面坐标处定位图形?

Graph 包装在 FloatingBox 中,并设置其 LeftTop 属性以实现绝对定位。

该库支持渐变吗?

Shading 类支持基本的阴影模式。使用 DrawingPath 与阴影进行渐变填充。


API 参考摘要

类 / 方法描述
Graph可绘制形状的容器,添加到页面段落中
Line两个或多个点之间的直线
Arc由中心、半径和角度定义的圆弧
Circle由中心和半径定义的圆形
DrawingPath包含 MoveTo、LineTo、CurveTo、Close 的自由路径
Color包含 RGB、ARGB 以及工厂方法的颜色值
Color.FromRgb从 RGB 组件创建颜色
Color.FromArgb创建具有 alpha 透明度的颜色
GraphicElementCollection页面上图形元素的集合
ImageFormat栅格图像格式的枚举 (Bmp, Jpeg, Png, Tiff, Gif)

另请参阅

 中文