Render Table In PDF Document

Introduction

Creating professional-looking PDFs programmatically can seem like a daunting task, but with Aspose.PDF for .NET, it becomes a breeze. Whether you’re generating reports, invoices, or any other document type that requires tabular data, Aspose.PDF offers the tools you need. In this tutorial, we’re going to explore how to render tables in a PDF document step-by-step. By the end, you’ll have a solid understanding of how to manipulate tables, manage page properties, and save PDF files with ease.

Prerequisites

Before we dive into the code, here’s what you need:

  • Visual Studio: Make sure you have Visual Studio installed on your machine. You can download it here.
  • Aspose.PDF for .NET: You can easily download the Aspose.PDF library from the Aspose release page.
  • Basic Knowledge of C#: Understanding the fundamentals of C# will help you follow along better.
  • .NET Framework: Ideally, make sure you are working in a compatible .NET environment.

Once you’ve got these prerequisites set, you’re all set to start creating your PDF documents!

Import Packages

At the beginning of your C# file, you’ll need to import the necessary Aspose.PDF namespaces. This allows you to utilize the library functionalities in our project.

using System;
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;

Make sure that you have added the necessary references to the Aspose.PDF library in your project. If you’re using NuGet, you can easily add it by searching for Aspose.PDF.

Now that we have everything set up, let’s break down the process into manageable steps for rendering a table in a PDF document. Don’t worry; I’ll walk you through each step with clear instructions!

Step 1: Set Up Document and Page Info

First things first, we need to create a new document and configure its page settings. Here is how to do this:

string dataDir = "YOUR DOCUMENT DIRECTORY";
Document doc = new Document();
PageInfo pageInfo = doc.PageInfo;
Aspose.Pdf.MarginInfo marginInfo = pageInfo.Margin;

marginInfo.Left = 37;
marginInfo.Right = 37;
marginInfo.Top = 37;
marginInfo.Bottom = 37;

pageInfo.IsLandscape = true;

Explanation:

  • We start by defining where our document will be saved (dataDir).
  • Then, we create a new instance of the Document class.
  • We configure the page margins to create some breathing space around our table.
  • Finally, we set the document to landscape orientation, which helps when displaying wider tables.

Step 2: Create the First Table

Next, let’s create our first table and populate it with some sample data:

Aspose.Pdf.Table table = new Aspose.Pdf.Table();
table.ColumnWidths = "50 100"; // Define column widths

Explanation: Here, we instantiate the Table class and set the column widths. The first column will be 50 units wide, and the second column will be 100 units wide.

Step 3: Populate the Table with Rows

Now, let’s add rows to our table in a loop:

Page curPage = doc.Pages.Add(); // Adding a new page
for (int i = 1; i <= 120; i++)
{
    Aspose.Pdf.Row row = table.Rows.Add();
    row.FixedRowHeight = 15; // Set a fixed height for rows
    
    Aspose.Pdf.Cell cell1 = row.Cells.Add();
    cell1.Paragraphs.Add(new TextFragment("Content 1"));
    
    Aspose.Pdf.Cell cell2 = row.Cells.Add();
    cell2.Paragraphs.Add(new TextFragment("HHHHH"));
}

Explanation:

  • Here we create a new page to add our table.
  • We use a for loop to add 120 rows to our table. Each row has a fixed height of 15 units.
  • Inside each row, we add two cells and populate them with text.

Step 4: Add the First Table to the Page

Once we’ve populated the table, we’ll add it to the current page:

Aspose.Pdf.Paragraphs paragraphs = curPage.Paragraphs;
paragraphs.Add(table);

Explanation: This step simply adds the table we created to the current page’s paragraphs, rendering the table visible in the PDF document.

Step 5: Create a Second Table

Now, let’s make a second table with different content and add it to a new page:

Aspose.Pdf.Table table1 = new Aspose.Pdf.Table();
table1.ColumnWidths = "100 100";
for (int i = 1; i <= 10; i++)
{
    Aspose.Pdf.Row row = table1.Rows.Add();
    Aspose.Pdf.Cell cell1 = row.Cells.Add();
    cell1.Paragraphs.Add(new TextFragment("LAAAAAAA"));
    
    Aspose.Pdf.Cell cell2 = row.Cells.Add();
    cell2.Paragraphs.Add(new TextFragment("LAAGGGGGG"));
}
table1.IsInNewPage = true; // Setting second table to appear on a new page
paragraphs.Add(table1);

Explanation:

  • This code snippet creates a new table with two columns, both 100 units wide.
  • A for loop adds 10 rows with sample content.
  • By setting table1.IsInNewPage to true, we ensure this table appears on a new page, keeping things organized and uncluttered.

Step 6: Save the Document

Now that our tables are ready, let’s save our document:

dataDir = dataDir + "IsNewPageProperty_Test_out.pdf";
doc.Save(dataDir);

Explanation: We specify the filename and save the document in the defined directory. When you run this code, a PDF file titled IsNewPageProperty_Test_out.pdf will be created in your specified location.

Step 7: Confirmation Message

Finally, to let the user know that everything worked smoothly, we can add a friendly console message:

Console.WriteLine("\nTable rendered successfully on a page.\nFile saved at " + dataDir);

Explanation: This is a simple way to confirm that the operation was successful and where the user can find their new PDF file.

Conclusion

And there you have it! You’ve successfully rendered tables in a PDF document using Aspose.PDF for .NET. With just a few lines of code, you can handle and present large amounts of data in an organized format, making your documents both informative and visually appealing. Whether you’re working on inventory lists, financial reports, or educational documents, tables are an excellent way to convey complex information at a glance.

FAQ’s

Can I customize the appearance of the tables in Aspose.PDF?

Absolutely! You can adjust colors, borders, font styles, and other properties to enhance the appearance of your tables.

Is Aspose.PDF free to use?

Aspose.PDF offers a free trial version, but for commercial use, a purchase is required. You can check the pricing here.

How can I get support for Aspose.PDF issues?

You can seek assistance from the Aspose support forum here.

Are there any limitations for the free trial version?

Yes, the trial version may have certain limitations, such as watermarking on generated documents. For full functionality, consider obtaining a temporary license here.

Where can I find more information on Aspose.PDF features?

You can explore the comprehensive documentation available here.