|
@@ -126,11 +126,127 @@ namespace PDF_Office.ViewModels.Tools
|
|
|
PDFViewer.SnapshotCommandHandler -= PDFViewer_SnapshotCommandHandler;
|
|
|
PDFViewer.PDFActionHandler -= PDFViewer_PDFActionHandler;
|
|
|
PDFViewer.AnnotHoverHandler -= PDFViewer_AnnotHoverHandler;
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion 事件绑定和解绑
|
|
|
|
|
|
+ #region 与触发事件调用相关的函数
|
|
|
+
|
|
|
+ //是否为形状注释
|
|
|
+ private bool isShapAnnot(AnnotHandlerEventArgs annot)
|
|
|
+ {
|
|
|
+ if (annot.EventType == AnnotArgsType.AnnotCircle ||
|
|
|
+ annot.EventType == AnnotArgsType.AnnotSquare ||
|
|
|
+ annot.EventType == AnnotArgsType.AnnotLine
|
|
|
+ )
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //是否为高亮注释
|
|
|
+ private bool isHightAnnot(AnnotHandlerEventArgs annot)
|
|
|
+ {
|
|
|
+ if (annot.EventType == AnnotArgsType.AnnotUnderline ||
|
|
|
+ annot.EventType == AnnotArgsType.AnnotSquiggly ||
|
|
|
+ annot.EventType == AnnotArgsType.AnnotHighlight ||
|
|
|
+ annot.EventType == AnnotArgsType.AnnotStrikeout
|
|
|
+ )
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void GetSelectedAnnots(AnnotAttribEvent e)
|
|
|
+ {
|
|
|
+ var annot = e.AnnotItemsList[0];
|
|
|
+ switch (annot.EventType)
|
|
|
+ {
|
|
|
+ case AnnotArgsType.AnnotHighlight:
|
|
|
+ GetHighLight(e.AnnotItemsList);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotUnderline:
|
|
|
+ GetUnderLine(e.AnnotItemsList);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotStrikeout:
|
|
|
+ GetStrikeout(e.AnnotItemsList);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotSquiggly:
|
|
|
+ GetSquiggly(e.AnnotItemsList);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotFreehand:
|
|
|
+ GetFreehand(e.AnnotItemsList);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotFreeText:
|
|
|
+ GetFreetext(e.AnnotItemsList);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotSquare:
|
|
|
+ GetRect(e.AnnotItemsList);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotCircle:
|
|
|
+ GetCircle(e.AnnotItemsList);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotLine:
|
|
|
+ bool isLine = true;
|
|
|
+ if (e.Attribs.ContainsKey(AnnotAttrib.LineStart))
|
|
|
+ {
|
|
|
+ if ((C_LINE_TYPE)e.Attribs[AnnotAttrib.LineStart] != C_LINE_TYPE.LINETYPE_UNKNOWN && (C_LINE_TYPE)e.Attribs[AnnotAttrib.LineStart] != C_LINE_TYPE.LINETYPE_NONE)
|
|
|
+ {
|
|
|
+ isLine = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (e.Attribs.ContainsKey(AnnotAttrib.LineEnd))
|
|
|
+ {
|
|
|
+ if ((C_LINE_TYPE)e.Attribs[AnnotAttrib.LineEnd] != C_LINE_TYPE.LINETYPE_UNKNOWN && (C_LINE_TYPE)e.Attribs[AnnotAttrib.LineEnd] != C_LINE_TYPE.LINETYPE_NONE)
|
|
|
+ {
|
|
|
+ isLine = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isLine)
|
|
|
+ GetArrowLine("Line", e.AnnotItemsList);
|
|
|
+ else
|
|
|
+ GetArrowLine("Arrow", e.AnnotItemsList);
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotLink:
|
|
|
+ //viewContentViewModel.IsCreateLink = false;
|
|
|
+ GetLink(e.AnnotItemsList, e);
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotSticky:
|
|
|
+ GetStickyNote(e.AnnotItemsList);
|
|
|
+ customStickyPopup.GetCurrentAnnot = e.AnnotItemsList[0] as StickyAnnotArgs;
|
|
|
+ customStickyPopup.GetPDFViewer = PDFViewer;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case AnnotArgsType.AnnotStamp:
|
|
|
+ GetStamp();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
#region PDFViewer事件
|
|
|
|
|
|
//选中和非选中注释
|
|
@@ -285,115 +401,6 @@ namespace PDF_Office.ViewModels.Tools
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private bool isShapAnnot(AnnotHandlerEventArgs annot)
|
|
|
- {
|
|
|
- if (annot.EventType == AnnotArgsType.AnnotCircle ||
|
|
|
- annot.EventType == AnnotArgsType.AnnotSquare ||
|
|
|
- annot.EventType == AnnotArgsType.AnnotLine
|
|
|
- )
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private bool isHightAnnot(AnnotHandlerEventArgs annot)
|
|
|
- {
|
|
|
- if (annot.EventType == AnnotArgsType.AnnotUnderline ||
|
|
|
- annot.EventType == AnnotArgsType.AnnotSquiggly ||
|
|
|
- annot.EventType == AnnotArgsType.AnnotHighlight ||
|
|
|
- annot.EventType == AnnotArgsType.AnnotStrikeout
|
|
|
- )
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private void GetSelectedAnnots(AnnotAttribEvent e)
|
|
|
- {
|
|
|
- var annot = e.AnnotItemsList[0];
|
|
|
- switch (annot.EventType)
|
|
|
- {
|
|
|
- case AnnotArgsType.AnnotHighlight:
|
|
|
- GetHighLight(e.AnnotItemsList);
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotUnderline:
|
|
|
- GetUnderLine(e.AnnotItemsList);
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotStrikeout:
|
|
|
- GetStrikeout(e.AnnotItemsList);
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotSquiggly:
|
|
|
- GetSquiggly(e.AnnotItemsList);
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotFreehand:
|
|
|
- GetFreehand(e.AnnotItemsList);
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotFreeText:
|
|
|
- GetFreetext(e.AnnotItemsList);
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotSquare:
|
|
|
- GetRect(e.AnnotItemsList);
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotCircle:
|
|
|
- GetCircle(e.AnnotItemsList);
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotLine:
|
|
|
- bool isLine = true;
|
|
|
- if (e.Attribs.ContainsKey(AnnotAttrib.LineStart))
|
|
|
- {
|
|
|
- if ((C_LINE_TYPE)e.Attribs[AnnotAttrib.LineStart] != C_LINE_TYPE.LINETYPE_UNKNOWN && (C_LINE_TYPE)e.Attribs[AnnotAttrib.LineStart] != C_LINE_TYPE.LINETYPE_NONE)
|
|
|
- {
|
|
|
- isLine = false;
|
|
|
- }
|
|
|
- }
|
|
|
- if (e.Attribs.ContainsKey(AnnotAttrib.LineEnd))
|
|
|
- {
|
|
|
- if ((C_LINE_TYPE)e.Attribs[AnnotAttrib.LineEnd] != C_LINE_TYPE.LINETYPE_UNKNOWN && (C_LINE_TYPE)e.Attribs[AnnotAttrib.LineEnd] != C_LINE_TYPE.LINETYPE_NONE)
|
|
|
- {
|
|
|
- isLine = false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (isLine)
|
|
|
- GetArrowLine("Line", e.AnnotItemsList);
|
|
|
- else
|
|
|
- GetArrowLine("Arrow", e.AnnotItemsList);
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotLink:
|
|
|
- //viewContentViewModel.IsCreateLink = false;
|
|
|
- GetLink(e.AnnotItemsList, e);
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotSticky:
|
|
|
- GetStickyNote(e.AnnotItemsList);
|
|
|
- customStickyPopup.GetCurrentAnnot = e.AnnotItemsList[0] as StickyAnnotArgs;
|
|
|
- customStickyPopup.GetPDFViewer = PDFViewer;
|
|
|
- break;
|
|
|
-
|
|
|
- case AnnotArgsType.AnnotStamp:
|
|
|
- GetStamp();
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
//在注释工具的状态下,右键菜单
|
|
|
private void PDFViewer_AnnotCommandHandler(object sender, AnnotCommandArgs e)
|
|
@@ -712,7 +719,10 @@ namespace PDF_Office.ViewModels.Tools
|
|
|
Pen hoverPen = new Pen(new SolidColorBrush(Color.FromArgb(0xff, 0x11, 0x8A, 0xff)), 1);
|
|
|
hoverPen.DashStyle = DashStyles.Dash;
|
|
|
e.DrawContext?.DrawRectangle(null, hoverPen, hoverRect);
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
#endregion PDFViewer事件
|