กำหนดการแบ่งตารางในไฟล์ PDF
การแนะนำ
การสร้างและจัดการไฟล์ PDF อาจดูเหมือนกับการฝึกสัตว์ร้าย ในช่วงเวลาหนึ่ง คุณคิดว่าคุณเข้าใจมันแล้ว แต่ในช่วงเวลาต่อมา เอกสารกลับมีพฤติกรรมที่คาดเดาไม่ได้ คุณเคยสงสัยหรือไม่ว่าจะจัดการตารางใน PDF ได้อย่างมีประสิทธิภาพอย่างไร โดยเฉพาะอย่างยิ่ง วิธีการพิจารณาว่าตารางจะเสียหายเมื่อใด ในบทความนี้ เราจะเจาะลึกวิธีการใช้ Aspose.PDF สำหรับ .NET เพื่อระบุว่าตารางขยายเกินขนาดหน้ากระดาษเมื่อใด ดังนั้น เตรียมตัวให้พร้อมแล้วมาสำรวจโลกของการจัดการ PDF กันเถอะ!
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะเริ่มต้นเขียนโค้ดจริง เรามาตรวจสอบก่อนว่าคุณจัดเตรียมทุกอย่างเรียบร้อยแล้ว:
- สภาพแวดล้อมการพัฒนา .NET: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Visual Studio หรือ IDE ที่เข้ากันได้
- ไลบรารี Aspose.PDF: คุณต้องเพิ่มไลบรารี Aspose.PDF ลงในโปรเจ็กต์ของคุณ คุณสามารถดาวน์โหลดได้จากดาวน์โหลด PDF Aspose หน้าหรือคุณสามารถติดตั้งได้ผ่านตัวจัดการแพ็กเกจ NuGet:
Install-Package Aspose.PDF
- ความรู้พื้นฐานเกี่ยวกับ C#: คู่มือนี้ถือว่าคุณมีความเข้าใจเกี่ยวกับ C# และการเขียนโปรแกรมเชิงวัตถุในระดับหนึ่ง
ตอนนี้เรามีข้อกำหนดเบื้องต้นแล้ว เรามาเริ่มต้นด้วยการนำเข้าแพ็คเกจที่จำเป็นกัน
แพ็คเกจนำเข้า
หากต้องการเริ่มใช้ Aspose.PDF ในโปรเจ็กต์ของคุณ คุณต้องรวมเนมสเปซที่เกี่ยวข้องเข้าไปด้วย วิธีดำเนินการมีดังต่อไปนี้:
using System.IO;
using System;
using Aspose.Pdf;
using Aspose.Pdf.Text;
เนมสเปซเหล่านี้จะช่วยให้คุณเข้าถึงฟังก์ชันการทำงานหลักที่จำเป็นในการจัดการไฟล์ PDF
มาแบ่งกระบวนการออกเป็นขั้นตอนที่จัดการได้ เราจะสร้างเอกสาร PDF เพิ่มตาราง และพิจารณาว่าจะแบ่งเป็นหน้าใหม่หรือไม่เมื่อเพิ่มแถวเพิ่มเติม
ขั้นตอนที่ 1: ตั้งค่าไดเรกทอรีเอกสารของคุณ
ก่อนเริ่มเขียนโค้ด ให้กำหนดตำแหน่งที่จะบันทึกไฟล์ PDF เอาต์พุตของคุณ ซึ่งเป็นสิ่งสำคัญ เพราะคุณจะพบเอกสารที่สร้างขึ้นในภายหลัง
string dataDir = "YOUR DOCUMENT DIRECTORY"; // แทนที่ด้วยไดเร็กทอรีของคุณ
ขั้นตอนที่ 2: สร้างเอกสาร PDF
ถัดไปคุณจะสร้างอินสแตนซ์ใหม่ของDocument
คลาสจากไลบรารี Aspose.PDF นี่คือจุดที่เวทมนตร์ PDF ของคุณจะเกิดขึ้น!
Document pdf = new Document();
ขั้นตอนที่ 3: สร้างหน้า
PDF ทุกไฟล์ต้องมีหน้า คุณสามารถเพิ่มหน้าใหม่ลงในเอกสารของคุณได้ดังนี้
Aspose.Pdf.Page page = pdf.Pages.Add();
ขั้นตอนที่ 4: สร้างตัวอย่างตาราง
ตอนนี้เรามาสร้างตารางจริงที่คุณต้องการตรวจสอบช่วงพักกัน
Aspose.Pdf.Table table1 = new Aspose.Pdf.Table();
table1.Margin.Top = 300; // เพิ่มพื้นที่ว่างด้านบนโต๊ะของคุณ
ขั้นตอนที่ 5: เพิ่มตารางลงในหน้า
เมื่อสร้างตารางแล้ว ขั้นตอนถัดไปคือการเพิ่มตารางลงในหน้าที่เราสร้างไว้ก่อนหน้านี้
page.Paragraphs.Add(table1);
ขั้นตอนที่ 6: กำหนดคุณสมบัติของตาราง
เรามากำหนดคุณสมบัติสำคัญบางอย่างให้กับตารางของเรา เช่น ความกว้างและเส้นขอบของคอลัมน์
table1.ColumnWidths = "100 100 100"; // แต่ละคอลัมน์มีความกว้าง 100 หน่วย
table1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F);
table1.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 1F);
ขั้นตอนที่ 7: ตั้งค่าระยะขอบเซลล์
เราต้องแน่ใจว่าเซลล์ของเรามีการรองรับบางส่วนเพื่อการนำเสนอที่ดีขึ้น ต่อไปนี้เป็นวิธีการตั้งค่า
Aspose.Pdf.MarginInfo margin = new Aspose.Pdf.MarginInfo(5f, 5f, 5f, 5f); // บน ซ้าย ขวา ล่าง
table1.DefaultCellPadding = margin;
ขั้นตอนที่ 8: เพิ่มแถวลงในตาราง
ตอนนี้เราพร้อมที่จะเพิ่มแถวแล้ว! เราจะวนซ้ำและสร้างแถว 17 แถว (ทำไมต้อง 17 แถว? นั่นแหละคือจุดที่เราจะเห็นตารางแตก!)
for (int RowCounter = 0; RowCounter <= 16; RowCounter++)
{
Aspose.Pdf.Row row1 = table1.Rows.Add();
row1.Cells.Add($"col {RowCounter}, 1");
row1.Cells.Add($"col {RowCounter}, 2");
row1.Cells.Add($"col {RowCounter}, 3");
}
ขั้นตอนที่ 9: รับความสูงของหน้า
เพื่อตรวจสอบว่าตารางของเราจะพอดีหรือไม่ เราจำเป็นต้องทราบความสูงของหน้ากระดาษ
float PageHeight = (float)pdf.PageInfo.Height;
ขั้นตอนที่ 10: คำนวณความสูงรวมของวัตถุ
ตอนนี้ มาคำนวณความสูงรวมของวัตถุทั้งหมด (ระยะขอบหน้า ระยะขอบตาราง และความสูงของตาราง) บนหน้ากัน
float TotalObjectsHeight = page.PageInfo.Margin.Top + page.PageInfo.Margin.Bottom + table1.Margin.Top + table1.GetHeight();
ขั้นตอนที่ 11: แสดงข้อมูลความสูง
การได้เห็นข้อมูลการดีบักบางส่วนนั้นมีประโยชน์ใช่หรือไม่ มาพิมพ์ข้อมูลความสูงที่เกี่ยวข้องทั้งหมดลงในคอนโซลกันเถอะ
Console.WriteLine($"PDF document Height = {PageHeight}");
Console.WriteLine($"Top Margin Info = {page.PageInfo.Margin.Top}");
Console.WriteLine($"Bottom Margin Info = {page.PageInfo.Margin.Bottom}");
Console.WriteLine($"Table-Top Margin Info = {table1.Margin.Top}");
Console.WriteLine($"Average Row Height = {table1.Rows[0].MinRowHeight}");
Console.WriteLine($"Table height {table1.GetHeight()}");
Console.WriteLine($"Total Page Height = {PageHeight}");
Console.WriteLine($"Cumulative Height including Table = {TotalObjectsHeight}");
ขั้นตอนที่ 12: ตรวจสอบสภาพการแตกของโต๊ะ
สุดท้ายเราต้องการดูว่าการเพิ่มแถวเพิ่มเติมจะทำให้ตารางถูกแบ่งไปยังหน้าอื่นหรือไม่
if ((PageHeight - TotalObjectsHeight) <= 10)
{
Console.WriteLine("Page Height - Objects Height < 10, so table will break");
}
ขั้นตอนที่ 13: บันทึกเอกสาร PDF
หลังจากทำงานหนักมาทั้งหมดแล้ว เรามาบันทึกเอกสาร PDF ไปยังไดเร็กทอรีที่คุณระบุไว้กันดีกว่า
dataDir = dataDir + "DetermineTableBreak_out.pdf";
pdf.Save(dataDir);
ขั้นตอนที่ 14: ข้อความยืนยัน
เพื่อให้คุณทราบว่าทุกอย่างเป็นไปอย่างราบรื่น ให้เราส่งข้อความยืนยันลงไป
Console.WriteLine($"\nTable break determined successfully.\nFile saved at {dataDir}");
บทสรุป
ในคู่มือนี้ เราได้อธิบายอย่างละเอียดถึงวิธีการพิจารณาว่าตารางในเอกสาร PDF จะเสียหายเมื่อใดเมื่อใช้ Aspose.PDF สำหรับ .NET โดยทำตามขั้นตอนเหล่านี้ คุณจะสามารถระบุข้อจำกัดของพื้นที่ได้อย่างง่ายดายและจัดการเค้าโครง PDF ของคุณได้ดีขึ้น ด้วยการฝึกฝน คุณจะสามารถรวบรวมทักษะในการจัดการตารางอย่างมีประสิทธิภาพและสร้าง PDF ที่สวยงามเหมือนมืออาชีพ ดังนั้น ทำไมไม่ลองดูว่ามันจะทำงานให้คุณได้อย่างไร
คำถามที่พบบ่อย
Aspose.PDF สำหรับ .NET คืออะไร?
Aspose.PDF สำหรับ .NET เป็นไลบรารีที่แข็งแกร่งซึ่งช่วยให้นักพัฒนาสามารถสร้าง แปลง และจัดการเอกสาร PDF ได้โดยตรงในแอปพลิเคชัน .NET ของพวกเขา
ฉันสามารถรับ Aspose.PDF รุ่นทดลองใช้งานฟรีได้หรือไม่?
ใช่! คุณสามารถดาวน์โหลดทดลองใช้งานฟรี เพื่อสำรวจคุณสมบัติต่างๆ ก่อนตัดสินใจซื้อ
ฉันจะรับการสนับสนุนสำหรับ Aspose.PDF ได้อย่างไร
คุณสามารถค้นหาข้อมูลที่เป็นประโยชน์และรับการสนับสนุนจากชุมชน Aspose ได้ที่ฟอรั่มสนับสนุน.
จะเกิดอะไรขึ้นถ้าฉันต้องการมากกว่า 17 แถวในตารางของฉัน?
หากคุณใช้พื้นที่เกินขนาด ตารางของคุณจะไม่พอดีกับหน้า และคุณควรดำเนินการที่เหมาะสมเพื่อจัดรูปแบบตารางให้ถูกต้อง
ฉันสามารถซื้อไลบรารี Aspose.PDF ได้จากที่ไหน
คุณสามารถซื้อห้องสมุดได้จากหน้าการซื้อ.