กำหนดการแบ่งตารางในไฟล์ PDF
ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีการกำหนดการแบ่งตารางในไฟล์ PDF โดยใช้ Aspose.PDF สำหรับ .NET เราจะอธิบายโค้ดต้นฉบับใน C# ทีละขั้นตอน เมื่อจบบทช่วยสอนนี้ คุณจะทราบวิธีการกำหนดว่าตารางเกินระยะขอบหน้ากระดาษหรือไม่ มาเริ่มกันเลย!
ขั้นตอนที่ 1: การตั้งค่าสภาพแวดล้อม
ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าสภาพแวดล้อมการพัฒนา C# ด้วย Aspose.PDF สำหรับ .NET แล้ว เพิ่มการอ้างอิงไปยังไลบรารีและนำเข้าเนมสเปซที่จำเป็น
ขั้นตอนที่ 2: การสร้างเอกสาร PDF
ในขั้นตอนนี้เราจะสร้างใหม่Document
วัตถุที่จะแสดงเอกสาร PDF
pdf-Document = new Document();
เอกสารนี้จะใช้ในการเพิ่มส่วนและตาราง
ขั้นตอนที่ 3: การเพิ่มส่วนและตาราง
ตอนนี้เรากำลังจะเพิ่มส่วนลงในเอกสาร PDF และสร้างตารางภายในส่วนนี้
Page page = pdf.Pages.Add();
Table table1 = new Table();
table1. Margin. Top = 300;
page.Paragraphs.Add(table1);
นอกจากนี้ เรายังกำหนดระยะขอบบนของตารางไว้ที่ 300 จุด คุณสามารถปรับค่านี้ตามความต้องการของคุณได้
ขั้นตอนที่ 4: การจัดโต๊ะ
ในขั้นตอนนี้ เราจะกำหนดค่าคุณสมบัติของตาราง เช่น ความกว้างของคอลัมน์และเส้นขอบ
table1. ColumnWidths = "100 100 100";
table1.DefaultCellBorder = new BorderInfo(BorderSide.All, 0.1F);
table1.Border = new BorderInfo(BorderSide.All, 1F);
ที่นี่เราจะกำหนดความกว้างของคอลัมน์ตารางและขอบเซลล์ คุณสามารถปรับค่าเหล่านี้ได้ตามความต้องการของคุณ
ขั้นตอนที่ 5: เพิ่มแถวและเซลล์ลงในตาราง
ตอนนี้เราจะสร้างแถวและเซลล์ในตารางโดยใช้ลูป
for (int RowCounter = 0; RowCounter <= 16; RowCounter++)
{
Row row1 = table1.Rows.Add();
row1.Cells.Add("col " + RowCounter.ToString() + ", 1");
row1.Cells.Add("col " + RowCounter.ToString() + ", 2");
row1.Cells.Add("col " + RowCounter.ToString() + ", 3");
}
ที่นี่เราสร้าง 17 แถวในตารางและเพิ่ม 3 เซลล์ในแต่ละแถว คุณสามารถปรับหัวเข็มขัดตามความต้องการของคุณ
ขั้นตอนที่ 6: การกำหนดการแบ่งตาราง
ตอนนี้เราจะพิจารณาว่าตารางเกินระยะขอบหน้าหรือไม่ โดยการเปรียบเทียบความสูงของหน้ากับความสูงรวมของวัตถุในตาราง
float PageHeight = (float)pdf.PageInfo.Height;
float TotalObjectsHeight = (float)page.PageInfo.Margin.Top + (float)page.PageInfo.Margin.Bottom + (float)table1.Margin.Top + (float)table1.GetHeight();
if ((PageHeight - TotalObjectsHeight) <= 10)
Console.WriteLine("The height of the page - Height of objects < 10, the table will be truncated");
เราคำนวณความสูงของหน้าและความสูงรวมของวัตถุโดยคำนึงถึงระยะขอบ หากความแตกต่างอยู่ที่ 10 หรือต่ำกว่า ตารางจะเกินระยะขอบหน้า
ขั้นตอนที่ 7: บันทึกเอกสาร PDF
สุดท้ายเราบันทึกเอกสาร PDF พร้อมผลลัพธ์
string dataDir = "YOUR DOCUMENTS DIRECTORY";
dataDir = dataDir + "DetermineTableBreak_out.pdf";
pdf.Save(dataDir);
Console.WriteLine("\nTable break determined successfully.\nFile saved at " + dataDir);
อย่าลืมระบุไดเรกทอรีเอกสารที่ถูกต้อง ไฟล์ PDF ที่ได้จะถูกบันทึกพร้อมการแบ่งตารางตามที่กำหนด
ตัวอย่างซอร์สโค้ดสำหรับการกำหนดการแบ่งตารางโดยใช้ Aspose.PDF สำหรับ .NET
// เส้นทางไปยังไดเร็กทอรีเอกสาร
string dataDir = "YOUR DOCUMENT DIRECTORY";
// สร้างอินสแตนซ์ของคลาส PDF ของวัตถุ
Document pdf = new Document();
// เพิ่มส่วนนี้ลงในคอลเล็กชั่นส่วนเอกสาร PDF
Aspose.Pdf.Page page = pdf.Pages.Add();
// สร้างอินสแตนซ์ของวัตถุตาราง
Aspose.Pdf.Table table1 = new Aspose.Pdf.Table();
table1.Margin.Top = 300;
// เพิ่มตารางในคอลเลกชันย่อหน้าของส่วนที่ต้องการ
page.Paragraphs.Add(table1);
// ตั้งค่าด้วยความกว้างของคอลัมน์ของตาราง
table1.ColumnWidths = "100 100 100";
// ตั้งค่าเส้นขอบเซลล์เริ่มต้นโดยใช้ BorderInfo object
table1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F);
// กำหนดเส้นขอบตารางโดยใช้ BorderInfo วัตถุที่กำหนดเองอื่น
table1.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 1F);
// สร้างวัตถุ MarginInfo และตั้งค่าระยะขอบซ้าย ล่าง ขวา และบน
Aspose.Pdf.MarginInfo margin = new Aspose.Pdf.MarginInfo();
margin.Top = 5f;
margin.Left = 5f;
margin.Right = 5f;
margin.Bottom = 5f;
// ตั้งค่าการเติมเซลล์เริ่มต้นเป็นวัตถุ MarginInfo
table1.DefaultCellPadding = margin;
// ถ้าเพิ่มตัวนับเป็น 17 โต๊ะจะพัง
// เพราะไม่สามารถรองรับได้มากกว่านี้อีกแล้ว
for (int RowCounter = 0; RowCounter <= 16; RowCounter++)
{
//สร้างแถวในตารางแล้วสร้างเซลล์ในแถว
Aspose.Pdf.Row row1 = table1.Rows.Add();
row1.Cells.Add("col " + RowCounter.ToString() + ", 1");
row1.Cells.Add("col " + RowCounter.ToString() + ", 2");
row1.Cells.Add("col " + RowCounter.ToString() + ", 3");
}
// รับข้อมูลความสูงของหน้า
float PageHeight = (float)pdf.PageInfo.Height;
// รับข้อมูลความสูงรวมของขอบบนและล่างของหน้า
// ระยะขอบด้านบนของโต๊ะและความสูงของโต๊ะ
float TotalObjectsHeight = (float)page.PageInfo.Margin.Top + (float)page.PageInfo.Margin.Bottom + (float)table1.Margin.Top + (float)table1.GetHeight();
// แสดงความสูงของหน้า ความสูงของตาราง ขอบด้านบนของตาราง และด้านบนของหน้า
// และข้อมูลระยะขอบล่าง
Console.WriteLine("PDF document Height = " + pdf.PageInfo.Height.ToString() + "\nTop Margin Info = " + page.PageInfo.Margin.Top.ToString() + "\nBottom Margin Info = " + page.PageInfo.Margin.Bottom.ToString() + "\n\nTable-Top Margin Info = " + table1.Margin.Top.ToString() + "\nAverage Row Height = " + table1.Rows[0].MinRowHeight.ToString() + " \nTable height " + table1.GetHeight().ToString() + "\n ----------------------------------------" + "\nTotal Page Height =" + PageHeight.ToString() + "\nCummulative height including Table =" + TotalObjectsHeight.ToString());
// ตรวจสอบว่าเราได้หักผลรวมของ Page top margin + Page Bottom margin หรือไม่
// + ขอบด้านบนของตารางและความสูงของตารางจากความสูงของหน้ากระดาษและน้อยกว่า
// มากกว่า 10 (แถวเฉลี่ยสามารถมากกว่า 10 ได้)
if ((PageHeight - TotalObjectsHeight) <= 10)
// หากค่าน้อยกว่า 10 จะแสดงข้อความ
//ซึ่งแสดงว่าไม่สามารถวางแถวอื่นได้และหากเราเพิ่มแถวใหม่
// แถว ตารางจะแตก ขึ้นอยู่กับค่าความสูงของแถว
Console.WriteLine("Page Height - Objects Height < 10, so table will break");
dataDir = dataDir + "DetermineTableBreak_out.pdf";
// บันทึกเอกสาร PDF
pdf.Save(dataDir);
Console.WriteLine("\nTable break determined successfully.\nFile saved at " + dataDir);
บทสรุป
ในบทช่วยสอนนี้ เราได้เรียนรู้วิธีการกำหนดการแบ่งตารางในเอกสาร PDF โดยใช้ Aspose.PDF สำหรับ .NET คุณสามารถใช้คู่มือทีละขั้นตอนนี้เพื่อตรวจสอบว่าตารางเกินระยะขอบหน้ากระดาษในโปรเจ็กต์ C# ของคุณหรือไม่
คำถามที่พบบ่อยสำหรับการกำหนดการแบ่งตารางในไฟล์ PDF
ถาม: จุดประสงค์ของการกำหนดการแบ่งตารางในเอกสาร PDF คืออะไร
A: จุดประสงค์ของการกำหนดการแบ่งตารางในเอกสาร PDF คือเพื่อตรวจสอบว่าตารางเกินระยะขอบหน้าหรือไม่ วิธีนี้จะช่วยให้มั่นใจว่าเนื้อหาของตารางจะแสดงอย่างถูกต้องภายในพื้นที่หน้าว่าง เมื่อตรวจจับการแบ่งตารางได้แล้ว คุณสามารถจัดการกับเนื้อหาที่ล้นออกมาและปรับเค้าโครงตารางให้เหมาะสมได้
ถาม: ฉันจะปรับระยะขอบบนของตารางได้อย่างไร
A: ในโค้ดต้นฉบับ C# ที่ให้มา คุณสามารถปรับระยะขอบด้านบนของตารางได้โดยการแก้ไขค่าของtable1.Margin.Top
คุณสมบัติ เพิ่มหรือลดค่าตามต้องการเพื่อตั้งค่าระยะขอบบนที่ต้องการสำหรับตาราง
ถาม: ฉันสามารถกำหนดลักษณะของตาราง เช่น สีเซลล์และขนาดแบบอักษรได้หรือไม่
A: ใช่ คุณสามารถปรับแต่งรูปลักษณ์ของตารางและเซลล์ได้โดยใช้คุณสมบัติและวิธีการต่างๆ ที่ Aspose.PDF สำหรับ .NET จัดเตรียมไว้ ตัวอย่างเช่น คุณสามารถเปลี่ยนสีพื้นหลังของเซลล์ ขนาดฟอนต์ ตระกูลฟอนต์ การจัดตำแหน่งข้อความ และอื่นๆ อีกมากมาย โปรดดูเอกสารประกอบอย่างเป็นทางการเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีปรับแต่งรูปลักษณ์ของตาราง
ถาม: จะเกิดอะไรขึ้นถ้าตารางเกินระยะขอบหน้า?
A: หากตารางยาวเกินขอบหน้ากระดาษ อาจทำให้เนื้อหาถูกตัดทอนหรือทับซ้อนกัน ทำให้เอกสาร PDF อ่านและจัดระเบียบได้ยากขึ้น คุณสามารถมั่นใจได้ว่าเนื้อหาจะยังคงแสดงอย่างถูกต้องภายในพื้นที่หน้ากระดาษที่พร้อมใช้งานได้ โดยการตรวจจับการแบ่งตารางและจัดการกับส่วนที่เกิน
ถาม: ฉันสามารถกำหนดการแบ่งตารางสำหรับตารางหลายตารางในเอกสาร PDF เดียวกันได้หรือไม่
A: ใช่ คุณสามารถกำหนดการแบ่งตารางสำหรับตารางหลายตารางในเอกสาร PDF เดียวกันได้ เพียงทำซ้ำขั้นตอนสำหรับแต่ละตารางที่คุณต้องการวิเคราะห์ และปรับเค้าโครงตารางตามความจำเป็นเพื่อป้องกันเนื้อหาล้น