การสร้างหน้า

การสร้างหน้า

การสร้างหน้า

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 เพื่อเพิ่มเส้นขอบให้กับตาราง, เซลล์, และกล่องลอย

ปัญหาทั่วไป

IssueCauseFix
ตารางล้นหน้าแถวมากเกินไปสำหรับหนึ่งหน้าไลบรารีทำการแบ่งหน้าอัตโนมัติ; ปรับขอบกระดาษหากจำเป็น
หัวเรื่องไม่แสดงApplyAsHeader ถูกเรียกหลังจาก Saveใส่หัวเรื่องก่อนบันทึก
FloatingBox อยู่ตำแหน่งผิดพิกัดวัดจากมุมซ้ายบนในหน่วยของย่อหน้าตรวจสอบว่าหน่วยตรงกับความคาดหวังของคุณ

คำถามที่พบบ่อย

ฉันสามารถสร้างตารางหลายหน้าได้หรือไม่?

ใช่. เมื่อ ตารางเกินความสูงของหน้าที่มีอยู่ มันจะดำเนินต่อโดยอัตโนมัติในหน้าถัดไป.

ฉันจะเพิ่มรูปภาพลงในเซลล์ของตารางอย่างไร?

สร้างย่อหน้า Image และเพิ่มลงในคอลเลกชัน Paragraphs ของเซลล์

ฉันสามารถนำเข้าข้อมูลจากอาเรย์ไปยังตารางได้หรือไม่?

ใช่. ใช้ Table.ImportArray เพื่อเติมข้อมูลตารางจากอาเรย์สองมิติ.


API สรุปอ้างอิง

คลาส / เมธอดคำอธิบาย
Paragraphsองค์ประกอบเนื้อหาที่จัดลำดับบนหน้า
Paragraphs.Addเพิ่มองค์ประกอบย่อหน้า (ข้อความ, ตาราง, กราฟ, ฯลฯ)
Tableการจัดวางแบบกริดที่มีแถว, เซลล์, และความกว้างของคอลัมน์
Table.ImportArrayเติมข้อมูลตารางจากอาเรย์
Rowsคอลเลกชันแถวในตาราง
Cellsคอลเลกชันเซลล์ในแถวของตาราง
BorderInfoการจัดรูปแบบเส้นขอบสำหรับตาราง, เซลล์, และกล่อง
FloatingBoxคอนเทนเนอร์เนื้อหาที่กำหนดตำแหน่งอย่างแน่นอน
HeaderFooterเนื้อหาหัวเรื่องหรือส่วนท้ายที่ทำซ้ำ
HeaderFooter.FromTextสร้างหัวเรื่อง/ส่วนท้ายจากเทมเพลตข้อความ
PdfPageStampวางซ้อนหน้าของ PDF เป็นตราประทับ

ดูเพิ่มเติม

 ภาษาไทย