|
@@ -141,6 +141,25 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 控件原始大小
|
|
|
+ /// </summary>
|
|
|
+ private Size itemSize = new Size(208,294);
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 页面缩放状态,-1 为最小值,1为最大值
|
|
|
+ /// </summary>
|
|
|
+ private int zoomIndex = 0;
|
|
|
+
|
|
|
+ public int ZoomIndex
|
|
|
+ {
|
|
|
+ get { return zoomIndex; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ SetProperty(ref zoomIndex, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 命令
|
|
@@ -195,6 +214,16 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
/// 倒序
|
|
|
/// </summary>
|
|
|
public DelegateCommand ReverseCommand { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 放大
|
|
|
+ /// </summary>
|
|
|
+ public DelegateCommand ZoomInCommand { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 缩小
|
|
|
+ /// </summary>
|
|
|
+ public DelegateCommand ZoomOutCommand { get; set; }
|
|
|
#endregion
|
|
|
|
|
|
public PageEditContentViewModel(IDialogService dialogService, IEventAggregator eventAggregator)
|
|
@@ -219,6 +248,8 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
LeftRotateCommand = new DelegateCommand(LeftRotateCommandEvent, CanFileCommandExcute).ObservesProperty(() => ListSelectedIndex);
|
|
|
RightRotateCommand = new DelegateCommand(RightRotateCommandEvent, CanFileCommandExcute).ObservesProperty(() => ListSelectedIndex);
|
|
|
ReverseCommand = new DelegateCommand(ReverseCommandEvent,CanFileCommandExcute).ObservesProperty(() => ListSelectedIndex);
|
|
|
+ ZoomInCommand = new DelegateCommand(ZoomInCommandEvent,CanZoomIn).ObservesProperty(()=>ZoomIndex);
|
|
|
+ ZoomOutCommand = new DelegateCommand(ZoomOutCommandEvent, CanZoomOut).ObservesProperty(()=> ZoomIndex);
|
|
|
|
|
|
//订阅页面刷新事件
|
|
|
eventAggregator.GetEvent<PageEditRefreshEvent>().Subscribe(OnPageEditRefreshEvent, e => e.Unicode == unicode);
|
|
@@ -301,7 +332,7 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
/// </summary>
|
|
|
private void LeftRotateCommandEvent()
|
|
|
{
|
|
|
-
|
|
|
+ RotateSelectedPages(false);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -309,7 +340,7 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
/// </summary>
|
|
|
private void RightRotateCommandEvent()
|
|
|
{
|
|
|
-
|
|
|
+ RotateSelectedPages();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -336,6 +367,54 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 放大页面
|
|
|
+ /// </summary>
|
|
|
+ private void ZoomInCommandEvent()
|
|
|
+ {
|
|
|
+ for(int i=0;i<PageEditItems.Count;i++)
|
|
|
+ {
|
|
|
+ PageEditItems[i].ItemSize = new Size(PageEditItems[i].ItemSize.Width * 2, PageEditItems[i].ItemSize.Height * 2);
|
|
|
+ }
|
|
|
+ ZoomIndex++;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 缩小页面
|
|
|
+ /// </summary>
|
|
|
+ private void ZoomOutCommandEvent()
|
|
|
+ {
|
|
|
+ for (int i = 0; i < PageEditItems.Count; i++)
|
|
|
+ {
|
|
|
+ PageEditItems[i].ItemSize = new Size(PageEditItems[i].ItemSize.Width /2, PageEditItems[i].ItemSize.Height /2);
|
|
|
+ }
|
|
|
+ ZoomIndex--;
|
|
|
+ }
|
|
|
+
|
|
|
+ private bool CanZoomIn()
|
|
|
+ {
|
|
|
+ if(ZoomIndex>=1)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private bool CanZoomOut()
|
|
|
+ {
|
|
|
+ if (ZoomIndex <=-1)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/// <summary>
|
|
|
/// 响应UI发送刷新图片的事件
|
|
@@ -448,6 +527,32 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
#endregion
|
|
|
|
|
|
#region 方法
|
|
|
+ /// <summary>
|
|
|
+ /// 旋转所有选中页面
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="rightRotate"></param>
|
|
|
+ private void RotateSelectedPages(bool rightRotate = true)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < PageEditItems.Count; i++)
|
|
|
+ {
|
|
|
+ if (PageEditItems[i].Selected)
|
|
|
+ {
|
|
|
+ //逆时针旋转传-1 顺时针旋转传1
|
|
|
+ PDFViewer.Document.RotatePage(i, rightRotate?1:-1);
|
|
|
+ PDFViewer.Document.ReleasePages(i);
|
|
|
+
|
|
|
+ //重新拿图
|
|
|
+ PageEditItems[i].isVertical = !PageEditItems[i].isVertical;
|
|
|
+ PageEditItems[i].IsGetImage = false;
|
|
|
+ RefreshItemImage(i, i);
|
|
|
+
|
|
|
+ PDFViewer.UndoManager.ClearHistory();
|
|
|
+ PDFViewer.UndoManager.CanSave = true;
|
|
|
+ //需要ReloadDocument 才能刷新阅读页图片
|
|
|
+ PDFViewer.ReloadDocument();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 刷新页码
|
|
@@ -491,6 +596,7 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
+ //奇数页
|
|
|
for (int i = 0; i < PageEditItems.Count; i++)
|
|
|
{
|
|
|
if (i % 2 == 0)
|
|
@@ -504,6 +610,7 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
}
|
|
|
break;
|
|
|
case 2:
|
|
|
+ //偶数页
|
|
|
for (int i = 0; i < PageEditItems.Count; i++)
|
|
|
{
|
|
|
if (i % 2 == 0)
|
|
@@ -576,8 +683,13 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
{
|
|
|
PageEditItem item = new PageEditItem();
|
|
|
item.PageNumber = i + 1;
|
|
|
- var pagesize = PDFViewer.Document.GetPageSize(i);
|
|
|
|
|
|
+ if(PDFViewer.Document.PageAtIndex(i).Rotation % 2 != 0)
|
|
|
+ {
|
|
|
+ ///标记为横向页面
|
|
|
+ PageEditItems[i].isVertical = false;
|
|
|
+ }
|
|
|
+ var pagesize = PDFViewer.Document.GetPageSize(i);
|
|
|
item.PageSize = $"{pagesize.Width}mm*{pagesize.Height} mm";
|
|
|
PageEditItems.Add(item);
|
|
|
}
|
|
@@ -625,7 +737,15 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
if (i <= PDFViewer.Document.PageCount - 1&&i>=0)
|
|
|
{
|
|
|
//宽高为样式中图片控件宽高
|
|
|
- await PDFViewer.GetThumbnail(i, 208, 294);
|
|
|
+ if (PageEditItems[i].isVertical)
|
|
|
+ {
|
|
|
+ await PDFViewer.GetThumbnail(i, 208, 294);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //获取横图
|
|
|
+ await PDFViewer.GetThumbnail(i, 294, 208);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -685,6 +805,8 @@ namespace PDF_Office.ViewModels.PageEdit
|
|
|
|
|
|
ListSelectedIndex = PDFViewer.CurrentIndex;
|
|
|
|
|
|
+ ZoomIndex = 0;
|
|
|
+
|
|
|
RefreshBookMarkList();
|
|
|
}
|
|
|
}
|