Ottieni il conteggio delle pagine e estrai le informazioni del documento con GroupDocs.Editor

Introduzione

In questo tutorial completo imparerai come ottenere il conteggio delle pagine ed estrarre informazioni dettagliate sul documento — inclusi formato, dimensione e stato di crittografia — utilizzando GroupDocs.Editor per .NET. Che tu stia costruendo un sistema di gestione dei documenti, un motore di reporting o una pipeline di conversione automatizzata, comprendere i metadati di un file è il primo passo verso un’elaborazione affidabile. Esploriamo l’intero flusso di lavoro, dal caricamento di un file alla corretta chiusura delle risorse.

Risposte rapide

  • Come posso recuperare il conteggio delle pagine di un documento?
    Chiama editor.GetDocumentInfo().PageCount dopo aver caricato il file con Editor.
  • Quali formati di file sono supportati per l’estrazione dei metadati?
    Oltre 50 formati, inclusi DOCX, XLSX, PPTX, PDF, TXT e HTML.
  • Posso estrarre metadati da file protetti da password?
    Sì — fornisci la password quando costruisci l’istanza Editor.
  • Devo rilasciare manualmente le risorse?
    Assolutamente; chiama sempre editor.Dispose() o avvolgi l’editor in un blocco using.
  • Quale versione di GroupDocs.Editor è necessaria?
    L’ultima versione stabile (v23.12+ al momento della stesura) supporta tutte le funzionalità illustrate.

Cos’è “get page count” in GroupDocs.Editor?

GetDocumentInfo() è un metodo che restituisce un oggetto DocumentInfo contenente il conteggio delle pagine del documento, il formato, la dimensione e altri metadati. Questa singola chiamata ti fornisce informazioni immediate senza dover analizzare manualmente il file. Utilizzando questo metodo eviti di caricare l’intero documento in memoria, migliorando le prestazioni soprattutto per file di grandi dimensioni e riducendo il consumo di risorse del server.

Perché estrarre i metadati del documento con GroupDocs.Editor?

GroupDocs.Editor può elaborare oltre 50 formati di input e output e recuperare i metadati per file fino a 2 GB senza caricare l’intero documento in memoria. Questa efficienza riduce il carico del server fino al 70 % rispetto all’analisi completa del documento, rendendolo ideale per applicazioni ad alto throughput.

Prerequisiti

  • Nozioni di base sullo sviluppo C# – dovresti sentirti a tuo agio con Visual Studio e le strutture di progetto .NET.
  • Visual Studio 2022 (o qualsiasi versione recente) installato sulla tua macchina.
  • GroupDocs.Editor per .NET – scarica l’ultimo pacchetto dalla pagina di download.

Come caricare il tuo documento?

Editor è la classe principale che rappresenta un documento e fornisce metodi per caricarlo e manipolarlo. Carica il file di destinazione creando un’istanza Editor e passando il percorso del file. L’editor rileva automaticamente il formato, quindi non è necessario specificare opzioni di caricamento. Questo approccio funziona per qualsiasi tipo di file supportato e semplifica la configurazione iniziale.

using System;
using GroupDocs.Editor.Metadata;

Come recuperare le informazioni del documento?

GetDocumentInfo() restituisce un oggetto DocumentInfo contenente metadati come il conteggio delle pagine, il formato, la dimensione e lo stato di crittografia. Dopo il caricamento, chiama questo metodo per ottenere l’oggetto. Il DocumentInfo restituito ti fornisce un’istantanea concisa delle caratteristiche del file, consentendoti di prendere decisioni senza ulteriori elaborazioni.

string docxInputFilePath = "YourSampleDocument.docx";
Editor editorDocx = new Editor(docxInputFilePath);

Come determinare il tipo di documento?

DocumentType è un enum che indica se il documento è WordProcessing, Spreadsheet o Text. Sapere se un file è un documento di elaborazione testi, un foglio di calcolo o un semplice testo influisce su come gestirlo in seguito. Usa la proprietà DocumentType dell’oggetto DocumentInfo per prendere questa decisione e ramificare la tua logica di conseguenza.

IDocumentInfo infoDocx = editorDocx.GetDocumentInfo(null);

Come estrarre informazioni dettagliate per i file di elaborazione testi?

