使用 C++ 添加具有命名目标的 PDF 书签
Contents
[
Hide
]
可能的使用场景
命名目标是 PDF 中特殊类型的书签或链接,不依赖于 PDF 页。如果在 PDF 中添加或删除页面,书签可能失效,但命名目标将保持完整。要创建命名目标,请设置 PdfBookmarkEntry.GetDestinationName() 属性。
使用命名目标添加PDF书签
请查看以下示例代码,其 源Excel文件,以及 输出PDF文件。屏幕截图显示了输出PDF中的书签和命名目标。屏幕截图还描述了如何查看命名目标,以及您需要Acrobat Reader的专业版。
示例代码
#include <iostream>
#include <vector>
#include <memory>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Rendering;
int main() {
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Load source Excel file
Workbook wb(srcDir + u"samplePdfBookmarkEntry_DestinationName.xlsx");
// Access first worksheet
Worksheet ws = wb.GetWorksheets().Get(0);
// Access cell C5
Cell cell = ws.GetCells().Get(u"C5");
// Create Bookmark and Destination for this cell
PdfBookmarkEntry bookmarkEntry;
bookmarkEntry.SetText(u"Text");
bookmarkEntry.SetDestination(cell);
bookmarkEntry.SetDestinationName(u"AsposeCells--" + cell.GetName());
// Access cell G56
cell = ws.GetCells().Get(u"G56");
// Create Sub-Bookmark and Destination for this cell
PdfBookmarkEntry subbookmarkEntry1;
subbookmarkEntry1.SetText(u"Text1");
subbookmarkEntry1.SetDestination(cell);
subbookmarkEntry1.SetDestinationName(u"AsposeCells--" + cell.GetName());
// Access cell L4
cell = ws.GetCells().Get(u"L4");
// Create Sub-Bookmark and Destination for this cell
PdfBookmarkEntry subbookmarkEntry2;
subbookmarkEntry2.SetText(u"Text2");
subbookmarkEntry2.SetDestination(cell);
subbookmarkEntry2.SetDestinationName(u"AsposeCells--" + cell.GetName());
// Add Sub-Bookmarks in list
std::vector<PdfBookmarkEntry> list;
list.push_back(subbookmarkEntry1);
list.push_back(subbookmarkEntry2);
// Assign Sub-Bookmarks list to Bookmark Sub-Entry
// Note: The SubEntry property is not directly available in the provided headers.
// Assuming it is a member of PdfBookmarkEntry, you would need to set it here.
// bookmarkEntry.SetSubEntry(list);
// Create PdfSaveOptions and assign Bookmark to it
PdfSaveOptions opts;
opts.SetBookmark(bookmarkEntry);
// Save the workbook in Pdf format with given pdf save options
wb.Save(outDir + u"outputPdfBookmarkEntry_DestinationName.pdf", opts);
std::cout << "Workbook saved successfully with bookmarks!" << std::endl;
Aspose::Cells::Cleanup();
return 0;
}