向PDF添加页码使用C++

如何向现有PDF添加页码

所有文档都必须有页码。页码使读者更容易定位文档的不同部分。 **Aspose.PDF for C++**允许您使用PageNumberStamp添加页码。

以下步骤和示例代码说明了如何使用PageNumberStamp页面元素自动向PDF添加页码标签。

向现有PDF文档添加页码的步骤:

为了添加页码戳,您需要使用所需属性创建一个Document对象和一个PageNumberStamp对象。

在此之后,您可以调用 PageAddStamp 方法在 PDF 中添加印章。

您还可以设置页码印章的字体属性。

下面的代码片段向您展示了如何在 PDF 文件中添加页码。

void AddPageNumberToPDF() {

    String _dataDir("C:\\Samples\\");
    String inputFileName("PageNumberStamp.pdf");
    String outputFileName("PageNumberStamp_out.pdf");

    // 打开文档
    auto document = MakeObject<Document>(_dataDir + inputFileName);

    // 创建页码印章
    auto pageNumberStamp = MakeObject<PageNumberStamp>();
    //// 印章是否为背景
    //pageNumberStamp.Background = false;
    //pageNumberStamp.Format = "Page # of " + pdfDocument.Pages.Count;
    //pageNumberStamp.BottomMargin = 10;
    //pageNumberStamp.HorizontalAlignment = HorizontalAlignment.Center;
    //pageNumberStamp.StartingNumber = 1;

    //// 设置文本属性
    //pageNumberStamp.TextState.Font = FontRepository.FindFont("Arial");
    //pageNumberStamp.TextState.FontSize = 14.0F;
    //pageNumberStamp.TextState.FontStyle = FontStyles.Bold;
    //pageNumberStamp.TextState.FontStyle = FontStyles.Italic;
    //pageNumberStamp.TextState.ForegroundColor = Color.Aqua;

    // 将印章添加到特定页面
    document->get_Pages()->idx_get(1)->AddStamp(pageNumberStamp);

    // 保存输出文档
    document->Save(_dataDir+ outputFileName);
}

现场示例

添加 PDF 页码 是一个免费的在线网络应用程序,允许您研究添加页码功能的工作原理。

如何使用 C++ 在 PDF 中添加页码

添加/删除 Bates 编号

Bates 编号(也称为 Bates 印记)用于法律、医疗和商业领域,在图像和文档扫描或处理时放置识别号码和/或日期/时间标记,例如在审判准备的发现阶段或识别商业收据时。此过程提供图像或文档的识别、保护和自动连续编号。

Aspose.PDF 目前对 Bates 编号的支持有限。此功能将根据客户的要求进行更新。

如何删除 Bates 编号

void WorkingWithPages::RemoveBatesNubmering()
{
    String _dataDir("C:\\Samples\\");
    String inputFileName("BatesNumbering.pdf");
    String outputFileName("BatesNumbering_out.pdf");
    String customSubtype("BatesN");
    // 打开文档
    auto document = MakeObject<Document>(_dataDir + inputFileName);
    for (auto page : document->get_Pages())
    {
        auto coll = page->get_Artifacts();
        for (auto batesNum : coll)
        {
        if (batesNum->get_CustomSubtype() == customSubtype)
            page->get_Artifacts()->Delete(batesNum);
        }
    }

    // 保存输出文档
    document->Save(_dataDir + outputFileName);
}