Tabellen können Daten visuell effektiver als reiner Text präsentieren. Durch das Einfügen von Tabellen in PDF-Dokumente können Leser Beziehungen zwischen Daten leichter erfassen und dadurch das Dokument besser verstehen. Zudem sind Tabellen auch optisch ansprechend. Durch das Formatieren von Tabellen können Sie einen tiefen Eindruck bei den Lesern hinterlassen.
Dieser Artikel zeigt, wie man mit Free Spire.PDF for .NET Tabellen in PDF-Dokumenten erstellt.
- Erstellen von Tabellen in PDF-Dokumenten mit der PdfTable-Klasse
- Erstellen von Tabellen in PDF-Dokumenten mit der PdfGrid-Klasse
Wir können die PdfTable-Klasse und die PdfGrid-Klasse verwenden, um mit Tabellen in PDF-Dokumenten zu arbeiten. Die PdfTable-Klasse wird verwendet, um schnell einfache, reguläre Tabellen ohne allzu viel Formatierung zu erstellen, während die PdfGrid-Klasse verwendet wird, um komplexere Tabellen zu erstellen.
Hinzufügen von Abhängigkeiten
Sie können die Abhängigkeit manuell von der offiziellen Website herunterladen, im NuGet Package Manager suchen oder sie mit dem Package Manager Console hinzufügen mit:
PM> Install-Package FreeSpire.PDF
Erstellen von Tabellen in PDF-Dokumenten mit der PdfTable-Klasse
Die detaillierten Schritte zur Erstellung einer einfachen formatierten Tabelle mit der Klasse PdfTable sind wie folgt:
- Erstellen Sie ein PdfDocument-Objekt.
- Fügen Sie mit der Methode PdfDocument.Pages.Add() eine Seite zu dem Dokument hinzu.
- Erstellen Sie ein Objekt der Klasse PdfTable.
- Gestalten Sie die Tabelle mit der PdfTable-Klasse.
- Einfügen von Daten in die Tabelle durch die Klasse PdfTable.
- Setzen Sie die Zeilenhöhe und die Farbe der Tabelle über das Ereignis PdfTable.BeginRowLayout.
- Zeichnen Sie die Tabelle auf der Seite mit der Methode PdfTable.Draw().
- Speichern Sie das Dokument mit der Methode PdfDocument.SaveToFile().
Code-Beispiel:
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Tables;
using System;
using System.Data;
using System.Drawing;
namespace CreatePDFTable
{
internal class Program
{
static void Main(string[] args)
{
// Erstelle ein Objekt der Klasse PdfDocument
PdfDocument doc = new PdfDocument();
// Füge dem Dokument eine Seite hinzu
PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(40));
// Erstelle ein Objekt der Klasse PdfTable
PdfTable table = new PdfTable();
// Setze die Schriftart für Header und Zellen
table.Style.DefaultStyle.Font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC", 12f, FontStyle.Regular), true);
table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC Medium", 12f, FontStyle.Bold), true);
// Erstelle ein Objekt der Klasse DataTable
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Nummer");
dataTable.Columns.Add("Name");
dataTable.Columns.Add("Abteilung");
dataTable.Columns.Add("Position");
dataTable.Columns.Add("Level");
dataTable.Rows.Add(new string[] { "1", "David", "Entwicklungsabteilung", "Abteilungsleiter", "1" });
dataTable.Rows.Add(new string[] { "3", "Tsuzuki Hashi Tomoaki", "Personalabteilung", "Abteilungsleiter", "1" });
dataTable.Rows.Add(new string[] { "4", "Onoshita Sachiko", "Vertriebsabteilung", "Abteilungsleiter", "1" });
dataTable.Rows.Add(new string[] { "7", "Murata Yui", "Vertriebsabteilung", "Mitarbeiter", "2" });
dataTable.Rows.Add(new string[] { "9", "Inui Yuma", "Personalabteilung", "Mitarbeiter", "2" });
dataTable.Rows.Add(new string[] { "11", "Imai Hikomasa", "Entwicklungsabteilung", "Mitarbeiter", "2" });
// Setze die Datenquelle für die Tabelle
table.DataSource = dataTable;
// Zeige die Tabelle Header an (standardmäßig nicht angezeigt)
table.Style.ShowHeader = true;
// Setze die Hintergrundfarbe und die Textfarbe für den Tabellenheader
table.Style.HeaderStyle.BackgroundBrush = PdfBrushes.Gray;
table.Style.HeaderStyle.TextBrush = PdfBrushes.White;
// Setze die Textausrichtung für den Tabellenheader
table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
// Setze die Textausrichtung für andere Zellen
for (int i = 0; i < table.Columns.Count; i++)
{
table.Columns[i].StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
}
// Melde ein Ereignis an
table.BeginRowLayout += Table_BeginRowLayout;
// Zeichne die Tabelle auf der Seite
table.Draw(page, new PointF(0, 30));
// Speichere das PDF-Dokument
doc.SaveToFile("PdfTable.pdf");
doc.Dispose();
}
// Ereignishandler
private static void Table_BeginRowLayout(object sender, BeginRowLayoutEventArgs args)
{
// Setze die minimale Höhe der Zeile
args.MinimalHeight = 20f;
// Ersetze die Hintergrundfarbe der Zeile
if (args.RowIndex < 0)
{
return;
}
if (args.RowIndex % 2 == 1)
{
args.CellStyle.BackgroundBrush = PdfBrushes.LightGray;
}
else
{
args.CellStyle.BackgroundBrush = PdfBrushes.White;
}
}
}
}
Erstellen von Tabellen in PDF-Dokumenten mit der PdfGrid-Klasse
Die PdfGrid-Klasse verfügt über weitere Funktionen zur Erstellung komplexer formatierter Tabellen. Die detaillierten Schritte zur Erstellung einer Tabelle mit der PdfGrid-Klasse sind wie folgt:
- Erstellen Sie ein PdfDocument-Objekt.
- Fügen Sie dem Dokument mit der Methode PdfDocument.Pages.Add() eine Seite hinzu.
- Erstellen Sie ein Objekt der Klasse PdfGrid.
- Legen Sie den Tabellenstil mit der Eigenschaft PdfGrid.Style fest.
- Fügen Sie mit der Methode PdfGrid.Rows.Add() Zeilen zur Tabelle hinzu.
- Einfügen von Daten in die angegebenen Zellen mithilfe der Eigenschaft PdfGridRow.Cells[index].Value.
- Vertikales oder horizontales Zusammenführen von Zellen mithilfe der Eigenschaften PdfGridRow.RowSpan oder PdfGridRow.ColumnSpan.
- Formatieren Sie die angegebenen Zellen mithilfe der Eigenschaften PdfGridRow.Cells[index].StringFormat und PdfGridRow.Cells[index].Style.
- Zeichnen Sie die Tabelle auf der Seite mit der Methode PdfGrid.Draw().
- Speichern Sie das Dokument mit der Methode PdfDocument.SaveToFile().
Code-Beispiel:
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Grid;
using System;
using System.Drawing;
namespace CreatePDFGrid
{
internal class Program
{
static void Main(string[] args)
{
// Erstelle ein Objekt der Klasse PdfDocument
PdfDocument doc = new PdfDocument();
// Füge dem Dokument eine Seite hinzu
PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(40));
// Erstelle ein Objekt der Klasse PdfGrid
PdfGrid grid = new PdfGrid();
// Setze das Zell-Padding
grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);
// Setze die Schriftart
grid.Style.Font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC", 13f, FontStyle.Regular), true);
// Füge Zeilen hinzu
PdfGridRow row1 = grid.Rows.Add();
PdfGridRow row2 = grid.Rows.Add();
PdfGridRow row3 = grid.Rows.Add();
PdfGridRow row4 = grid.Rows.Add();
grid.Columns.Add(4);
// Setze die Spaltenbreiten
foreach (PdfGridColumn col in grid.Columns)
{
col.Width = 110f;
}
// Fülle Daten in spezifische Zellen ein
row1.Cells[0].Value = "Bestell- und Zahlungsstatus";
row2.Cells[0].Value = "Bestellnummer";
row2.Cells[1].Value = "Datum";
row2.Cells[2].Value = "Kundenname";
row2.Cells[3].Value = "Zahlungsstatus";
row3.Cells[0].Value = "00223";
row3.Cells[1].Value = "2. Juni 2022";
row3.Cells[2].Value = "ZO Property";
row3.Cells[3].Value = "Bezahlt";
row4.Cells[0].Value = "00224";
row4.Cells[1].Value = "3. Juni 2022";
row4.Cells[3].Value = "Unbezahlt";
// Zusammenführen von Zellen über Spalten
row1.Cells[0].ColumnSpan = 4;
// Zusammenführen von Zellen über Zeilen
row3.Cells[2].RowSpan = 2;
// Setzen der Textausrichtung für spezifische Zellen
row1.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Center);
row3.Cells[2].StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
// Setzen der Hintergrundfarbe für spezifische Zellen
row1.Cells[0].Style.BackgroundBrush = PdfBrushes.Orange;
row4.Cells[3].Style.BackgroundBrush = PdfBrushes.LightGray;
// Setzen des Rahmenformats
PdfBorders borders = new PdfBorders();
borders.All = new PdfPen(Color.Orange, 0.8f);
foreach (PdfGridRow pgr in grid.Rows)
{
foreach (PdfGridCell pgc in pgr.Cells)
{
pgc.Style.Borders = borders;
}
}
// Zeichne die Tabelle auf der Seite
grid.Draw(page, new PointF(0, 30));
// Speichere das PDF-Dokument
doc.SaveToFile("PdfGrid.pdf");
doc.Dispose();
}
}
}
Dieser Artikel erklärt, wie man mit den von Free Spire.PDF for .NET bereitgestellten PdfTable- und PdfGrid-Klassen Tabellen in PDF-Dokumenten erstellt. Entwickler können ihre eigenen Formulare gemäß den Formatierungsanforderungen unter Verwendung dieser beiden Klassen erstellen.
Free Spire.PDF for .NET bietet viele weitere Funktionen, darunter:
Top comments (0)