Trabajando con enumeraciones

Trabajando con enumeraciones

Trabajando con Enumeraciones

Aspose.PDF FOSS para .NET utiliza enumeraciones fuertemente tipadas en todo su API para configurar el comportamiento del documento, la apariencia de la página y los formatos de conversión. En lugar de cadenas mágicas o enteros, la mayoría de las superficies de configuración — desde cómo un visor PDF abre un archivo hasta qué formato se guarda — se expresan como valores de enumeración. Document se guarda como — se expresan como valores de enumeración. Esta página introduce los tipos de enumeración que encontrarás con mayor frecuencia al trabajar con la biblioteca. Es una introducción curada, no un catálogo exhaustivo; para la lista completa de tipos de enumeración y cada valor de miembro, consulta el API Reference.


Visualización y Diseño de la Página

PageMode y PageLayout son propiedades en Document que controlan cómo un visor de PDF presenta el documento cuando se abre por primera vez — si muestra contornos, miniaturas o un diseño de columna particular.

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

Modelo de Color de la Página

ColorType describe el modelo de color de una página — RGB, CMYK, escala de grises, etc. Se expone tanto en Page como en Color, permitiéndote ramificar la lógica según cómo se renderiza el contenido de una página.

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

Varias clases exponen HorizontalAlignment y VerticalAlignment para posicionar contenido en la página, mientras que las clases de anotación añaden TextAlignment y Justification para la alineación específica del texto dentro de un cuadro. Table, por ejemplo, expone ambos ejes de alineación directamente.

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

page.Paragraphs.Add(table);

FreeTextAnnotation (y el tipo base Annotation) además expone Justification y TextAlignment para el texto dentro de la anotación:

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

Formatos de carga y guardado

LoadFormat identifica el formato de origen detrás de una subclase LoadOptions (por ejemplo, HtmlLoadOptions.LoadFormat siempre es LoadFormat.HTML), mientras que SaveFormat selecciona el formato de salida al invocar Document.Save.

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

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

Rotación de página

Rotation describe el ángulo de rotación de una página y se expone a través de Page.Rotate.

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

Consejos y buenas prácticas

  • Prefiere las sobrecargas de enumeraciones sobre las sobrecargas basadas en cadenas o enteros cuando ambas existen — capturan valores inválidos en tiempo de compilación.
  • Haz coincidir SaveFormat con la extensión de archivo que pasas a Document.Save; una discordancia produce un archivo con contenido engañoso o una extensión inutilizable.
  • Utiliza la subclase LoadOptions que corresponde a tu formato de origen (p. ej., HtmlLoadOptions para HTML) en lugar de confiar únicamente en la detección automática de formato.
  • Establece tanto HorizontalAlignment como VerticalAlignment juntos al posicionar tablas o párrafos — dejar uno en su valor predeterminado puede producir una ubicación inesperada.
  • Considera ColorType como descriptivo, no prescriptivo: informa cómo se modela actualmente el contenido de color de una página, no es una configuración que actives para convertir espacios de color.

Problemas comunes

ProblemaCausaCorrección
El archivo guardado tiene contenido incorrecto para su extensiónValor SaveFormat incorrecto pasado a Document.SavePasa el valor SaveFormat que coincida con la extensión del archivo de destino
El contenido cargado de HTML/XML/etc. se renderiza incorrectamenteSe utilizó LoadOptions genérico en lugar de la subclase específica del formatoUtilice la subclase que coincida con el formato de origen, p. ej. HtmlLoadOptions
La tabla o anotación aparece desalineada en la páginaHorizontalAlignment/VerticalAlignment dejados en sus valores predeterminadosEstablezca explícitamente ambas propiedades antes de agregar el objeto a Paragraphs
El PDF se abre con un comportamiento inesperado del visor (sin panel de esquema, disposición de columnas incorrecta)Document.PageMode/Document.PageLayout nunca se establecenEstablezca ambas propiedades antes de llamar a Document.Save

FAQ

¿Cuál es la diferencia entre PageMode y PageLayout?

PageMode controla el estado de la interfaz del visor al abrirse (por ejemplo, si el panel de esquema o de miniaturas está visible), mientras que PageLayout controla cómo se disponen las páginas (una sola página, una columna, dos columnas, etc.).

¿Cómo sé qué valor de SaveFormat usar?

Elija el valor de SaveFormat que coincida con el tipo de archivo de salida que desea — por ejemplo, SaveFormat.Html para salida HTML o SaveFormat.Pdf para volver a guardar como PDF.

¿Puedo establecer tanto HorizontalAlignment como VerticalAlignment en el mismo objeto?

Sí. Clases como Table exponen ambas propiedades de forma independiente, por lo que puede combinarlas para posicionar el contenido en cualquiera de los ejes.

¿ColorType me permite convertir el espacio de color de una página?

No. ColorType informa del modelo de color actualmente asociado a una página o valor de color; no realiza conversiones.

¿Dónde puedo encontrar cada enum y cada valor?

Esta página cubre los enums más usados. Para el conjunto completo, incluidos todos los valores de los miembros, vea el API Reference.


API Reference Resumen

EnumDescripción
PageModeCómo el visor PDF muestra el documento al abrirlo (marcadores, miniaturas, pantalla completa, etc.)
PageLayoutDiseño de página utilizado cuando se muestra el documento (una sola página, columnas, etc.)
ColorTypeModelo de color de una página o valor de color (RGB, CMYK, escala de grises, etc.)
HorizontalAlignmentAlineación horizontal de párrafos, tablas o anotaciones
VerticalAlignmentAlineación vertical de párrafos, tablas o anotaciones
TextAlignmentAlineación horizontal del texto para cuadros de anotación
JustificationJustificación del contenido de una anotación de texto libre
LoadFormatSelector de formato de origen usado por subclases de LoadOptions
SaveFormatSelector de formato de salida usado por Document.Save
RotationÁngulo de rotación de página, expuesto a través de Page.Rotate

Ver también

 Español