กำหนดการแบ่งตารางในไฟล์ PDF

การแนะนำ

การสร้างและจัดการไฟล์ PDF อาจดูเหมือนกับการฝึกสัตว์ร้าย ในช่วงเวลาหนึ่ง คุณคิดว่าคุณเข้าใจมันแล้ว แต่ในช่วงเวลาต่อมา เอกสารกลับมีพฤติกรรมที่คาดเดาไม่ได้ คุณเคยสงสัยหรือไม่ว่าจะจัดการตารางใน PDF ได้อย่างมีประสิทธิภาพอย่างไร โดยเฉพาะอย่างยิ่ง วิธีการพิจารณาว่าตารางจะเสียหายเมื่อใด ในบทความนี้ เราจะเจาะลึกวิธีการใช้ Aspose.PDF สำหรับ .NET เพื่อระบุว่าตารางขยายเกินขนาดหน้ากระดาษเมื่อใด ดังนั้น เตรียมตัวให้พร้อมแล้วมาสำรวจโลกของการจัดการ PDF กันเถอะ!

ข้อกำหนดเบื้องต้น

ก่อนที่เราจะเริ่มต้นเขียนโค้ดจริง เรามาตรวจสอบก่อนว่าคุณจัดเตรียมทุกอย่างเรียบร้อยแล้ว:

  1. สภาพแวดล้อมการพัฒนา .NET: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Visual Studio หรือ IDE ที่เข้ากันได้
  2. ไลบรารี Aspose.PDF: คุณต้องเพิ่มไลบรารี Aspose.PDF ลงในโปรเจ็กต์ของคุณ คุณสามารถดาวน์โหลดได้จากดาวน์โหลด PDF Aspose หน้าหรือคุณสามารถติดตั้งได้ผ่านตัวจัดการแพ็กเกจ NuGet:
Install-Package Aspose.PDF
  1. ความรู้พื้นฐานเกี่ยวกับ 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 ได้จากที่ไหน

คุณสามารถซื้อห้องสมุดได้จากหน้าการซื้อ.