----------------------------------------------------------
September 29, 2011
SilverDox v1.3.0 update
Download:
http://www.pdftron.com/silverdox/downloads.html
----------------------------------------------------------
What’s new:
Annotation related:
- AnnotationManger supports undo/redo.
- New Annotation properties to limit the ability of users to edit
them.
- New DocumentViewer events related to annotation editing operations.
- A new DocumentViewer method to scroll to a particular annotation.
- ReaderControl has a new Annotations panel to help add, edit and
manage annotations.
Other improvements:
- DocumentViewer/ReaderControl has been updated to support
internationalization, and includes sample internationalization in
French and Mandarin.
- A new DocumentViewer method CloseDocument to clear the viewer.
- A new HttpStreamingPartRetriever method AddBytes that allows it to
be used with a stream of data from any source, such as a WCF service.
- Performance improvements: faster image decompression (with files
produced by new SilverDox Document Publisher), faster free hand
annotation tool.
- Bug fixes.
New Classes, Methods and Types in SilverDox
----------------------------------------------------------
Namespace
PDFTron.SilverDox.IO:
Class HttpStreamingPartRetriever:
public void AddBytes(Byte[] newBytes, Int32 numNewBytes);
Class OnPartReadyEventArgs:
public OnPartReadyEventArgs(String fileName, Byte[] data,
Object customData, Boolean completedSynchronously, Boolean
compressedData, Boolean cancelled, Exception error); (Replaces
constructor without compressedData parameter)
public Boolean IsCompressed { get; set; }
Namespace PDFTron.SilverDox.Controls:
Class DocumentViewer:
public AnnotationManager AnnotationManager { get; set; }
(Replaces field AnnotationManager)
public void CloseDocument();
public void ScrollToAnnotation(Annotation annotation);
public event
EventHandler<AnnotationPopupContentChangedEventArgs>
AnnotationPopupContentChanged;
public event EventHandler<AnnotationResizedEventArgs>
AnnotationResized;
public event EventHandler<AnnotationsEventArgs>
AnnotationsAdded;
public event EventHandler<AnnotationsEventArgs>
AnnotationsCreated;
public event EventHandler<AnnotationsEventArgs>
AnnotationsDeselected;
public event EventHandler<AnnotationsEventArgs>
AnnotationsDragged;
public event EventHandler<AnnotationsMoveCompletedEventArgs>
AnnotationsMoveCompleted;
public event EventHandler<AnnotationsEventArgs>
AnnotationsRemoved;
public event EventHandler<AnnotationsEventArgs>
AnnotationsSelected;
public event EventHandler<ToolModeChangedEventArgs>
ToolModeChanged;
Namespace PDFTron.SilverDox.Documents.Annotations:
Class Annotation:
public virtual Boolean IsCopyable { get; protected set; }
public Boolean IsSelectable { get; set; }
public Boolean MirroredHorizontally { get; set; } (Replaces
field MirroredHorizontally)
public Boolean MirroredVertically { get; set; } (Replaces
field MirroredVertically)
public Boolean NoMove { get; set; }
public String Id { get; set; }
public virtual void
OnAnnotationResizeEnded(AnnotationResizedEventArgs e);
public virtual void OnAnnotationResizeStarted();
public event PropertyChangedEventHandler PropertyChanged;
protected Boolean shouldBeCreated;
Class AnnotationManager:
public Boolean AnnotationsModified { get; set; }
public Boolean CanPaste { get; }
public Boolean CanRedo { get; }
public Boolean CanUndo { get; }
public IEnumerable<Annotation> AnnotationsList { get; }
public void AddUndoAnnotationState(Annotation annotation,
Dictionary<String,Object> oldPropValues);
public void ClearUndoRedoHistory();
public void CopySelectedAnnotations();
public void CutSelectedAnnotations();
public void DeselectAllAnnotations();
public IDictionary<Annotation,AnnotationManager+TypeOfChange>
GetAllChangedAnnotations();
public Annotation GetAnnotationByPoint(Point point);
public IEnumerable<Annotation> LoadAnnotations(Stream
xmlAnnotations, Predicate<Annotation> filter);
public IEnumerable<Annotation>
PasteCopiedAnnotations(Nullable<Int32> newPageNumber);
public void Redo();
public void RemoveAnnotations(IEnumerable<Annotation>
annotations);
public Boolean SelectAnnotation(Annotation annotation);
public void Undo();
public enum TypeOfChange {
Removed,
Created,
Modified
}
Class Markup:
public Color FillColor { get; set; } (Replaces field
FillColor)
public Color StrokeColor { get; set; } (Replaces field
StrokeColor)
public Double StrokeThickness { get; set; } (Replaces field
StrokeThickness)
public DoubleCollection StrokeDashArray { get; set; }
(Replaces field StrokeDashArray)
New Classes:
public class PopupBody : UserControl, INotifyPropertyChanged {
public PopupBody();
public Annotation Annotation { get; set; }
public SolidColorBrush BackgroundColor { get; }
public SolidColorBrush ForegroundColor { get; }
public void InitializeComponent();
public event EventHandler<MouseButtonEventArgs>
closeBoxClicked;
public event EventHandler<RoutedEventArgs>
commentTextBoxLostFocus;
public event EventHandler<MouseEventArgs>
commentTextBoxMouseEnter;
public event EventHandler<MouseEventArgs>
commentTextBoxMouseLeave;
public event PropertyChangedEventHandler PropertyChanged;
public static Color GetPopupBodyBackgroundColor(Annotation
annot);
public static Color GetPopupBodyForegroundColor(Annotation
annot);
public static readonly DependencyProperty AnnotationProperty;
}
public class AnnotationPopupContentChangedEventArgs : EventArgs {
public AnnotationPopupContentChangedEventArgs(Annotation
changedAnnotation, String oldContent);
public Annotation ChangedAnnotation { get; }
public String NewContent { get; set; }
public String OldContent { get; set; }
}
public class AnnotationResizedEventArgs : EventArgs {
public AnnotationResizedEventArgs(Annotation
resizedAnnotation, Rect oldRect, Boolean oldMirroredHorizontally,
Boolean oldMirroredVertically);
public Annotation ResizedAnnotation { get; }
public Boolean NewMirroredHorizontally { get; }
public Boolean NewMirroredVertically { get; }
public Boolean OldMirroredHorizontally { get; }
public Boolean OldMirroredVertically { get; }
public Rect NewRect { get; }
public Rect OldRect { get; }
}
public class AnnotationPopupContentChangedEventArgs : EventArgs {
public AnnotationPopupContentChangedEventArgs(Annotation
changedAnnotation, String oldContent);
public Annotation ChangedAnnotation { get; }
public String NewContent { get; set; }
public String OldContent { get; set; }
}
public class AnnotationResizedEventArgs : EventArgs {
public AnnotationResizedEventArgs(Annotation
resizedAnnotation, Rect oldRect, Boolean oldMirroredHorizontally,
Boolean oldMirroredVertically);
public Annotation ResizedAnnotation { get; }
public Boolean NewMirroredHorizontally { get; }
public Boolean NewMirroredVertically { get; }
public Boolean OldMirroredHorizontally { get; }
public Boolean OldMirroredVertically { get; }
public Rect NewRect { get; }
public Rect OldRect { get; }
}
public class AnnotationsEventArgs : EventArgs {
public AnnotationsEventArgs(List<Annotation> annotations);
public List<Annotation> Annotations { get; }
}
public class AnnotationsMoveCompletedEventArgs : EventArgs {
public
AnnotationsMoveCompletedEventArgs(Dictionary<Annotation,Point>
oldLocations, Dictionary<Annotation,Point> newLocations);
public Dictionary<Annotation,Point> NewLocations { get; }
public Dictionary<Annotation,Point> OldLocations { get; }
public IList<Annotation> MovedAnnotations { get; }
public class ToolModeChangedEventArgs : EventArgs {
public ToolModeChangedEventArgs(ToolModes oldToolMode,
ToolModes newToolMode);
public ToolModes NewToolMode { get; }
public ToolModes OldToolMode { get; }
}
Removed Methods in SilverDox
----------------------------------------------------------
Namespace PDFTron.SilverDox.Controls:
Class DocumentViewer:
public AnnotationManager AnnotationManager; (Replaced by
property AnnotationManager)
Namespace PDFTron.SilverDox.Documents.Annotations:
Class Annotation:
public Boolean MirroredHorizontally; (Replaced by property
MirroredHorizontally)
public Boolean MirroredVertically; (Replaced by property
MirroredVertically)
Class Markup:
public Color FillColor; (Replaced by property FillColor)
public Color StrokeColor; (Replaced by property StrokeColor)
public DoubleCollection StrokeDashArray; (Replaced by property
StrokeDashArray)
public Double StrokeThickness; (Replaced by property
StrokeThickness)
Namespace
PDFTron.SilverDox.IO:
Class HttpStreamingPartRetriever:
public OnPartReadyEventArgs(String fileName, Byte[] data,
Object customData, Boolean completedSynchronously, Boolean cancelled,
Exception error); (Replaced by constructor that also takes an extra
bool, compressedData)