WordProcessing si riferisce a documenti come DOCX, ODT e RTF gestiti come file di elaborazione testi. Se il tipo di documento è WordProcessing, puoi leggere proprietà aggiuntive come formato, estensione, conteggio delle pagine, dimensione e flag di crittografia direttamente dall’oggetto DocumentInfo. Questi dettagli ti aiutano a personalizzare i passaggi di elaborazione, ad esempio applicando conversioni specifiche o controlli di sicurezza.

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

Come gestire i documenti Spreadsheet e di testo?

Spreadsheet indica i file di foglio di calcolo come XLSX, mentre Text rappresenta i documenti di testo semplice. Per i fogli di calcolo (Spreadsheet) e i file di testo semplice (Text), l’oggetto DocumentInfo fornisce comunque i metadati di base (estensione, dimensione, conteggio delle pagine). Alcuni formati potrebbero non esporre un conteggio delle pagine; in tal caso il valore sarà 0. Puoi comunque fare affidamento su altri metadati per la logica a valle.

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

Come gestire i documenti protetti da password?

Password è una stringa passata al costruttore Editor per aprire file crittografati. Quando un documento è crittografato, prova prima ad aprirlo senza password. Se fallisce, cattura l’eccezione e riprova con la password corretta. Il costruttore Editor accetta un parametro Password a questo scopo, consentendo una gestione fluida dei file protetti.

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

Come elaborare i documenti basati su testo?

DocumentInfo fornisce metadati di base come dimensione, estensione e codifica per i file di testo. I file di testo (ad es., .txt, .md) sono trattati come semplici flussi. Puoi comunque recuperare informazioni su dimensione e codifica da DocumentInfo, utile per convalidare l’integrità del file o determinare pipeline di elaborazione appropriate.

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

Come rilasciare correttamente le risorse?

Editor è la classe principale che contiene risorse non gestite e deve essere rilasciata dopo l’uso. Per evitare perdite di memoria, disporre sempre dell’istanza Editor dopo aver terminato l’estrazione delle informazioni. L’istruzione using è il modello più sicuro perché garantisce il rilascio anche se si verifica un’eccezione, assicurando una gestione pulita delle risorse.

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

Problemi comuni e soluzioni

ProblemaCausaSoluzione
PageCount restituisce 0Il formato non supporta la paginazione (ad es., testo semplice)Verifica DocumentInfo.DocumentType prima di fare affidamento su PageCount.
Formato file non supportatoEstensione del file non riconosciutaVerifica che il file sia uno dei più di 50 formati supportati; aggiorna GroupDocs.Editor all’ultima versione.
Eccezione passwordPassword fornita errataCattura PasswordProtectedException e chiedi all’utente di reinserire la password.
Picco di memoria su file grandiCaricamento di PDF molto grandi senza streamingUsa LoadOptions con LoadOptions.LoadMode = LoadMode.Stream (disponibile nelle versioni più recenti).

Domande frequenti

Q: Da quali tipi di documento posso estrarre i metadati?
A: GroupDocs.Editor supporta file di elaborazione testi, fogli di calcolo, presentazioni, PDF e file di testo semplice — oltre 50 formati in totale.

Q: Come recupero l’estensione del file?
A: Accedi a DocumentInfo.Extension dopo aver chiamato GetDocumentInfo(); restituisce l’estensione senza il punto iniziale.

Q: Posso ottenere la dimensione di un documento in megabyte?
A: Sì — DocumentInfo.Size restituisce la dimensione in byte; dividila per 1.048.576 per convertire in megabyte.

Q: È sicuro elaborare file protetti da password su un server?
A: Assolutamente — GroupDocs.Editor non scrive mai la password su disco e rilascia tutti gli oggetti crittografici dopo l’uso.

Q: Dove posso trovare ulteriore assistenza se riscontro problemi?
A: Puoi ottenere supporto dal forum di supporto di GroupDocs.Editor.


Ultimo aggiornamento: 2026-06-01
Testato con: GroupDocs.Editor 23.12 per .NET
Autore: GroupDocs

editorDocx.Dispose();
editorXlsx.Dispose();
editorXls.Dispose();
editorXml.Dispose();
Console.WriteLine("ExtractingDocumentInfo routine has successfully finished");

Tutorial correlati