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 SaveFormat mit der Dateierweiterung überein, die Sie an Document.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. HtmlLoadOptions für HTML), anstatt sich ausschließlich auf die automatische Formatserkennung zu verlassen.
  • Setzen Sie sowohl HorizontalAlignment als auch VerticalAlignment gemeinsam ein, wenn Sie Tabellen oder Absätze positionieren — lässt man eines auf dem Standardwert, kann das zu unerwarteten Platzierungen führen.
  • Betrachten Sie ColorType als 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

ProblemUrsacheLösung
Gespeicherte Datei hat den falschen Inhalt für ihre ErweiterungFalscher SaveFormat-Wert an Document.Save übergebenÜbergeben Sie den SaveFormat-Wert, der zur Ziel-Dateierweiterung passt
Geladene HTML/XML/etc.-Inhalte werden falsch dargestelltGenerisches LoadOptions wurde anstelle der formatspezifischen Unterklasse verwendetVerwenden Sie die Unterklasse, die dem Quellformat entspricht, z.B. HtmlLoadOptions
Tabelle oder Anmerkung erscheint auf der Seite falsch ausgerichtetHorizontalAlignment/VerticalAlignment wurden auf den Vorgabewerten belassenSetzen 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 gesetztSetzen 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

EnumBeschreibung
PageModeWie der PDF-Betrachter das Dokument beim Öffnen anzeigt (Gliederungen, Miniaturansichten, Vollbildmodus usw.)
PageLayoutSeitenlayout, das beim Anzeigen des Dokuments verwendet wird (Einzelseite, Spalten usw.)
ColorTypeFarbmodell einer Seite oder Farbwert (RGB, CMYK, Graustufen usw.)
HorizontalAlignmentHorizontale Ausrichtung von Absätzen, Tabellen oder Anmerkungen
VerticalAlignmentVertikale Ausrichtung von Absätzen, Tabellen oder Anmerkungen
TextAlignmentHorizontale Textausrichtung für Anmerkungs-Textfelder
JustificationBlocksatz des Inhalts einer Freitext-Anmerkung
LoadFormatQuellformatauswahl, die von LoadOptions-Unterklassen verwendet wird
SaveFormatAusgabeformatauswahl, die von Document.Save verwendet wird
RotationSeitenrotationswinkel, verfügbar über Page.Rotate

Siehe auch

 Deutsch