กราฟิกและการวาด
กราฟิกและการวาดภาพ
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 ให้ค่าการนับแบบ enumeration สำหรับรูปแบบ raster ที่ใช้เมื่อแปลงหน้าเป็นภาพ: Bmp, Jpeg, Png, Tiff, Gif.
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- ตั้งค่าขนาดกราฟให้ตรงกับพื้นที่ที่คุณต้องการวาด — พิกัดภายใน
Graphจะสัมพันธ์กับขอบเขตของมัน - ใช้
Color.FromArgbสำหรับการเติมสีกึ่งโปร่งแสง (รองรับช่องแอลฟา) - รวมหลายรูปทรงไว้ใน
Graphเดียวเพื่อการเรนเดอร์ที่มีประสิทธิภาพ DrawingPathเหมาะสำหรับเส้นโค้ง Bezier ที่ซับซ้อนและรูปหลายเหลี่ยมแบบอิสระ- เพิ่ม
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, และเมธอด factory |
Color.FromRgb | สร้างสีจากส่วนประกอบ RGB |
Color.FromArgb | สร้างสีพร้อมความโปร่งใสแบบอัลฟา |
GraphicElementCollection | คอลเลกชันขององค์ประกอบกราฟิกบนหน้า |
ImageFormat | การนับประเภทของรูปภาพแรสเตอร์ (Bmp, Jpeg, Png, Tiff, Gif) |