Praca z wyliczeniami

Praca z enumami

Aspose.PDF FOSS dla .NET używa silnie typowanych wyliczeń w całym swoim API, aby konfigurować zachowanie dokumentu, wygląd stron i formaty konwersji. Zamiast magicznych ciągów znaków lub liczb całkowitych, większość interfejsów konfiguracyjnych — od tego, jak przeglądarka PDF otwiera plik, po format, w którym jest zapisywany Document jest zapisywany jako — wyrażane są jako wartości wyliczeniowe. Ta strona wprowadza typy wyliczeń, które napotkasz najczęściej pracując z biblioteką. To starannie dobrane wprowadzenie, a nie wyczerpujący katalog; pełną listę typów wyliczeń oraz wszystkich wartości członków znajdziesz w API Reference.


Wyświetlanie i układ strony

PageMode i PageLayout są właściwościami w Document, które kontrolują, jak przeglądarka PDF prezentuje dokument przy pierwszym otwarciu — czy wyświetla konspekt, miniatury lub określony układ kolumn.

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");

Model kolorów strony

ColorType opisuje model kolorów strony — RGB, CMYK, odcienie szarości itp. Jest dostępny zarówno w Page, jak i w Color, pozwalając Ci rozgałęziać logikę w zależności od tego, jak treść na stronie jest faktycznie renderowana.

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

Kilka klas udostępnia HorizontalAlignment i VerticalAlignment do pozycjonowania treści na stronie, podczas gdy klasy adnotacji dodają TextAlignment i Justification do wyrównania tekstu w obrębie pola. Table, na przykład, udostępnia oba osie wyrównania bezpośrednio.

var table = new Table();
table.HorizontalAlignment = HorizontalAlignment.Center;
table.VerticalAlignment = VerticalAlignment.Center;

page.Paragraphs.Add(table);

FreeTextAnnotation (i typ bazowy Annotation) dodatkowo udostępnia Justification i TextAlignment dla tekstu wewnątrz adnotacji:

if (page.Annotations[1] is FreeTextAnnotation freeText)
{
    freeText.Justification = Justification.Center;
    freeText.Alignment = TextAlignment.Right;
}

Formaty wczytywania i zapisu

LoadFormat identyfikuje format źródłowy stojący za podklasą LoadOptions (na przykład, HtmlLoadOptions.LoadFormat jest zawsze LoadFormat.HTML), podczas gdy SaveFormat wybiera format wyjściowy przy wywoływaniu Document.Save.

var loadOptions = new HtmlLoadOptions();
// loadOptions.LoadFormat == LoadFormat.HTML
using var doc = new Document("input.html", loadOptions);

doc.Save("output.html", SaveFormat.Html);

Obrót strony

Rotation opisuje kąt obrotu strony i jest udostępniane przez Page.Rotate.

var page = doc.Pages[1];
page.Rotate = Rotation.on90;

Wskazówki i najlepsze praktyki

  • Preferuj przeciążenia enum zamiast przeciążeń opartych na stringach lub int, gdy oba istnieją — wychwytują nieprawidłowe wartości w czasie kompilacji.
  • Dopasuj SaveFormat do rozszerzenia pliku, które przekazujesz do Document.Save; niezgodność powoduje plik o wprowadzających w błąd treściach lub nieużytecznym rozszerzeniu.
  • Użyj podklasy LoadOptions, która odpowiada Twojemu formatowi źródłowemu (np. HtmlLoadOptions dla HTML) zamiast polegać wyłącznie na automatycznym wykrywaniu formatu.
  • Ustaw jednocześnie zarówno HorizontalAlignment, jak i VerticalAlignment przy pozycjonowaniu tabel lub akapitów — pozostawienie jednego w ustawieniu domyślnym może spowodować nieoczekiwane rozmieszczenie.
  • Traktuj ColorType jako opisowy, a nie nakazowy: raportuje, jak zawartość kolorystyczna strony jest obecnie modelowana, a nie jako ustawienie, które przełączasz w celu konwersji przestrzeni kolorów.

Typowe problemy

ProblemPrzyczynaRozwiązanie
Zapisany plik ma niewłaściwą zawartość względem jego rozszerzeniaNieprawidłowa wartość SaveFormat przekazana do Document.SavePrzekaż wartość SaveFormat, która pasuje do docelowego rozszerzenia pliku
Wczytane HTML/XML/etc. treść renderuje się niepoprawnieUżyto ogólnego LoadOptions zamiast podklasy specyficznej dla formatuUżyj podklasy pasującej do formatu źródłowego, np. HtmlLoadOptions
Tabela lub adnotacja wydaje się źle wyrównana na stronieHorizontalAlignment/VerticalAlignment pozostawiono w wartościach domyślnychJawnie ustaw oba właściwości przed dodaniem obiektu do Paragraphs
PDF otwiera się z nieoczekiwanym zachowaniem przeglądarki (brak panelu konspektu, nieprawidłowy układ kolumn)Document.PageMode/Document.PageLayout nigdy nie ustawionoUstaw oba właściwości przed wywołaniem Document.Save

FAQ

Jaka jest różnica między PageMode a PageLayout?

PageMode kontroluje stan interfejsu użytkownika podglądu przy otwarciu (na przykład, czy panel konspektu lub miniatur jest widoczny), podczas gdy PageLayout kontroluje sposób rozmieszczania stron (jedna strona, jedna kolumna, dwie kolumny itd.).

Jak mam określić, której wartości SaveFormat użyć?

Wybierz wartość SaveFormat, która odpowiada żądanemu typowi pliku wyjściowego — na przykład SaveFormat.Html dla wyjścia HTML lub SaveFormat.Pdf, aby ponownie zapisać jako PDF.

Czy mogę ustawić zarówno HorizontalAlignment, jak i VerticalAlignment na tym samym obiekcie?

Tak. Klasy takie jak Table udostępniają obie właściwości niezależnie, więc możesz je łączyć, aby pozycjonować treść wzdłuż dowolnej osi.

Czy ColorType umożliwia konwersję przestrzeni barw strony?

Nie. ColorType raportuje model kolorów aktualnie powiązany ze stroną lub wartością koloru; nie przeprowadza konwersji.

Gdzie mogę znaleźć wszystkie enumy i wszystkie ich wartości?

Ta strona obejmuje najczęściej używane wyliczenia (enums). Pełny zestaw, w tym wszystkie wartości członków, zobacz API Reference.


API Reference Podsumowanie

EnumOpis
PageModeJak przeglądarka PDF wyświetla dokument po otwarciu (spis treści, miniatury, pełny ekran itp.)
PageLayoutUkład strony używany podczas wyświetlania dokumentu (jedna strona, kolumny itp.)
ColorTypeModel kolorów strony lub wartość koloru (RGB, CMYK, skala szarości itp.)
HorizontalAlignmentPoziome wyrównanie akapitów, tabel lub adnotacji
VerticalAlignmentPionowe wyrównanie akapitów, tabel lub adnotacji
TextAlignmentPoziome wyrównanie tekstu w polach tekstowych adnotacji
JustificationJustowanie treści adnotacji w formie wolnego tekstu
LoadFormatSelektor formatu źródłowego używany przez podklasy LoadOptions
SaveFormatSelektor formatu wyjściowego używany przez Document.Save
RotationKąt obrotu strony, udostępniany przez Page.Rotate

Zobacz także

 Polski