图形和绘图

概述

Aspose.PDF FOSS for .NET 包含一个绘图子系统,用于向 PDF 页面添加矢量图形。Graph 容器保存形状元素(Line、Arc、Circle),并被添加到页面的 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 支持 MoveTo、LineTo、CurveTo 和 Close 用于自由形状矢量形状。

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

图像格式

ImageFormat 提供用于将页面转换为图像时的光栅格式枚举值:Bmp、Jpeg、Png、Tiff、Gif。


技巧与最佳实践

  • 设置图形尺寸以匹配您想要绘制的区域——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 中,并设置其 Left 和 Top 属性以实现绝对定位。

该库支持渐变吗?

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)

另请参阅

 中文