Document.BookmarkNodes Property
Provides access to the collection of bookmarks available in the document and displayed in the Document Map of Print Preview.
Namespace: DevExpress.XtraPrinting
Assembly: DevExpress.Printing.v24.1.Core.dll
NuGet Package: DevExpress.Printing.Core
Declaration
Property Value
Type | Description |
---|---|
DevExpress.XtraPrinting.IBookmarkNodeCollection | A DevExpress.XtraPrinting.IBookmarkNodeCollection object, specifying the collection of bookmarks. |
Example
This example illustrates how to make Print Preview display a Document Map listing all bookmarks assigned to a Document‘s elements.
The following code adds five bricks to the Detail section of a document and then assigns bookmarks to each brick.
Note that the Document Map button is automatically enabled in Print Preview when a displayed document has any bookmarks.
using System;
using System.Drawing;
using System.Windows.Forms;
using DevExpress.XtraPrinting;
using DevExpress.XtraPrinting.Native;
// ...
private void button1_Click(object sender, EventArgs e) {
// Create a new Printing System.
PrintingSystem ps = new PrintingSystem();
// Create a new link and add a handler to its CreateDetailArea event.
Link link = new Link(ps);
link.CreateDetailArea += new CreateAreaEventHandler(OnDocumentCreated);
// Create a document for the link.
link.CreateDocument();
// Create a document's map.
CreateDocumentMap(ps.Document);
// Show the report's preview.
link.ShowPreview();
// Remove the handler for the CreateDetailArea event.
link.CreateDetailArea -= new CreateAreaEventHandler(OnDocumentCreated);
}
private void OnDocumentCreated(object sender, CreateAreaEventArgs e) {
// Draw 5 bricks on a document.
for (int i = 0; i < 5; i++) {
TextBrick brick = new TextBrick();
brick.Text = "Item #" + (i + 1).ToString();
brick.BackColor = Color.Yellow;
brick.Rect = new Rectangle(10, i * 100, 100, 50);
e.Graph.DrawBrick(brick, brick.Rect);
}
}
private void CreateDocumentMap(Document document) {
// Create a collection of 'Page and Brick' pairs.
BrickPagePairCollection pairs = new BrickPagePairCollection();
// Create an enumerator of all document bricks.
DocumentBrickEnumerator en = new DocumentBrickEnumerator(document);
// Add the 'Brick-Page' pairs for all document bricks.
while (en.MoveNext()) {
pairs.Add(BrickPagePair.Create(en.Brick, en.Page));
}
// Add bookmarks for all pairs to the document's map.
foreach (BrickPagePair pair in pairs) {
Page page = document.Pages[pair.PageIndex];
Brick brick = page.GetBrickByIndices(pair.BrickIndices) as Brick;
string BrickText = ((TextBrick)brick).Text;
BookmarkNode mapNode = new BookmarkNode(BrickText, brick, page);
document.BookmarkNodes.Add(mapNode);
}
}