Nascondi i numeri di pagina nel sommario

Introduzione

Quando lavori con i PDF, a volte potresti voler generare un indice (TOC) ma mantenere le cose eleganti nascondendo i numeri di pagina. Forse il documento scorre meglio senza di essi, o forse è una scelta estetica. Qualunque sia la tua ragione, se stai lavorando con Aspose.PDF per .NET, questo tutorial ti mostrerà esattamente come nascondere i numeri di pagina nel tuo TOC.

Prerequisiti

Prima di iniziare, ci sono alcune cose che dovrai mettere a posto. Ecco una rapida checklist:

  • Visual Studio installato: per scrivere il codice sarà necessaria una versione funzionante di Visual Studio.
  • Libreria Aspose.PDF per .NET: assicurati di aver installato la libreria Aspose.PDF per .NET.
  • Licenza temporanea: se vuoi testare le funzionalità, è utile avere una licenza temporanea.

Importa pacchetti

Prima di passare al codice, assicurati di importare i seguenti namespace nel tuo progetto C#. Questi forniranno le classi e i metodi necessari per lavorare con documenti PDF e creare il tuo indice (TOC).

using Aspose.Pdf;
using Aspose.Pdf.Text;

Ora che il tuo ambiente è pronto e i pacchetti sono importati, analizziamo ogni passaggio del processo. Tratteremo ogni parte del codice per garantire chiarezza, così potrai seguire facilmente.

Passaggio 1: inizializza il tuo documento PDF

La prima cosa che dobbiamo fare è creare un nuovo documento PDF e aggiungere una pagina per l’indice (TOC).

// Percorso verso la directory dei documenti.
string dataDir = "YOUR DOCUMENT DIRECTORY";
string outFile = dataDir + "HiddenPageNumbers_out.pdf";
Document doc = new Document();
Page tocPage = doc.Pages.Add();
  • dataDir: questa è la directory in cui verrà salvato il file di output.
  • Document(): Inizializza un nuovo documento PDF.
  • Pages.Add(): aggiunge una nuova pagina vuota al documento, che in seguito conterrà l’indice.

Passaggio 2: imposta le informazioni del sommario e il titolo

Successivamente, definiremo le informazioni dell’indice, inclusa l’impostazione del titolo che apparirà nella parte superiore dell’indice.

TocInfo tocInfo = new TocInfo();
TextFragment title = new TextFragment("Table Of Contents");
title.TextState.FontSize = 20;
title.TextState.FontStyle = FontStyles.Bold;
tocInfo.Title = title;
tocPage.TocInfo = tocInfo;
  • TocInfo: questo oggetto contiene tutte le informazioni sul TOC.
  • TextFragment: rappresenta il testo del titolo dell’indice, qui lo impostiamo come “Indice”.
  • FontStyle: diamo uno stile al titolo dell’indice impostandone la dimensione a 20 e rendendolo in grassetto.
  • tocPage.TocInfo: assegniamo le informazioni del sommario alla pagina che lo visualizzerà.

Passaggio 3: nascondere i numeri di pagina nel sommario

Ora la parte divertente! Ecco dove configuriamo il TOC per nascondere i numeri di pagina.

tocInfo.IsShowPageNumbers = false;
tocInfo.FormatArrayLength = 4;
  • IsShowPageNumbers: Questo è l’interruttore magico che nasconde i numeri di pagina. Impostalo sufalsee i numeri di pagina non appariranno nell’indice.
  • FormatArrayLength: impostiamo questo valore su 4, per indicare che vogliamo definire la formattazione per quattro livelli di intestazioni del sommario.

Passaggio 4: personalizzare la formattazione del sommario

Per aggiungere più stile al tuo indice, definiremo ora la formattazione per i diversi livelli di titoli.

tocInfo.FormatArray[0].Margin.Right = 0;
tocInfo.FormatArray[0].TextState.FontStyle = FontStyles.Bold | FontStyles.Italic;
tocInfo.FormatArray[1].Margin.Left = 30;
tocInfo.FormatArray[1].TextState.Underline = true;
tocInfo.FormatArray[1].TextState.FontSize = 10;
tocInfo.FormatArray[2].TextState.FontStyle = FontStyles.Bold;
tocInfo.FormatArray[3].TextState.FontStyle = FontStyles.Bold;
  • FormatArray: questo array controlla la formattazione delle voci del TOC. Ogni indice rappresenta un diverso livello di intestazione.
  • Margini e stile del testo: impostiamo i margini e applichiamo stili di carattere quali grassetto, corsivo e sottolineato per ogni livello di intestazione.

Passaggio 5: aggiungere intestazioni al documento

Infine, aggiungiamo i titoli veri e propri che faranno parte dell’indice.

Page page = doc.Pages.Add();
for (int Level = 1; Level != 5; Level++)
{ 
    Heading heading2 = new Heading(Level); 
    TextSegment segment2 = new TextSegment(); 
    heading2.TocPage = tocPage; 
    heading2.Segments.Add(segment2); 
    heading2.IsAutoSequence = true; 
    segment2.Text = "this is heading of level " + Level; 
    heading2.IsInList = true; 
    page.Paragraphs.Add(heading2); 
}
  • Heading e TextSegment: rappresentano i titoli che appariranno nel tuo TOC. Ogni livello ha il suo titolo.
  • IsAutoSequence: numera automaticamente le intestazioni.
  • IsInList: assicura che ogni intestazione venga visualizzata nell’indice.

Passaggio 6: Salvare il documento

Una volta impostato tutto, salva il documento PDF nel file di output specificato.

doc.Save(outFile);

Ed ecco fatto! Hai creato con successo un PDF con un indice e i numeri di pagina sono nascosti!

Conclusione

Creare un indice in un PDF e nascondere i numeri di pagina potrebbe sembrare complicato, ma con Aspose.PDF per .NET è un gioco da ragazzi. Seguendo questa guida passo passo, hai imparato come personalizzare il formato dell’indice, nascondere i numeri di pagina e applicare stili diversi alle tue intestazioni. Ora puoi creare PDF professionali su misura per le tue esigenze specifiche.

Domande frequenti

Posso mostrare i numeri di pagina per titoli specifici nell’indice?

No, Aspose.PDF nasconde o mostra i numeri di pagina per l’intero indice. Non puoi nasconderli selettivamente per voci specifiche.

È possibile aggiungere altri livelli al TOC?

Sì, puoi aumentare ilFormatArrayLength per definire più livelli di titoli dell’indice.

Come posso cambiare il carattere per tutte le voci dell’indice?

È possibile cambiare il font modificando ilTextState.Font proprietà per ogni livello nelFormatArray.

Posso inserire collegamenti ipertestuali nell’indice?

Sì, puoi collegare ogni voce del sommario a una sezione specifica del documento utilizzandoHeading.TocPage proprietà.

Ho bisogno di una licenza per Aspose.PDF?

Sì, è richiesta una licenza valida per l’uso in produzione. Puoi ottenere una licenza temporaneaQui per testare le funzionalità.