Графика и рисование

Графика и рисование

Графика и рисование

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 страницы — не добавляйте его в аннотации.

Общие проблемы

IssueCauseFix
Фигура не виднаРазмеры графа слишком малы для координат фигурыУвеличьте ширину/высоту 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)

См. также

 Русский