Trabalhando com Enums
Trabalhando com Enums
Aspose.PDF FOSS for .NET usa enums tipados fortemente ao longo de seu API para configurar o comportamento do documento, a aparência da página e os formatos de conversão. Em vez de strings mágicas ou inteiros, a maioria das superfícies de configuração — desde como um visualizador de PDF abre um arquivo até qual formato um Document é salvo como — são expressos como valores de enum. Esta página apresenta os tipos de enum que você encontrará com mais frequência ao trabalhar com a biblioteca. É uma introdução curada, não um catálogo exaustivo; para a lista completa de tipos de enum e de cada valor de membro, veja o API Reference.
Exibição e Layout da Página
PageMode e PageLayout são propriedades em Document que controlam como um visualizador de PDF apresenta o documento quando ele é aberto pela primeira vez — se ele mostra contornos, miniaturas ou um layout de coluna específico.
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 Cor da Página
ColorType descreve o modelo de cor de uma página — RGB, CMYK, escala de cinza, etc. Ele é exposto tanto em Page quanto em Color, permitindo que você ramifique a lógica com base em como o conteúdo de uma página é realmente renderizado.
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
Várias classes expõem HorizontalAlignment e VerticalAlignment para posicionar conteúdo na página, enquanto classes de anotação adicionam TextAlignment e Justification para alinhamento específico de texto dentro de uma caixa. Table, por exemplo, expõe ambos os eixos de alinhamento diretamente.
var table = new Table();
table.HorizontalAlignment = HorizontalAlignment.Center;
table.VerticalAlignment = VerticalAlignment.Center;
page.Paragraphs.Add(table);FreeTextAnnotation (e o tipo base Annotation) também expõe Justification e TextAlignment para o texto dentro da anotação:
if (page.Annotations[1] is FreeTextAnnotation freeText)
{
freeText.Justification = Justification.Center;
freeText.Alignment = TextAlignment.Right;
}Formatos de Carregamento e Salvamento
LoadFormat identifica o formato de origem por trás de uma subclasse LoadOptions (por exemplo, HtmlLoadOptions.LoadFormat é sempre LoadFormat.HTML), enquanto SaveFormat seleciona o formato de saída ao chamar Document.Save.
var loadOptions = new HtmlLoadOptions();
// loadOptions.LoadFormat == LoadFormat.HTML
using var doc = new Document("input.html", loadOptions);
doc.Save("output.html", SaveFormat.Html);Rotação da Página
Rotation descreve o ângulo de rotação de uma página e é exposto através de Page.Rotate.
var page = doc.Pages[1];
page.Rotate = Rotation.on90;Dicas e Melhores Práticas
- Prefira sobrecargas de enum em vez de sobrecargas baseadas em string ou int quando ambas existirem — elas capturam valores inválidos em tempo de compilação.
- Corresponda
SaveFormatà extensão de arquivo que você passa paraDocument.Save; uma incompatibilidade produz um arquivo com conteúdo enganoso ou uma extensão inutilizável. - Use a subclasse
LoadOptionsque corresponde ao seu formato de origem (por exemplo,HtmlLoadOptionspara HTML) em vez de confiar apenas na detecção automática de formato. - Defina tanto
HorizontalAlignmentquantoVerticalAlignmentjuntos ao posicionar tabelas ou parágrafos — deixar um no padrão pode gerar posicionamento inesperado. - Considere
ColorTypecomo descritivo, não prescritivo: ele relata como o conteúdo de cor de uma página está atualmente modelado, não como uma configuração que você alterna para converter espaços de cor.
Problemas comuns
| Problema | Causa | Correção |
|---|---|---|
| Arquivo salvo tem o conteúdo errado para sua extensão | Valor SaveFormat errado passado para Document.Save | Passe o valor SaveFormat que corresponde à extensão do arquivo de destino |
| O conteúdo carregado HTML/XML/etc. é renderizado incorretamente | Usado LoadOptions genérico em vez da subclasse específica do formato | Use a subclasse que corresponda ao formato de origem, por exemplo HtmlLoadOptions |
| A tabela ou anotação aparece desalinhada na página | HorizontalAlignment/VerticalAlignment deixados nos valores padrão | Defina explicitamente ambas as propriedades antes de adicionar o objeto a Paragraphs |
| O PDF abre com comportamento inesperado do visualizador (sem painel de contorno, layout de colunas incorreto) | Document.PageMode/Document.PageLayout nunca definido | Defina ambas as propriedades antes de chamar Document.Save |
FAQ
Qual é a diferença entre PageMode e PageLayout?
PageMode controla o estado da interface do visualizador ao abrir (por exemplo, se o painel de contorno ou de miniaturas está visível), enquanto PageLayout controla como as páginas são organizadas (página única, uma coluna, duas colunas, e assim por diante).
Como sei qual valor SaveFormat usar?
Escolha o valor SaveFormat que corresponda ao tipo de arquivo de saída que você deseja — por exemplo, SaveFormat.Html para saída HTML ou SaveFormat.Pdf para salvar novamente como PDF.
Posso definir tanto HorizontalAlignment quanto VerticalAlignment no mesmo objeto?
Sim. Classes como Table expõem ambas as propriedades independentemente, de modo que você pode combiná-las para posicionar o conteúdo em qualquer eixo.
O ColorType permite converter o espaço de cor de uma página?
Não. ColorType relata o modelo de cor atualmente associado a uma página ou valor de cor; ele não realiza conversão.
Onde posso encontrar todos os enums e todos os valores?
Esta página cobre os enums mais usados. Para o conjunto completo, incluindo cada valor de membro, veja o API Reference.
API Reference Resumo
| Enum | Descrição |
|---|---|
PageMode | Como o visualizador de PDF exibe o documento ao abrir (marcadores, miniaturas, tela cheia, etc.) |
PageLayout | Layout de página usado quando o documento é exibido (página única, colunas, etc.) |
ColorType | Modelo de cor de uma página ou valor de cor (RGB, CMYK, escala de cinza, etc.) |
HorizontalAlignment | Alinhamento horizontal de parágrafos, tabelas ou anotações |
VerticalAlignment | Alinhamento vertical de parágrafos, tabelas ou anotações |
TextAlignment | Alinhamento horizontal de texto para caixas de texto de anotação |
Justification | Justificação do conteúdo de uma anotação de texto livre |
LoadFormat | Seletor de formato de origem usado por subclasses de LoadOptions |
SaveFormat | Seletor de formato de saída usado por Document.Save |
Rotation | Ângulo de rotação da página, exposto via Page.Rotate |