Arbeta med Enums

Arbeta med enum

Aspose.PDF FOSS för .NET använder starkt typade enums genom hela sin API för att konfigurera dokumentbeteende, sidutseende och konverteringsformat. Istället för magiska strängar eller heltal uttrycks de flesta konfigurationsytor — från hur en PDF-visare öppnar en fil till vilket format en Document sparas som — uttrycks som enum-värden. Denna sida introducerar de enum-typer du kommer att möta oftast när du arbetar med biblioteket. Det är en kuraterad introduktion, inte en uttömmande katalog; för den kompletta listan över enum-typer och varje medlemsvärde, se API Reference.


Sidvisning och layout

PageMode och PageLayout är egenskaper på Document som styr hur en PDF-visare presenterar dokumentet när det öppnas för första gången — om den visar konturer, miniatyrer eller en viss kolumnlayout.

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

Sidans färgmodell

ColorType beskriver färgmodellen för en sida — RGB, CMYK, gråskala osv. Den exponeras både på Page och Color, vilket låter dig förgrena logiken baserat på hur innehåll på en sida faktiskt renderas.

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

Flera klasser exponerar HorizontalAlignment och VerticalAlignment för att placera innehåll på sidan, medan annoteringsklasser lägger till TextAlignment och Justification för textspecifik justering inom en ruta. Table exponerar till exempel båda justeringsaxlarna direkt.

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

page.Paragraphs.Add(table);

FreeTextAnnotation (och bastypen Annotation) exponerar dessutom Justification och TextAlignment för texten i annoteringen:

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

Läs- och sparaformat

LoadFormat identifierar källformatet bakom en LoadOptions-subklass (till exempel är HtmlLoadOptions.LoadFormat alltid LoadFormat.HTML), medan SaveFormat väljer utdataformatet när Document.Save anropas.

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

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

Sidrotation

Rotation beskriver en sidas rotationsvinkel och exponeras via Page.Rotate.

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

Tips och bästa praxis

  • Föredra enum-överladdningar framför sträng- eller heltalsbaserade överladdningar när båda finns — de fångar ogiltiga värden vid kompileringstid.
  • Matcha SaveFormat med filändelsen du skickar till Document.Save; en felmatchning ger en fil med missvisande innehåll eller en oanvändbar filändelse.
  • Använd LoadOptions-subklassen som motsvarar ditt källformat (t.ex. HtmlLoadOptions för HTML) istället för att enbart förlita dig på automatisk formatdetektering.
  • Ställ in både HorizontalAlignment och VerticalAlignment samtidigt när du placerar tabeller eller stycken — att låta en vara på standardvärdet kan ge oväntad placering.
  • Behandla ColorType som beskrivande, inte föreskrivande: den rapporterar hur en sidas färginnehåll för närvarande är modellerat, inte en inställning du växlar för att konvertera färgrymder.

Vanliga problem

ProblemOrsakLösning
Sparad fil har fel innehåll för sin filändelseFel SaveFormat-värde skickat till Document.SaveSkicka SaveFormat-värdet som matchar målfilens filändelse
Inläst HTML/XML/etc. innehåll renderas felaktigtGenerisk LoadOptions användes istället för den format-specifika subklassenAnvänd subklassen som matchar källformatet, t.ex. HtmlLoadOptions
Tabell eller annotation verkar feljusterad på sidanHorizontalAlignment/VerticalAlignment lämnade på deras standardvärdenStäll explicit in båda egenskaperna innan objektet läggs till i Paragraphs
PDF öppnas med oväntat visningsbeteende (ingen innehållsförteckningspanel, fel kolumnlayout)Document.PageMode/Document.PageLayout sätts aldrigAnge båda egenskaperna innan du anropar Document.Save

FAQ

Vad är skillnaden mellan PageMode och PageLayout?

PageMode styr visningsprogrammets UI-tillstånd vid öppning (t.ex. om kontur- eller miniatyrpanelen är synlig), medan PageLayout styr hur sidor ordnas (enkel sida, en kolumn, två kolumner och så vidare).

Hur vet jag vilket SaveFormat-värde jag ska använda?

Välj det SaveFormat-värde som matchar den utdatafiltyp du vill ha — till exempel, SaveFormat.Html för HTML-utdata eller SaveFormat.Pdf för att spara om som PDF.

Kan jag sätta både HorizontalAlignment och VerticalAlignment på samma objekt?

Ja. Klasser som Table exponerar båda egenskaperna oberoende, så att du kan kombinera dem för att placera innehåll på någon av axlarna.

Låter ColorType mig konvertera en sidas färgrymd?

Nej. ColorType rapporterar den färgmodell som för närvarande är kopplad till en sida eller färgvärde; den utför ingen konvertering.

Var kan jag hitta varje enum och varje värde?

Denna sida täcker de mest använda uppräkningarna. För den kompletta uppsättningen, inklusive varje medlemsvärde, se API Reference.


API Reference Sammanfattning

EnumBeskrivning
PageModeHur PDF-visaren visar dokumentet vid öppning (konturer, miniatyrbilder, helskärm osv.)
PageLayoutSidlayout som används när dokumentet visas (enkel sida, kolumner osv.)
ColorTypeFärgmodell för en sida eller färgvärde (RGB, CMYK, gråskala osv.)
HorizontalAlignmentHorisontell justering av stycken, tabeller eller anteckningar
VerticalAlignmentVertikal justering av stycken, tabeller eller anteckningar
TextAlignmentHorisontell textjustering för annoteringstextrutor
JustificationJustering av innehållet i en fri textannotation
LoadFormatKällformatväljare som används av LoadOptionss underklasser
SaveFormatUtdataformatväljare som används av Document.Save
RotationSidroteringsvinkel, exponerad via Page.Rotate

Se även

 Svenska