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
SaveFormatcon la extensión de archivo que pasas aDocument.Save; una discordancia produce un archivo con contenido engañoso o una extensión inutilizable. - Utiliza la subclase
LoadOptionsque corresponde a tu formato de origen (p. ej.,HtmlLoadOptionspara HTML) en lugar de confiar únicamente en la detección automática de formato. - Establece tanto
HorizontalAlignmentcomoVerticalAlignmentjuntos al posicionar tablas o párrafos — dejar uno en su valor predeterminado puede producir una ubicación inesperada. - Considera
ColorTypecomo 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
| Problema | Causa | Corrección |
|---|---|---|
| El archivo guardado tiene contenido incorrecto para su extensión | Valor SaveFormat incorrecto pasado a Document.Save | Pasa el valor SaveFormat que coincida con la extensión del archivo de destino |
| El contenido cargado de HTML/XML/etc. se renderiza incorrectamente | Se utilizó LoadOptions genérico en lugar de la subclase específica del formato | Utilice la subclase que coincida con el formato de origen, p. ej. HtmlLoadOptions |
| La tabla o anotación aparece desalineada en la página | HorizontalAlignment/VerticalAlignment dejados en sus valores predeterminados | Establezca 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 establecen | Establezca 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
| Enum | Descripción |
|---|---|
PageMode | Cómo el visor PDF muestra el documento al abrirlo (marcadores, miniaturas, pantalla completa, etc.) |
PageLayout | Diseño de página utilizado cuando se muestra el documento (una sola página, columnas, etc.) |
ColorType | Modelo de color de una página o valor de color (RGB, CMYK, escala de grises, etc.) |
HorizontalAlignment | Alineación horizontal de párrafos, tablas o anotaciones |
VerticalAlignment | Alineación vertical de párrafos, tablas o anotaciones |
TextAlignment | Alineación horizontal del texto para cuadros de anotación |
Justification | Justificación del contenido de una anotación de texto libre |
LoadFormat | Selector de formato de origen usado por subclases de LoadOptions |
SaveFormat | Selector de formato de salida usado por Document.Save |
Rotation | Ángulo de rotación de página, expuesto a través de Page.Rotate |