การสร้างหน้า
การสร้างหน้า
Aspose.PDF FOSS for .NET มีเอนจินการจัดวางแบบย่อหน้าสำหรับการสร้างเนื้อหา PDF ตาราง กล่องลอย ส่วนหัว/ส่วนท้าย และตราประทับ ช่วยให้คุณสร้างหน้าที่มีโครงสร้างโดยไม่ต้องสร้างตัวดำเนินการสตรีมเนื้อหาแบบแมนนวล
การเพิ่มย่อหน้า
Page.Paragraphs เป็นจุดเริ่มต้นสำหรับการเพิ่มองค์ประกอบเนื้อหา.
using var doc = new Document();
var page = doc.Pages.Add();
page.Paragraphs.Add(new TextFragment("Hello, PDF!"));
doc.Save("hello.pdf");ตาราง
Table รองรับแถว, เซลล์, ความกว้างของคอลัมน์, เส้นขอบ, และสถานะข้อความ.
var table = new Table();
table.ColumnWidths = "100 200 100";
var row = table.Rows.Add();
row.Cells.Add("Name");
row.Cells.Add("Description");
row.Cells.Add("Price");
page.Paragraphs.Add(table);การจัดรูปแบบ Cell
Cells.Add ส่งคืน Cell ที่คุณสามารถกำหนดขอบ, ระยะห่าง, และเนื้อหาซ้อนกันได้.
var cell = row.Cells.Add("Styled cell");
cell.Border = new BorderInfo(BorderSide.All, 0.5f);
cell.Margin = new MarginInfo(5, 5, 5, 5);กล่องลอย
FloatingBox วางตำแหน่งเนื้อหาโดยใช้พิกัดสัมบูรณ์บนหน้า.
var box = new FloatingBox(200, 100);
box.Left = 72;
box.Top = 700;
box.Paragraphs.Add(new TextFragment("Positioned text"));
page.Paragraphs.Add(box);ส่วนหัวและส่วนท้าย
HeaderFooter เพิ่มเนื้อหาที่ทำซ้ำที่ด้านบนหรือด้านล่างของหน้า.
var header = HeaderFooter.FromText("Document Title");
header.ApplyAsHeader(page);
var footer = HeaderFooter.FromText("Page {0}");
footer.ApplyAsFooter(page);ตราประทับหน้า
PdfPageStamp ซ้อนเนื้อหาจากหน้า PDF หนึ่งไปยังอีกหน้า.
var stamp = new PdfPageStamp("watermark.pdf");
stamp.Put(page);เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- ใช้
Table.ColumnWidthsเป็นสตริงค่าจุดที่คั่นด้วยช่องว่างเพื่อควบคุมการจัดวาง FloatingBoxมีประโยชน์สำหรับการกำหนดตำแหน่งแบบสัมบูรณ์ — ผสานกับTableสำหรับเนื้อหาแบบโครงสร้างHeaderFooter.FromTextรองรับ{0}เป็นตัวแทนหมายเลขหน้า- เพิ่มย่อหน้าทั้งหมดก่อนเรียกใช้
Save— เครื่องยนต์การจัดวางจะประมวลผลเนื้อหาเป็นลำดับ - ใช้
BorderInfoเพื่อเพิ่มเส้นขอบให้กับตาราง, เซลล์, และกล่องลอย
ปัญหาทั่วไป
| Issue | Cause | Fix |
|---|---|---|
| ตารางล้นหน้า | แถวมากเกินไปสำหรับหนึ่งหน้า | ไลบรารีทำการแบ่งหน้าอัตโนมัติ; ปรับขอบกระดาษหากจำเป็น |
| หัวเรื่องไม่แสดง | ApplyAsHeader ถูกเรียกหลังจาก Save | ใส่หัวเรื่องก่อนบันทึก |
| FloatingBox อยู่ตำแหน่งผิด | พิกัดวัดจากมุมซ้ายบนในหน่วยของย่อหน้า | ตรวจสอบว่าหน่วยตรงกับความคาดหวังของคุณ |
คำถามที่พบบ่อย
ฉันสามารถสร้างตารางหลายหน้าได้หรือไม่?
ใช่. เมื่อ ตารางเกินความสูงของหน้าที่มีอยู่ มันจะดำเนินต่อโดยอัตโนมัติในหน้าถัดไป.
ฉันจะเพิ่มรูปภาพลงในเซลล์ของตารางอย่างไร?
สร้างย่อหน้า Image และเพิ่มลงในคอลเลกชัน Paragraphs ของเซลล์
ฉันสามารถนำเข้าข้อมูลจากอาเรย์ไปยังตารางได้หรือไม่?
ใช่. ใช้ Table.ImportArray เพื่อเติมข้อมูลตารางจากอาเรย์สองมิติ.
API สรุปอ้างอิง
| คลาส / เมธอด | คำอธิบาย |
|---|---|
Paragraphs | องค์ประกอบเนื้อหาที่จัดลำดับบนหน้า |
Paragraphs.Add | เพิ่มองค์ประกอบย่อหน้า (ข้อความ, ตาราง, กราฟ, ฯลฯ) |
Table | การจัดวางแบบกริดที่มีแถว, เซลล์, และความกว้างของคอลัมน์ |
Table.ImportArray | เติมข้อมูลตารางจากอาเรย์ |
Rows | คอลเลกชันแถวในตาราง |
Cells | คอลเลกชันเซลล์ในแถวของตาราง |
BorderInfo | การจัดรูปแบบเส้นขอบสำหรับตาราง, เซลล์, และกล่อง |
FloatingBox | คอนเทนเนอร์เนื้อหาที่กำหนดตำแหน่งอย่างแน่นอน |
HeaderFooter | เนื้อหาหัวเรื่องหรือส่วนท้ายที่ทำซ้ำ |
HeaderFooter.FromText | สร้างหัวเรื่อง/ส่วนท้ายจากเทมเพลตข้อความ |
PdfPageStamp | วางซ้อนหน้าของ PDF เป็นตราประทับ |