กำหนดการแบ่งตารางในไฟล์ 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 แถวในตารางและเพิ่มเซลล์สามเซลล์ลงในแต่ละแถว คุณสามารถปรับหัวเข็มขัดได้ตามความต้องการของคุณ
ขั้นตอนที่ 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
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());
// ตรวจสอบว่าเราหักผลรวมของระยะขอบบนของหน้า + ขอบล่างของหน้าหรือไม่
// + ระยะขอบด้านบนของตารางและความสูงของตารางจากความสูงของหน้าและน้อยกว่า
// มากกว่า 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 คืออะไร
ตอบ: วัตถุประสงค์ในการพิจารณาการแบ่งตารางในเอกสาร PDF คือการตรวจสอบว่าตารางเกินระยะขอบหน้าหรือไม่ เพื่อให้แน่ใจว่าเนื้อหาของตารางจะแสดงอย่างถูกต้องภายในพื้นที่หน้าที่มีอยู่ ด้วยการตรวจจับการแตกตาราง คุณสามารถจัดการกับเนื้อหาล้นและปรับเค้าโครงตารางให้เหมาะสมได้
ถาม: ฉันจะปรับระยะขอบด้านบนของตารางได้อย่างไร
ตอบ: ในซอร์สโค้ด C# ที่ให้มา คุณสามารถปรับระยะขอบด้านบนของตารางได้โดยการแก้ไขค่าของtable1.Margin.Top
คุณสมบัติ. เพิ่มหรือลดค่าตามความจำเป็นเพื่อตั้งค่าระยะขอบด้านบนที่ต้องการสำหรับตาราง
ถาม: ฉันสามารถปรับแต่งลักษณะที่ปรากฏของตาราง เช่น สีของเซลล์และขนาดตัวอักษรได้หรือไม่
ตอบ: ได้ คุณสามารถปรับแต่งลักษณะที่ปรากฏของตารางและเซลล์ได้โดยใช้คุณสมบัติและวิธีการต่างๆ ที่ Aspose.PDF สำหรับ .NET มอบให้ ตัวอย่างเช่น คุณสามารถเปลี่ยนสีพื้นหลังของเซลล์ ขนาดแบบอักษร ตระกูลแบบอักษร การจัดแนวข้อความ และอื่นๆ ได้ โปรดดูเอกสารประกอบอย่างเป็นทางการสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการปรับแต่งลักษณะที่ปรากฏของตาราง
ถาม: จะเกิดอะไรขึ้นหากตารางเกินระยะขอบหน้า?
ตอบ: หากตารางเกินระยะขอบหน้า อาจส่งผลให้เนื้อหาถูกตัดทอนหรือทับซ้อนกัน ทำให้เอกสาร PDF อ่านและจัดระเบียบได้น้อยลง ด้วยการตรวจจับตัวแบ่งตารางและจัดการกับการโอเวอร์โฟลว์ คุณสามารถมั่นใจได้ว่าเนื้อหายังคงแสดงอย่างเหมาะสมภายในพื้นที่เพจที่มีอยู่
ถาม: ฉันสามารถระบุตัวแบ่งตารางสำหรับหลายตารางในเอกสาร PDF เดียวกันได้หรือไม่
ตอบ: ได้ คุณสามารถกำหนดตัวแบ่งตารางสำหรับหลายตารางได้ในเอกสาร PDF เดียวกัน เพียงทำซ้ำขั้นตอนสำหรับแต่ละตารางที่คุณต้องการวิเคราะห์และปรับเค้าโครงตารางตามความจำเป็นเพื่อป้องกันเนื้อหาล้น