Графика и рисование
Графика и рисование
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для полупрозрачных заливок (поддержка альфа‑канала). - Объединяйте несколько фигур в один
Graphдля эффективного рендеринга. DrawingPathидеально подходит для сложных кривых Безье и произвольных полигональных форм.- Добавьте
Graphв коллекциюParagraphsстраницы — не добавляйте его в аннотации.
Общие проблемы
| Issue | Cause | Fix |
|---|---|---|
| Фигура не видна | Размеры графа слишком малы для координат фигуры | Увеличьте ширину/высоту Graph или масштабируйте координаты фигуры |
| Цвета выглядят иначе в просмотрщике | Несоответствие цветового пространства | Используйте Color.FromRgb со значениями в диапазоне 0.0‑1.0 |
| Рисунок перекрывает текст | Граф размещён в неправильном положении в потоке абзаца | Отрегулируйте порядок абзацев или используйте FloatingBox для абсолютного позиционирования |
Часто задаваемые вопросы
Могу ли я рисовать заполненные фигуры?
Да. Установите свойство 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 | Создать цвет с альфа‑прозрачностью |
GraphicElementCollection | Коллекция графических элементов на странице |
ImageFormat | Перечисление растровых форматов изображений (Bmp, Jpeg, Png, Tiff, Gif) |