添加目录时自定义页码

在本教程中,我们将探讨如何使用 Aspose.PDF for .NET 添加目录 (TOC) 时自定义页码。我们将提供分步指导以及代码示例,以帮助您实现这一目标。

第 1 步:加载现有 PDF 文件

首先,我们需要加载现有的 PDF 文件。在本教程中,我们将使用位于“您的文档目录”目录中的文件“42824.pdf”。将此目录路径替换为文档目录的实际路径。

string dataDir = "YOUR DOCUMENT DIRECTORY";
string inFile = dataDir + "42824.pdf";
string outFile = dataDir + "42824_out.pdf";
Document doc = new Document(inFile);

第 2 步:添加 TOC 页面

接下来,我们需要在文档的开头添加一个新页面作为目录页面。我们可以通过使用来实现这一点Insert()的方法Pages的集合Document目的。

Aspose.Pdf.Page tocPage = doc.Pages.Insert(1);

第 3 步:创建 TOC 对象

要创建 TOC 对象,我们首先需要创建一个TocInfo对象并设置其属性。在本教程中,我们将目录标题设置为“目录”,页码前缀设置为“P”。

TocInfo tocInfo = new TocInfo();
TextFragment title = new TextFragment("Table Of Contents");
title.TextState.FontSize = 20;
title.TextState.FontStyle = FontStyles.Bold;
tocInfo.Title = title;
tocInfo.PageNumbersPrefix = "P";
tocPage.TocInfo = tocInfo;

第 4 步:创建目录条目

要创建目录条目,我们需要循环遍历文档的所有页面(目录页面除外),并为每个页面创建一个标题对象。然后,我们可以将标题对象添加到目录页面并指定其目标页面。

for (int i = 1; i < doc.Pages.Count; i++)
{
    //创建标题对象
    Aspose.Pdf.Heading heading2 = new Aspose.Pdf.Heading(1);
    TextSegment segment2 = new TextSegment();
    heading2.TocPage = tocPage;
    heading2.Segments.Add(segment2);
    //指定标题对象的目标页面
    heading2.DestinationPage = doc.Pages[i + 1];
    //目的地页面
    heading2.Top = doc.Pages[i + 1].Rect.Height;
    //目的地坐标
    segment2.Text = "Page " + i.ToString();
    //将标题添加到包含目录的页面
    tocPage.Paragraphs.Add(heading2);
}

步骤 5:保存更新的文档

最后,我们需要将更新后的文档保存到新文件中。我们可以通过使用来实现这一点Save()的方法Document目的。

doc.Save(outFile);

使用 Aspose.PDF for .NET 添加目录时自定义页码的示例源代码

string dataDir = "YOUR DOCUMENT DIRECTORY";
string inFile = dataDir + "42824.pdf";
string outFile = dataDir + "42824_out.pdf";
//加载现有的 PDF 文件
Document doc = new Document(inFile);
//访问 PDF 文件的第一页
Aspose.Pdf.Page tocPage = doc.Pages.Insert(1);
//创建对象来表示 TOC 信息
TocInfo tocInfo = new TocInfo();
TextFragment title = new TextFragment("Table Of Contents");
title.TextState.FontSize = 20;
title.TextState.FontStyle = FontStyles.Bold;
//设置目录标题
tocInfo.Title = title;
tocInfo.PageNumbersPrefix = "P";
tocPage.TocInfo = tocInfo;
for (int i = 1; i<doc.Pages.Count; i++)
{
	//创建标题对象
	Aspose.Pdf.Heading heading2 = new Aspose.Pdf.Heading(1);
	TextSegment segment2 = new TextSegment();
	heading2.TocPage = tocPage;
	heading2.Segments.Add(segment2);
	//指定标题对象的目标页面
	heading2.DestinationPage = doc.Pages[i + 1];
	//目的地页面
	heading2.Top = doc.Pages[i + 1].Rect.Height;
	//目的地坐标
	segment2.Text = "Page " + i.ToString();
	//将标题添加到包含目录的页面
	tocPage.Paragraphs.Add(heading2);
}

//保存更新后的文档
doc.Save(outFile);

结论

在本教程中,我们提供了有关如何使用 Aspose.PDF for .NET 添加目录时自定义页码的分步指南。我们还提供了一个代码示例,您可以在自己的系统中实现此功能时作为参考。

常见问题解答

问:什么是 PDF 文档中的目录 (TOC)?

答:PDF 文档中的目录 (TOC) 是一种导航辅助工具,它提供了文档部分或章节的组织列表及其相应的页码。它允许读者快速导航到文档中的特定部分。

问:为什么我要自定义目录中的页码?

答:当您想要使用特定的页码格式或在页码中包含其他信息时,自定义目录中的页码非常有用。它允许您创建更加个性化和信息丰富的目录。

问:我可以在目录中包含超链接来链接到 PDF 文档中的特定部分或页面吗?

答:是的,Aspose.PDF for .NET 允许您在目录中创建超链接,链接到 PDF 文档中的特定部分或页面。这增强了 PDF 文档的交互性和导航性。

问:Aspose.PDF for .NET 与 PDF/A 标准兼容吗?

答:是的,Aspose.PDF for .NET 支持 PDF/A 标准,包括 PDF/A-1、PDF/A-2 和 PDF/A-3。它允许您创建符合存档和长期保存要求的 PDF 文档。

问:我可以为目录条目添加更多格式吗,例如字体样式或颜色?

答:是的,您可以使用 Aspose.PDF for .NET 向 TOC 条目添加其他格式,例如字体样式、颜色和字体大小。这允许您根据您的要求自定义目录的外观。