在 C++ 中管理演示文稿页眉和页脚

Aspose.Slides for C++ 提供在演示文稿幻灯片中管理页眉和页脚的功能。这些实际上在演示文稿母版级别进行管理。

管理页眉和页脚文本

可以按下面示例更新特定幻灯片的备注:

// 设置页眉/页脚文本的函数
void UpdateHeaderFooterText(System::SharedPtr<IBaseSlide> master)
{
    for (const auto& shape : System::IterateOver(master->get_Shapes()))
    {
        if (shape->get_Placeholder() != nullptr)
        {
            if (shape->get_Placeholder()->get_Type() == PlaceholderType::Header)
            {
                (System::ExplicitCast<IAutoShape>(shape))->get_TextFrame()->set_Text(u"HI there new header");
            }
        }
    }
}
// 加载演示文稿
auto pres = System::MakeObject<Presentation>(u"headerTest.pptx");

// 设置页脚
pres->get_HeaderFooterManager()->SetAllFootersText(u"My Footer text");
pres->get_HeaderFooterManager()->SetAllFootersVisibility(true);

// 访问并更新页眉
auto masterNotesSlide = pres->get_MasterNotesSlideManager()->get_MasterNotesSlide();
if (nullptr != masterNotesSlide)
{
	UpdateHeaderFooterText(masterNotesSlide);
}

// 保存演示文稿
pres->Save(u"HeaderFooterJava.pptx", SaveFormat::Pptx);

在讲义和备注幻灯片上管理页眉和页脚

Aspose.Slides for C++ 支持在讲义和备注幻灯片中的页眉和页脚。请遵循以下步骤:

  • 加载包含视频的演示文稿
  • 更改备注母版和所有备注幻灯片的页眉和页脚设置。
  • 设置主备注幻灯片以及所有子页脚占位符可见。
  • 设置主备注幻灯片以及所有子日期和时间占位符可见。
  • 仅更改第一张备注幻灯片的页眉和页脚设置。
  • 设置备注幻灯片的页眉占位符可见。
  • 为备注幻灯片的页眉占位符设置文本。
  • 为备注幻灯片的日期时间占位符设置文本。
  • 保存修改后的演示文稿文件。

下面示例中提供了代码片段。

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
// 更改备注母版以及所有备注幻灯片的页眉和页脚设置
auto masterNotesSlide = presentation->get_MasterNotesSlideManager()->get_MasterNotesSlide();
if (masterNotesSlide != nullptr)
{
    auto headerFooterManager = masterNotesSlide->get_HeaderFooterManager();

    // 使主备注幻灯片及所有子页脚占位符可见
    headerFooterManager->SetHeaderAndChildHeadersVisibility(true);
    // 使主备注幻灯片及所有子页眉占位符可见
    headerFooterManager->SetFooterAndChildFootersVisibility(true);
    // 使主备注幻灯片及所有子幻灯片编号占位符可见
    headerFooterManager->SetSlideNumberAndChildSlideNumbersVisibility(true);
    // 使主备注幻灯片及所有子日期和时间占位符可见
    headerFooterManager->SetDateTimeAndChildDateTimesVisibility(true);

    // 为主备注幻灯片及所有子页眉占位符设置文本
    headerFooterManager->SetHeaderAndChildHeadersText(u"Header text");
    // 为主备注幻灯片及所有子页脚占位符设置文本
    headerFooterManager->SetFooterAndChildFootersText(u"Footer text");
    // 为主备注幻灯片及所有子日期和时间占位符设置文本
    headerFooterManager->SetDateTimeAndChildDateTimesText(u"Date and time text");
}

// 仅更改第一张备注幻灯片的页眉和页脚设置
auto notesSlide = presentation->get_Slides()->idx_get(0)->get_NotesSlideManager()->get_NotesSlide();
if (notesSlide != nullptr)
{
    auto headerFooterManager = notesSlide->get_HeaderFooterManager();
    if (!headerFooterManager->get_IsHeaderVisible())
    {
        // 使此备注幻灯片的页眉占位符可见
        headerFooterManager->SetHeaderVisibility(true);
    }

    if (!headerFooterManager->get_IsFooterVisible())
    {
        // 使此备注幻灯片的页脚占位符可见
        headerFooterManager->SetFooterVisibility(true);
    }

    if (!headerFooterManager->get_IsSlideNumberVisible())
    {
        // 使此备注幻灯片的幻灯片编号占位符可见
        headerFooterManager->SetSlideNumberVisibility(true);
    }
    
    if (!headerFooterManager->get_IsDateTimeVisible())
    {
        // 使此备注幻灯片的日期时间占位符可见
        headerFooterManager->SetDateTimeVisibility(true);
    }
    
    // 为备注幻灯片的页眉占位符设置文本
    headerFooterManager->SetHeaderText(u"New header text");
    // 为备注幻灯片的页脚占位符设置文本
    headerFooterManager->SetFooterText(u"New footer text");
    // 为备注幻片的日期时间占位符设置文本
    headerFooterManager->SetDateTimeText(u"New date and time text");
}

presentation->Save(u"testresult.pptx", SaveFormat::Pptx);

常见问题

我可以在普通幻灯片上添加“页眉”吗?

在 PowerPoint 中,“页眉”仅在备注和讲义中存在;在普通幻灯片上,支持的元素是页脚、日期/时间和幻灯片编号。在 Aspose.Slides 中也遵循相同的限制:页眉仅用于备注/讲义,幻灯片上则是页脚/日期时间/幻灯片编号。

如果布局不包含页脚区域——我可以“打开”其可见性吗?

可以。通过页眉/页脚管理器检查可见性,并在需要时启用它。这些 API 指标和方法专为占位符缺失或隐藏的情况设计。

如何让幻灯片编号从除 1 之外的值开始?

设置演示文稿的first slide number;之后所有编号会重新计算。例如,可以从 0 或 10 开始,并在标题幻灯片上隐藏编号。

导出为 PDF/图像/HTML 时页眉/页脚会怎样?

它们会作为演示文稿的普通文本元素进行渲染。即,如果这些元素在幻灯片/备注页面上可见,它们也会出现在输出格式中,与其他内容一起。