Grafika i rysowanie
Grafika i rysowanie
Aspose.PDF FOSS for .NET zawiera podsystem rysowania umożliwiający dodawanie grafiki wektorowej do stron PDF. Kontener Graph przechowuje elementy kształtów (Line, Arc, Circle) i jest dodawany do kolekcji Paragraphs strony.
Tworzenie kontenera wykresu
Graph definiuje obszar rysunkowy o określonej szerokości i wysokości.
using var doc = new Document();
var page = doc.Pages.Add();
var graph = new Graph(400, 200);
page.Paragraphs.Add(graph);Rysowanie linii
var line = new Line(new float[] { 0, 0, 300, 100 });
graph.Shapes.Add(line);Rysowanie łuków i okręgów
var arc = new Arc(150, 100, 80, 0, 180);
graph.Shapes.Add(arc);
var circle = new Circle(150, 100, 50);
graph.Shapes.Add(circle);Praca z kolorami
Klasa Color udostępnia metody fabryczne dla RGB, ARGB i nazwanych kolorów.
var red = Color.FromRgb(1.0, 0.0, 0.0);
var semiTransparent = Color.FromArgb(128, 0, 0, 255);Rysowanie ścieżek
DrawingPath obsługuje MoveTo, LineTo, CurveTo i Close dla dowolnych kształtów wektorowych.
var path = new DrawingPath();
path.MoveTo(10, 10);
path.LineTo(100, 10);
path.CurveTo(150, 50, 150, 100, 100, 100);
path.Close();Formaty obrazu
ImageFormat udostępnia wartości wyliczeniowe dla formatów rastrowych używanych przy konwertowaniu stron na obrazy: Bmp, Jpeg, Png, Tiff, Gif.
Wskazówki i najlepsze praktyki
- Ustaw wymiary wykresu tak, aby odpowiadały obszarowi, w którym chcesz rysować — współrzędne wewnątrz
Graphsą względne względem jego granic. - Użyj
Color.FromArgbdo półprzezroczystych wypełnień (obsługa kanału alfa). - Połącz wiele kształtów w jednym
Graphdla efektywnego renderowania. DrawingPathjest idealny dla złożonych krzywych Beziera i dowolnych kształtów wielokątów.- Dodaj
Graphdo kolekcjiParagraphsstrony — nie dodawaj go do adnotacji.
Typowe problemy
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
| Kształt niewidoczny | Wymiary wykresu zbyt małe dla współrzędnych kształtu | Zwiększ Graph szerokość/wysokość lub skaluj współrzędne kształtu |
| Kolory wyglądają inaczej w przeglądarce | Niepasująca przestrzeń kolorów | Użyj Color.FromRgb z wartościami w zakresie 0.0‑1.0 |
| Rysunek nakłada się na tekst | Wykres umieszczony w niewłaściwej pozycji w przepływie akapitu | Dostosuj kolejność akapitów lub użyj FloatingBox do pozycjonowania absolutnego |
Najczęściej zadawane pytania
Czy mogę rysować wypełnione kształty?
Tak. Ustaw właściwość GraphInfo.FillColor kształtu na wypełnienie jednolitym kolorem.
Jak umieścić wykres w określonych współrzędnych strony?
Umieść Graph w FloatingBox i ustaw jego Left oraz Top właściwości dla pozycjonowania absolutnego.
Czy biblioteka obsługuje gradienty?
Klasy Shading obsługują podstawowe wzory cieniowania. Użyj DrawingPath z cieniowaniem dla wypełnień gradientowych.
Podsumowanie odniesień API
| Klasa / Metoda | Opis |
|---|---|
Graph | Kontener dla rysowalnych kształtów, dodawany do akapitów strony |
Line | Prosta linia pomiędzy dwoma lub większą liczbą punktów |
Arc | Łuk kołowy określony przez środek, promień i kąty |
Circle | Kształt koła określony przez środek i promień |
DrawingPath | Ścieżka dowolnego kształtu z poleceniami MoveTo, LineTo, CurveTo, Close |
Color | Wartość koloru z RGB, ARGB i metodami fabrycznymi |
Color.FromRgb | Utwórz kolor z komponentów RGB |
Color.FromArgb | Utwórz kolor z przezroczystością alfa |
GraphicElementCollection | Zbiór elementów graficznych na stronie |
ImageFormat | Wyliczenie formatów obrazów rastrowych (Bmp, Jpeg, Png, Tiff, Gif) |