Obtenha a Contagem de Páginas e Extraia Informações do Documento com GroupDocs.Editor
Introdução
Neste tutorial abrangente, você aprenderá a obter a contagem de páginas e extrair informações detalhadas do documento — incluindo formato, tamanho e status de criptografia — usando o GroupDocs.Editor para .NET. Seja você quem esteja construindo um sistema de gerenciamento de documentos, um mecanismo de relatórios ou um pipeline de conversão automatizada, entender os metadados de um arquivo é o primeiro passo para um processamento confiável. Vamos percorrer todo o fluxo de trabalho, desde o carregamento de um arquivo até a liberação segura dos recursos.
Respostas Rápidas
- Como obtenho a contagem de páginas de um documento?
Chameeditor.GetDocumentInfo().PageCountapós carregar o arquivo comEditor. - Quais formatos de arquivo são suportados para extração de metadados?
Mais de 50 formatos, incluindo DOCX, XLSX, PPTX, PDF, TXT e HTML. - Posso extrair metadados de arquivos protegidos por senha?
Sim—forneça a senha ao criar a instância doEditor. - Preciso liberar recursos manualmente?
Absolutamente; sempre chameeditor.Dispose()ou envolva o editor em um blocousing. - Qual versão do GroupDocs.Editor é necessária?
A versão estável mais recente (v23.12+ no momento da escrita) suporta todos os recursos mostrados.
O que é “obter contagem de páginas” no GroupDocs.Editor?
GetDocumentInfo() é um método que retorna um objeto DocumentInfo contendo a contagem de páginas, formato, tamanho e outros metadados do documento. Essa única chamada fornece insight imediato sem a necessidade de analisar o arquivo manualmente. Ao usar esse método, você evita carregar o documento inteiro na memória, o que melhora o desempenho especialmente para arquivos grandes e reduz o consumo de recursos do servidor.
Por que extrair metadados de documentos com GroupDocs.Editor?
O GroupDocs.Editor pode processar mais de 50 formatos de entrada e saída e recuperar metadados para arquivos de até 2 GB sem carregar o documento inteiro na memória. Essa eficiência reduz a carga do servidor em até 70 % comparado ao parsing completo do documento, tornando-o ideal para aplicações de alto volume.
Pré-requisitos
Antes de começar, certifique‑se de que você tem:
- Noções básicas de desenvolvimento C# – você deve estar confortável com o Visual Studio e estruturas de projetos .NET.
- Visual Studio 2022 (ou qualquer versão recente) instalado em sua máquina.
- GroupDocs.Editor for .NET – baixe o pacote mais recente na página de download.
Como Carregar Seu Documento?
Editor é a classe principal que representa um documento e fornece métodos para carregá‑lo e manipulá‑lo. Carregue o arquivo alvo criando uma instância de Editor e passando o caminho do arquivo. O editor detecta automaticamente o formato, portanto não é necessário especificar opções de carregamento. Essa abordagem funciona para qualquer tipo de arquivo suportado e simplifica a configuração inicial.
using System;
using GroupDocs.Editor.Metadata;
Como Recuperar Informações do Documento?
GetDocumentInfo() retorna um objeto DocumentInfo contendo metadados como contagem de páginas, formato, tamanho e status de criptografia. Após o carregamento, chame esse método para obter o objeto. O DocumentInfo retornado fornece um panorama conciso das características do arquivo, permitindo que você tome decisões sem processamento adicional.
string docxInputFilePath = "YourSampleDocument.docx";
Editor editorDocx = new Editor(docxInputFilePath);
Como Determinar o Tipo de Documento?
DocumentType é um enum que indica se o documento é WordProcessing, Spreadsheet ou Text. Saber se um arquivo é de processamento de texto, planilha ou texto simples influencia como você o manipulará posteriormente. Use a propriedade DocumentType do objeto DocumentInfo para tomar essa decisão e direcionar sua lógica adequadamente.
IDocumentInfo infoDocx = editorDocx.GetDocumentInfo(null);
Como Extrair Informações Detalhadas para Arquivos de Processamento de Texto?
WordProcessing refere‑se a documentos como DOCX, ODT e RTF tratados como arquivos de processamento de texto. Se o tipo de documento for WordProcessing, você pode ler propriedades adicionais como formato, extensão, contagem de páginas, tamanho e indicador de criptografia diretamente do objeto DocumentInfo. Esses detalhes ajudam a adaptar as etapas de processamento, como aplicar conversões específicas ou verificações de segurança.
bool isSpreadsheet = infoDocx is SpreadsheetDocumentInfo;
bool isText = infoDocx is TextualDocumentInfo;
bool isWordProcessing = infoDocx is WordProcessingDocumentInfo;
Console.WriteLine($"Is '{docxInputFilePath}' a Spreadsheet: {isSpreadsheet}");
Console.WriteLine($"Is '{docxInputFilePath}' a Textual document: {isText}");
Console.WriteLine($"Is '{docxInputFilePath}' a WordProcessing document: {isWordProcessing}");
Como Manipular Planilhas e Documentos Textuais?
Spreadsheet denota arquivos de planilha como XLSX, enquanto Text representa documentos de texto simples. Para planilhas (Spreadsheet) e arquivos de texto simples (Text), o objeto DocumentInfo ainda fornece metadados essenciais (extensão, tamanho, contagem de páginas). Alguns formatos podem não expor uma contagem de páginas; nesse caso, o valor será 0. Você ainda pode contar com os demais metadados para a lógica subsequente.
if (isWordProcessing)
{
WordProcessingDocumentInfo casted = (WordProcessingDocumentInfo)infoDocx;
Console.WriteLine($"Format: {casted.Format.Name}; Extension: {casted.Format.Extension}; Page count: {casted.PageCount}; Size: {casted.Size} bytes; Is encrypted: {casted.IsEncrypted}");
}
Como Trabalhar com Documentos Protegidos por Senha?
Password é uma string passada ao construtor do Editor para abrir arquivos criptografados. Quando um documento está protegido, primeiro tente abri‑lo sem senha. Se falhar, capture a exceção e tente novamente com a senha correta. O construtor do Editor aceita um parâmetro Password para esse fim, permitindo o manuseio transparente de arquivos protegidos.
string xlsxInputFilePath = "YourSampleDocument.xlsx";
Editor editorXlsx = new Editor(xlsxInputFilePath);
IDocumentInfo infoXlsx = editorXlsx.GetDocumentInfo(null);
bool isXlsxSpreadsheet = infoXlsx is SpreadsheetDocumentInfo;
Console.WriteLine($"Is '{xlsxInputFilePath}' a Spreadsheet: {isXlsxSpreadsheet}");
if (isXlsxSpreadsheet)
{
SpreadsheetDocumentInfo casted = (SpreadsheetDocumentInfo)infoXlsx;
Console.WriteLine($"Format: {casted.Format.Name}; Extension: {casted.Format.Extension}; Tabs count: {casted.PageCount}; Size: {casted.Size} bytes; Is encrypted: {casted.IsEncrypted}");
}
Como Processar Documentos Baseados em Texto?
DocumentInfo fornece metadados básicos como tamanho, extensão e codificação para arquivos de texto. Arquivos de texto (ex.: .txt, .md) são tratados como fluxos simples. Ainda assim, você pode recuperar informações de tamanho e codificação a partir de DocumentInfo, o que é útil para validar a integridade do arquivo ou determinar pipelines de processamento adequados.
string xlsInputFilePath = "YourSampleDocument.xls";
Editor editorXls = new Editor(xlsInputFilePath);
try
{
IDocumentInfo infoXls = editorXls.GetDocumentInfo(null);
}
catch (PasswordRequiredException)
{
Console.WriteLine("This document is password-protected.");
}
try
{
IDocumentInfo infoXls = editorXls.GetDocumentInfo("incorrect_password");
}
catch (IncorrectPasswordException)
{
Console.WriteLine("The provided password is incorrect.");
}
IDocumentInfo infoXlsValid = editorXls.GetDocumentInfo("correct_password");
bool isXlsSpreadsheet = infoXlsValid is SpreadsheetDocumentInfo;
Console.WriteLine($"Password-protected document is a Spreadsheet: {isXlsSpreadsheet}");
if (isXlsSpreadsheet)
{
SpreadsheetDocumentInfo casted = (SpreadsheetDocumentInfo)infoXlsValid;
Console.WriteLine($"Format: {casted.Format.Name}; Extension: {casted.Format.Extension}; Tabs count: {casted.PageCount}; Size: {casted.Size} bytes; Is encrypted: {casted.IsEncrypted}");
}
Como Dispor Recursos Corretamente?
Editor é a classe principal que mantém recursos não gerenciados e deve ser descartada após o uso. Para evitar vazamentos de memória, sempre descarte a instância de Editor depois de concluir a extração de informações. A instrução using é o padrão mais seguro, pois garante a liberação mesmo que ocorra uma exceção, assegurando uma gestão limpa dos recursos.
string xmlInputFilePath = "YourSampleDocument.xml";
Editor editorXml = new Editor(xmlInputFilePath);
IDocumentInfo infoXml = editorXml.GetDocumentInfo(null);
bool isXmlText = infoXml is TextualDocumentInfo;
Console.WriteLine($"Is '{xmlInputFilePath}' a Textual document: {isXmlText}");
if (isXmlText)
{
TextualDocumentInfo casted = (TextualDocumentInfo)infoXml;
Console.WriteLine($"Format: {casted.Format.Name}; Extension: {casted.Format.Extension}; Encoding: {casted.Encoding}; Size: {casted.Size} bytes");
}
Problemas Comuns e Soluções
| Problema | Causa | Solução |
|---|---|---|
| PageCount retorna 0 | Formato não suporta paginação (ex.: texto simples) | Verifique DocumentInfo.DocumentType antes de confiar em PageCount. |
| Formato de arquivo não suportado | Extensão de arquivo não reconhecida | Verifique se o arquivo está entre os mais de 50 formatos suportados; atualize o GroupDocs.Editor para a versão mais recente. |
| Exceção de senha | Senha fornecida incorreta | Capture PasswordProtectedException e solicite ao usuário que insira a senha novamente. |
| Pico de memória em arquivos grandes | Carregamento de PDFs muito grandes sem streaming | Use LoadOptions com LoadOptions.LoadMode = LoadMode.Stream (disponível em versões mais recentes). |
Perguntas Frequentes
Q: Quais tipos de documento posso extrair metadados?
A: O GroupDocs.Editor suporta arquivos de processamento de texto, planilha, apresentação, PDF e texto simples—mais de 50 formatos no total.
Q: Como obtenho a extensão do arquivo?
A: Acesse DocumentInfo.Extension após chamar GetDocumentInfo(); ele retorna a extensão sem o ponto inicial.
Q: Posso obter o tamanho de um documento em megabytes?
A: Sim—DocumentInfo.Size retorna o tamanho em bytes; divida por 1.048.576 para converter para megabytes.
Q: É seguro processar arquivos protegidos por senha em um servidor?
A: Absolutamente—o GroupDocs.Editor nunca grava a senha em disco e descarta todos os objetos criptográficos após o uso.
Q: Onde posso encontrar ajuda adicional se encontrar problemas?
A: Você pode obter suporte no fórum de suporte do GroupDocs.Editor.
Última atualização: 2026-06-01
Testado com: GroupDocs.Editor 23.12 for .NET
Autor: GroupDocs
editorDocx.Dispose();
editorXlsx.Dispose();
editorXls.Dispose();
editorXml.Dispose();
Console.WriteLine("ExtractingDocumentInfo routine has successfully finished");