Werken met Enums
Werken met Enums
Aspose.PDF FOSS voor .NET gebruikt sterk getypeerde enumeraties door haar API heen om documentgedrag, paginavoorstelling en conversieformaten te configureren. In plaats van magische strings of gehele getallen, worden de meeste configuratie-oppervlakken — van hoe een PDF-viewer een bestand opent tot welk formaat een Document wordt opgeslagen — weergegeven als enum-waarden. Deze pagina introduceert de enum-types die je het vaakst tegenkomt bij het werken met de bibliotheek. Het is een samengestelde introductie, geen uitputtende catalogus; voor de volledige lijst van enum-types en elke lidwaarde, zie de API Reference.
Paginapresentatie en -indeling
PageMode en PageLayout zijn eigenschappen op Document die bepalen hoe een PDF-viewer het document presenteert wanneer het voor het eerst wordt geopend — of er een inhoudsopgave, miniatuurafbeeldingen of een specifieke kolomindeling wordt getoond.
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");Paginakleurmodel
ColorType beschrijft het kleurmodel van een pagina — RGB, CMYK, grijswaarden, enzovoort. Het is beschikbaar op zowel Page als Color, waardoor u logica kunt vertakken op basis van hoe de inhoud op een pagina daadwerkelijk wordt gerenderd.
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
Verschillende klassen bieden HorizontalAlignment en VerticalAlignment aan voor het positioneren van inhoud op de pagina, terwijl annotatieklassen TextAlignment en Justification toevoegen voor tekstspecifieke uitlijning binnen een vak. Table biedt bijvoorbeeld beide uitlijningsassen direct.
var table = new Table();
table.HorizontalAlignment = HorizontalAlignment.Center;
table.VerticalAlignment = VerticalAlignment.Center;
page.Paragraphs.Add(table);FreeTextAnnotation (en het Annotation basistype) biedt bovendien Justification en TextAlignment aan voor de tekst binnen de annotatie:
if (page.Annotations[1] is FreeTextAnnotation freeText)
{
freeText.Justification = Justification.Center;
freeText.Alignment = TextAlignment.Right;
}Laad- en opslagformaten
LoadFormat identificeert het bronformaat achter een LoadOptions subklasse (bijvoorbeeld, HtmlLoadOptions.LoadFormat is altijd LoadFormat.HTML), terwijl SaveFormat het uitvoerformaat selecteert bij het aanroepen van Document.Save.
var loadOptions = new HtmlLoadOptions();
// loadOptions.LoadFormat == LoadFormat.HTML
using var doc = new Document("input.html", loadOptions);
doc.Save("output.html", SaveFormat.Html);Paginarotatie
Rotation beschrijft de rotatiehoek van een pagina en wordt blootgesteld via Page.Rotate.
var page = doc.Pages[1];
page.Rotate = Rotation.on90;Tips en best practices
- Geef de voorkeur aan enum-overloads boven string- of int-gebaseerde overloads waar beide bestaan — ze vangen ongeldige waarden al tijdens het compileren.
- Koppel
SaveFormataan de bestandsextensie die je doorgeeft aanDocument.Save; een mismatch levert een bestand op met misleidende inhoud of een onbruikbare extensie. - Gebruik de
LoadOptionssubklasse die overeenkomt met je bronformaat (bijv.HtmlLoadOptionsvoor HTML) in plaats van alleen te vertrouwen op automatische formaatdetectie. - Stel zowel
HorizontalAlignmentalsVerticalAlignmenttegelijk in bij het positioneren van tabellen of alinea’s — het op de standaardwaarde laten van één van beiden kan onverwachte plaatsing veroorzaken. - Beschouw
ColorTypeals beschrijvend, niet als voorschrijvend: het rapporteert hoe de kleurinformatie van een pagina momenteel gemodelleerd is, niet als een instelling die je omschakelt om kleurenruimtes te converteren.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Opgeslagen bestand heeft onjuiste inhoud voor de extensie | Verkeerde SaveFormat-waarde doorgegeven aan Document.Save | Geef de SaveFormat-waarde door die overeenkomt met de doelbestandsextensie |
| Geladen HTML/XML/etc. inhoud wordt onjuist weergegeven | Algemene LoadOptions gebruikt in plaats van de formaat-specifieke subklasse | Gebruik de subklasse die overeenkomt met het bronformaat, bijv. HtmlLoadOptions |
| Tabel of annotatie lijkt scheef uitgelijnd op de pagina | HorizontalAlignment/VerticalAlignment op hun standaardwaarden gelaten | Stel beide eigenschappen expliciet in voordat u het object toevoegt aan Paragraphs |
| PDF opent met onverwacht viewer-gedrag (geen inhoudsopgavepaneel, verkeerde kolomindeling) | Document.PageMode/Document.PageLayout nooit ingesteld | Stel beide eigenschappen in voordat u Document.Save aanroept |
FAQ
Wat is het verschil tussen PageMode en PageLayout?
PageMode regelt de UI-toestand van de viewer bij het openen (bijvoorbeeld of het overzichts- of miniaturen-paneel zichtbaar is), terwijl PageLayout bepaalt hoe pagina’s worden gerangschikt (enkele pagina, één kolom, twee kolommen, enzovoort).
Hoe weet ik welke SaveFormat waarde ik moet gebruiken?
Kies de SaveFormat waarde die overeenkomt met het gewenste uitvoerbestandtype — bijvoorbeeld SaveFormat.Html voor HTML uitvoer of SaveFormat.Pdf om opnieuw op te slaan als PDF.
Kan ik zowel HorizontalAlignment als VerticalAlignment op hetzelfde object instellen?
Ja. Klassen zoals Table exposeren beide eigenschappen onafhankelijk, zodat je ze kunt combineren om inhoud op beide assen te positioneren.
Laat ColorType me de kleurruimte van een pagina converteren?
Nee. ColorType rapporteert het kleurmodel dat momenteel aan een pagina of kleurwaarde is gekoppeld; het voert geen conversie uit.
Waar kan ik elke enum en elke waarde vinden?
Deze pagina behandelt de meest gebruikte enumeraties. Voor de volledige set, inclusief elke lidwaarde, zie de API Reference.
API Reference Samenvatting
| Enum | Beschrijving |
|---|---|
PageMode | Hoe de PDF-viewer het document weergeeft bij openen (overzichten, miniaturen, volledig scherm, enz.) |
PageLayout | Paginalay-out die wordt gebruikt wanneer het document wordt weergegeven (enkele pagina, kolommen, enz.) |
ColorType | Kleurmodel van een pagina of kleurwaarde (RGB, CMYK, grijswaarden, enz.) |
HorizontalAlignment | Horizontale uitlijning van alinea’s, tabellen of annotaties |
VerticalAlignment | Verticale uitlijning van alinea’s, tabellen of annotaties |
TextAlignment | Horizontale tekstuitlijning voor annotatietekstvakken |
Justification | Uitvulling van de inhoud van een vrije-tekstannotatie |
LoadFormat | Bronformaatselector gebruikt door LoadOptions subklassen |
SaveFormat | Uitvoerformaatselector gebruikt door Document.Save |
Rotation | Paginarotatiehoek, beschikbaar via Page.Rotate |