使用C++为图表工作表创建PdfBookmarkEntry
Contents
[
Hide
]
可能的使用场景
以前,Aspose.Cells会为普通工作表创建 PdfBookmarkEntry。但现在Aspose.Cells还可以为图表工作表创建 PdfBookmarkEntry。由于图表工作表除了单元格A1之外没有其他单元格,所以它将仅为单元格A1创建 PdfBookmarkEntry。
为图表工作表创建PdfBookmarkEntry
下面的示例代码加载了含有四个工作表的示例Excel文件。其中两个是普通工作表,另外两个是图表工作表。它创建了如下的四个书签条目:
- 书签I
- 书签II-Chart1
- 书签III
- 书签IV-Chart2
以下屏幕截图显示了示例代码生成的输出PDF以供参考。
示例代码
#include <iostream>
#include <vector>
#include <memory>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Rendering;
int main()
{
Aspose::Cells::Startup();
// Load sample Excel file
U16String inputFilePath = u"sampleCreatePdfBookmarkEntryForChartSheet.xlsx";
Workbook wb(inputFilePath);
// Access all four worksheets
WorksheetCollection sheets = wb.GetWorksheets();
Worksheet sheet1 = sheets.Get(0);
Worksheet sheet2 = sheets.Get(1);
Worksheet sheet3 = sheets.Get(2);
Worksheet sheet4 = sheets.Get(3);
// Create Pdf Bookmark Entry for Sheet1
PdfBookmarkEntry ent1;
ent1.SetDestination(sheet1.GetCells().Get(u"A1"));
ent1.SetText(u"Bookmark-I");
// Create Pdf Bookmark Entry for Sheet2 - Chart
PdfBookmarkEntry ent2;
ent2.SetDestination(sheet2.GetCells().Get(u"A1"));
ent2.SetText(u"Bookmark-II-Chart1");
// Create Pdf Bookmark Entry for Sheet3
PdfBookmarkEntry ent3;
ent3.SetDestination(sheet3.GetCells().Get(u"A1"));
ent3.SetText(u"Bookmark-III");
// Create Pdf Bookmark Entry for Sheet4 - Chart
PdfBookmarkEntry ent4;
ent4.SetDestination(sheet4.GetCells().Get(u"A1"));
ent4.SetText(u"Bookmark-IV-Chart2");
// Arrange all Bookmark Entries
std::vector<PdfBookmarkEntry> lst;
lst.push_back(ent2);
lst.push_back(ent3);
lst.push_back(ent4);
// Create Pdf Save Options with Bookmark Entries
PdfSaveOptions opts;
opts.SetBookmark(ent1);
// Save the output Pdf
U16String outputFilePath = u"outputCreatePdfBookmarkEntryForChartSheet.pdf";
wb.Save(outputFilePath, opts);
std::cout << "PDF with bookmarks created successfully!" << std::endl;
Aspose::Cells::Cleanup();
return 0;
}