Графика и чертане
Графика и чертане
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на страницата — не я добавяйте към анотациите.
Чести проблеми
| Проблем | Причина | Решение |
|---|---|---|
| Фигурата не се вижда | Размерите на графиката са твърде малки за координатите на фигурата | Увеличете 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) |