mirror of
https://github.com/wmjordan/PDFPatcher.git
synced 2026-10-18 21:52:34 +08:00
44 lines
1.1 KiB
C#
44 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using PDFPatcher.Model;
|
|
|
|
namespace PDFPatcher.Processor
|
|
{
|
|
sealed class CollapseBookmarkProcessor : IInfoDocProcessor
|
|
{
|
|
public BookmarkStatus BookmarkStatus { get; set; }
|
|
public CollapseBookmarkProcessor() {
|
|
|
|
}
|
|
|
|
#region IBookmarkProcessor 成员
|
|
|
|
public bool Process(System.Xml.XmlElement bookmark) {
|
|
switch (BookmarkStatus) {
|
|
case BookmarkStatus.AsIs:
|
|
return false;
|
|
case BookmarkStatus.CollapseAll:
|
|
bookmark.SetAttribute(Constants.BookmarkAttributes.Open, Constants.Boolean.False);
|
|
return true;
|
|
case BookmarkStatus.ExpandAll:
|
|
bookmark.SetAttribute(Constants.BookmarkAttributes.Open, Constants.Boolean.True);
|
|
return true;
|
|
case BookmarkStatus.ExpandTop:
|
|
var p = bookmark.ParentNode;
|
|
if (p != null && p.Name == Constants.DocumentBookmark) {
|
|
bookmark.SetAttribute(Constants.BookmarkAttributes.Open, Constants.Boolean.True);
|
|
}
|
|
else {
|
|
bookmark.SetAttribute(Constants.BookmarkAttributes.Open, Constants.Boolean.False);
|
|
}
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|