隐藏目录中的页码

介绍

当您处理 PDF 时,有时您可能想要生成目录 (TOC),但隐藏页码以保持内容的简洁。也许没有页码文档会更流畅,或者也许这是一种审美选择。无论您出于什么原因,如果您使用 Aspose.PDF for .NET,本教程将向您展示如何在目录中隐藏页码。

先决条件

在我们开始之前,您需要准备好几件事情。以下是一份快速检查清单:

  • 已安装 Visual Studio:您需要一个可运行的 Visual Studio 版本来进行编码。
  • Aspose.PDF for .NET 库:确保您已经安装了 Aspose.PDF for .NET 库。
  • 临时许可证:如果您正在测试这些功能,那么拥有临时许可证会很有帮助。

导入包

在开始编写代码之前,请确保在 C# 项目中导入以下命名空间。这些命名空间将提供处理 PDF 文档和创建目录 (TOC) 所需的类和方法。

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

现在您的环境已准备就绪,并且已导入软件包,让我们分解该过程的每个步骤。我们将介绍代码的每个部分以确保清晰度,以便您可以轻松地跟进。

步骤 1:初始化您的 PDF 文档

我们需要做的第一件事是创建一个新的 PDF 文档并添加一个目录 (TOC) 页面。

//文档目录的路径。
string dataDir = "YOUR DOCUMENT DIRECTORY";
string outFile = dataDir + "HiddenPageNumbers_out.pdf";
Document doc = new Document();
Page tocPage = doc.Pages.Add();
  • dataDir:这是保存输出文件的目录。
  • Document():初始化一个新的PDF文档。
  • Pages.Add():向文档添加一个新的空白页,该页稍后将保存您的目录。

第 2 步:设置目录信息和标题

接下来,我们将定义目录信息,包括设置将显示在目录顶部的标题。

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:此对象保存有关TOC的所有信息。
  • TextFragment:代表TOC标题的文本,这里我们将其设置为“Table Of Contents”。
  • FontStyle:我们将目录标题的大小设置为 20 并将其设为粗体,以此来设置其样式。
  • tocPage.TocInfo:我们将目录信息分配给将显示目录的页面。

步骤 3:隐藏目录中的页码

现在到了最有趣的部分!在这里我们配置目录以隐藏页码。

tocInfo.IsShowPageNumbers = false;
tocInfo.FormatArrayLength = 4;
  • IsShowPageNumbers:这是隐藏页码的神奇开关。将其设置为false,并且页码不会出现在目录中。
  • FormatArrayLength:我们将其设置为 4,表示我们要为四级 TOC 标题定义格式。

步骤 4:自定义目录格式

为了给您的目录添加更多样式,我们现在将定义不同级别标题的格式。

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:此数组控制目录条目的格式。每个索引代表不同的标题级别。
  • 边距和文本样式:我们为每个标题级别设置边距并应用粗体、斜体和下划线等字体样式。

步骤 5:向文档添加标题

最后,让我们添加将成为目录一部分的实际标题。

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); 
}
  • 标题和文本段:这些代表将出现在目录中的标题。每个级别都有自己的标题。
  • IsAutoSequence:自动对标题进行编号。
  • IsInList:确保每个标题都出现在目录中。

步骤 6:保存文档

一切设置完成后,将 PDF 文档保存到指定的输出文件。

doc.Save(outFile);

就这样!您已成功创建带有目录的 PDF,并且页码已隐藏!

结论

在 PDF 中创建目录并隐藏页码似乎很棘手,但使用 Aspose.PDF for .NET,这很容易。通过遵循本分步指南,您已经学会了如何自定义目录格式、隐藏页码以及将不同的样式应用于标题。现在,您可以创建根据您的确切需求量身定制的专业 PDF。

常见问题解答

我可以显示目录中特定标题的页码吗?

不可以,Aspose.PDF 会隐藏或显示整个目录的页码。您无法选择性地隐藏特定条目的页码。

是否可以向 TOC 添加更多级别?

是的,你可以增加FormatArrayLength定义更多级别的目录标题。

如何更改所有目录条目的字体?

您可以通过修改TextState.Font每个级别的属性FormatArray.

我可以在目录中插入超链接吗?

是的,您可以使用Heading.TocPage财产。

我需要 Aspose.PDF 的许可证吗?

是的,生产使用需要有效的许可证。您可以获取临时许可证这里测试功能。