گرافیک و رسم
گرافیک و رسم
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) |