Seitengenerierung
Seitengenerierung
Aspose.PDF FOSS for .NET bietet eine absatzbasierte Layout‑Engine zum Erzeugen von PDF‑Inhalten. Tabellen, schwebende Kästen, Kopf‑/Fußzeilen und Stempel ermöglichen es Ihnen, strukturierte Seiten zu erstellen, ohne Content‑Stream‑Operatoren manuell zu konstruieren.
Absätze hinzufügen
Page.Paragraphs ist der Einstiegspunkt zum Hinzufügen von Inhaltselementen.
using var doc = new Document();
var page = doc.Pages.Add();
page.Paragraphs.Add(new TextFragment("Hello, PDF!"));
doc.Save("hello.pdf");Tabellen
Table unterstützt Zeilen, Zellen, Spaltenbreiten, Rahmen und Textstatus.
var table = new Table();
table.ColumnWidths = "100 200 100";
var row = table.Rows.Add();
row.Cells.Add("Name");
row.Cells.Add("Description");
row.Cells.Add("Price");
page.Paragraphs.Add(table);Zellenformatierung
Cells.Add gibt ein Cell zurück, in dem Sie Rahmen, Innenabstand und verschachtelten Inhalt konfigurieren können.
var cell = row.Cells.Add("Styled cell");
cell.Border = new BorderInfo(BorderSide.All, 0.5f);
cell.Margin = new MarginInfo(5, 5, 5, 5);Schwebende Boxen
FloatingBox positioniert Inhalte an absoluten Koordinaten auf der Seite.
var box = new FloatingBox(200, 100);
box.Left = 72;
box.Top = 700;
box.Paragraphs.Add(new TextFragment("Positioned text"));
page.Paragraphs.Add(box);Kopf- und Fußzeilen
HeaderFooter fügt wiederholenden Inhalt am oberen oder unteren Rand von Seiten hinzu.
var header = HeaderFooter.FromText("Document Title");
header.ApplyAsHeader(page);
var footer = HeaderFooter.FromText("Page {0}");
footer.ApplyAsFooter(page);Seitenstempel
PdfPageStamp legt Inhalte einer PDF‑Seite auf eine andere.
var stamp = new PdfPageStamp("watermark.pdf");
stamp.Put(page);Tipps und bewährte Verfahren
- Verwenden Sie
Table.ColumnWidthsals durch Leerzeichen getrennte Zeichenkette von Punktwerten, um das Layout zu steuern. FloatingBoxist nützlich für absolute Positionierung — kombinieren Sie es mitTablefür strukturierte Inhalte.HeaderFooter.FromTextunterstützt{0}als Seitenzahl‑Platzhalter.- Fügen Sie alle Absätze hinzu, bevor Sie
Saveaufrufen — die Layout‑Engine verarbeitet den Inhalt in der Reihenfolge. - Verwenden Sie
BorderInfo, um Rahmen zu Tabellen, Zellen und schwebenden Kästen hinzuzufügen.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| Tabelle überläuft Seite | Zu viele Zeilen für eine Seite | Die Bibliothek paginiert automatisch; passen Sie bei Bedarf die Ränder an |
| Kopfzeile wird nicht angezeigt | ApplyAsHeader called after Save | Kopfzeilen vor dem Speichern anwenden |
| FloatingBox an falscher Position | Koordinaten werden von oben links in Absatz‑Einheiten gemessen | Stellen Sie sicher, dass die Einheiten Ihren Erwartungen entsprechen |
FAQ
Kann ich mehrseitige Tabellen erstellen?
Ja. Wenn eine Tabelle die verfügbare Seitenhöhe überschreitet, wird sie automatisch auf der nächsten Seite fortgesetzt.
Wie füge ich Bilder zu Tabellenzellen hinzu?
Erstellen Sie einen Image Absatz und fügen Sie ihn der Paragraphs Sammlung der Zelle hinzu.
Kann ich Daten aus einem Array in eine Tabelle importieren?
Ja. Verwenden Sie Table.ImportArray, um eine Tabelle aus einem zweidimensionalen Array zu füllen.
API-Referenzübersicht
| Klasse / Methode | Beschreibung |
|---|---|
Paragraphs | Geordnete Inhaltselemente auf einer Seite |
Paragraphs.Add | Ein Paragraph-Element (Text, Tabelle, Diagramm usw.) anhängen |
Table | Rasterlayout mit Zeilen, Zellen und Spaltenbreiten |
Table.ImportArray | Tabelle aus einem Array füllen |
Rows | Zeilensammlung in einer Tabelle |
Cells | Zellensammlung in einer Tabellenzeile |
BorderInfo | Rahmenstil für Tabellen, Zellen und Kästen |
FloatingBox | Absolut positionierter Inhaltscontainer |
HeaderFooter | Wiederholender Kopf- oder Fußzeileninhalt |
HeaderFooter.FromText | Kopf-/Fußzeile aus einer Textvorlage erstellen |
PdfPageStamp | Eine PDF-Seite als Stempel überlagern |