Arbeiten mit Enums
Arbeiten mit Enums
Aspose.PDF FOSS für .NET verwendet stark typisierte Enums durchgehend in seinem API, um das Dokumentverhalten, das Erscheinungsbild von Seiten und Konvertierungsformate zu konfigurieren. Anstatt von magischen Zeichenketten oder Ganzzahlen werden die meisten Konfigurationsoberflächen — von der Art, wie ein PDF-Betrachter eine Datei öffnet, bis zu dem Format, in dem eine Document als gespeichert wird — als Enum-Werte ausgedrückt. Diese Seite führt die Enum-Typen ein, denen Sie am häufigsten begegnen, wenn Sie mit der Bibliothek arbeiten. Es ist eine kuratierte Einführung, kein erschöpfender Katalog; für die vollständige Liste der Enum-Typen und aller Member-Werte siehe die API Reference.
Seitenanzeige und Layout
PageMode und PageLayout sind Eigenschaften von Document, die steuern, wie ein PDF-Betrachter das Dokument beim ersten Öffnen darstellt — ob er Gliederungen, Miniaturansichten oder ein bestimmtes Spaltenlayout anzeigt.
using var doc = Document.Open("input.pdf");
// Show the outline (bookmarks) panel when the document opens
doc.PageMode = PageMode.UseOutlines;
// Display pages in two columns, first page on the left
doc.PageLayout = PageLayout.TwoColumnLeft;
doc.Save("output.pdf");Seitenfarbmodell
ColorType beschreibt das Farbmodell einer Seite — RGB, CMYK, Graustufen usw. Es ist sowohl auf Page als auch auf Color verfügbar und ermöglicht es Ihnen, Logik basierend darauf zu verzweigen, wie Inhalte auf einer Seite tatsächlich gerendert werden.
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
if (page.ColorType == ColorType.Grayscale)
{
// Apply grayscale-specific handling, e.g. skip color-profile conversion
}Alignment
Mehrere Klassen stellen HorizontalAlignment und VerticalAlignment zur Positionierung von Inhalten auf der Seite bereit, während Annotationsklassen TextAlignment und Justification für textspezifische Ausrichtung innerhalb einer Box hinzufügen. Table zum Beispiel stellt beide Ausrichtungsachsen direkt zur Verfügung.
var table = new Table();
table.HorizontalAlignment = HorizontalAlignment.Center;
table.VerticalAlignment = VerticalAlignment.Center;
page.Paragraphs.Add(table);FreeTextAnnotation (und der Basistyp Annotation) stellt zusätzlich Justification und TextAlignment für den Text innerhalb der Annotation bereit:
if (page.Annotations[1] is FreeTextAnnotation freeText)
{
freeText.Justification = Justification.Center;
freeText.Alignment = TextAlignment.Right;
}Lade- und Speicherformate
LoadFormat identifiziert das Quellformat hinter einer LoadOptions-Unterklasse (zum Beispiel ist HtmlLoadOptions.LoadFormat immer LoadFormat.HTML), während SaveFormat das Ausgabeformat beim Aufruf von Document.Save auswählt.
var loadOptions = new HtmlLoadOptions();
// loadOptions.LoadFormat == LoadFormat.HTML
using var doc = new Document("input.html", loadOptions);
doc.Save("output.html", SaveFormat.Html);Seitendrehung
Rotation beschreibt den Rotationswinkel einer Seite und wird über Page.Rotate bereitgestellt.
var page = doc.Pages[1];
page.Rotate = Rotation.on90;Tipps und bewährte Verfahren
- Bevorzuge Enum-Überladungen gegenüber string- oder int-basierten Überladungen, wenn beide existieren — sie fangen ungültige Werte bereits zur Compile-Zeit ab.
- Stimmen
SaveFormatmit der Dateierweiterung überein, die Sie anDocument.Saveübergeben; eine Diskrepanz führt zu einer Datei mit irreführendem Inhalt oder einer unbrauchbaren Erweiterung. - Verwenden Sie die
LoadOptions-Unterklasse, die Ihrem Quellformat entspricht (z.B.HtmlLoadOptionsfür HTML), anstatt sich ausschließlich auf die automatische Formatserkennung zu verlassen. - Setzen Sie sowohl
HorizontalAlignmentals auchVerticalAlignmentgemeinsam ein, wenn Sie Tabellen oder Absätze positionieren — lässt man eines auf dem Standardwert, kann das zu unerwarteten Platzierungen führen. - Betrachten Sie
ColorTypeals beschreibend, nicht vorschreibend: Es gibt an, wie der Farbinhalt einer Seite derzeit modelliert ist, und ist keine Einstellung, die Sie umschalten, um Farbräume zu konvertieren.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| Gespeicherte Datei hat den falschen Inhalt für ihre Erweiterung | Falscher SaveFormat-Wert an Document.Save übergeben | Übergeben Sie den SaveFormat-Wert, der zur Ziel-Dateierweiterung passt |
| Geladene HTML/XML/etc.-Inhalte werden falsch dargestellt | Generisches LoadOptions wurde anstelle der formatspezifischen Unterklasse verwendet | Verwenden Sie die Unterklasse, die dem Quellformat entspricht, z.B. HtmlLoadOptions |
| Tabelle oder Anmerkung erscheint auf der Seite falsch ausgerichtet | HorizontalAlignment/VerticalAlignment wurden auf den Vorgabewerten belassen | Setzen Sie beide Eigenschaften explizit, bevor Sie das Objekt zu Paragraphs hinzufügen |
| PDF öffnet sich mit unerwartetem Viewer-Verhalten (kein Gliederungs-Panel, falsches Spaltenlayout) | Document.PageMode/Document.PageLayout wurden nie gesetzt | Setzen Sie beide Eigenschaften, bevor Sie Document.Save aufrufen. |
FAQ
Was ist der Unterschied zwischen PageMode und PageLayout?
PageMode steuert den UI-Zustand des Betrachters beim Öffnen (zum Beispiel, ob das Gliederungs- oder Miniatur-Panel sichtbar ist), während PageLayout festlegt, wie Seiten angeordnet werden (Einzelne Seite, eine Spalte, zwei Spalten usw.).
Wie erkenne ich, welchen SaveFormat-Wert ich verwenden soll?
Wählen Sie den SaveFormat-Wert, der dem gewünschten Ausgabedateityp entspricht — zum Beispiel SaveFormat.Html für HTML-Ausgabe oder SaveFormat.Pdf, um als PDF erneut zu speichern.
Kann ich sowohl HorizontalAlignment als auch VerticalAlignment auf demselben Objekt festlegen?
Ja. Klassen wie Table stellen beide Eigenschaften unabhängig zur Verfügung, sodass Sie sie kombinieren können, um Inhalte entlang einer beliebigen Achse zu positionieren.
Ermöglicht ColorType mir, den Farbraum einer Seite zu konvertieren?
Nein. ColorType gibt das derzeit mit einer Seite oder einem Farbwert verbundene Farbmodell zurück; eine Konvertierung wird nicht durchgeführt.
Wo finde ich alle Enums und alle Werte?
Diese Seite behandelt die am häufigsten verwendeten Enums. Für das komplette Set, einschließlich aller Mitgliedswerte, siehe die API Reference.
API Reference Zusammenfassung
| Enum | Beschreibung |
|---|---|
PageMode | Wie der PDF-Betrachter das Dokument beim Öffnen anzeigt (Gliederungen, Miniaturansichten, Vollbildmodus usw.) |
PageLayout | Seitenlayout, das beim Anzeigen des Dokuments verwendet wird (Einzelseite, Spalten usw.) |
ColorType | Farbmodell einer Seite oder Farbwert (RGB, CMYK, Graustufen usw.) |
HorizontalAlignment | Horizontale Ausrichtung von Absätzen, Tabellen oder Anmerkungen |
VerticalAlignment | Vertikale Ausrichtung von Absätzen, Tabellen oder Anmerkungen |
TextAlignment | Horizontale Textausrichtung für Anmerkungs-Textfelder |
Justification | Blocksatz des Inhalts einer Freitext-Anmerkung |
LoadFormat | Quellformatauswahl, die von LoadOptions-Unterklassen verwendet wird |
SaveFormat | Ausgabeformatauswahl, die von Document.Save verwendet wird |
Rotation | Seitenrotationswinkel, verfügbar über Page.Rotate |