|
@@ -9,6 +9,7 @@ using PDF_Office.Helper;
|
|
using System.Diagnostics;
|
|
using System.Diagnostics;
|
|
using PDF_Office.CustomControl;
|
|
using PDF_Office.CustomControl;
|
|
using PDF_Office.Model.HomePageToolsDialogs;
|
|
using PDF_Office.Model.HomePageToolsDialogs;
|
|
|
|
+using System.Linq;
|
|
|
|
|
|
namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
|
|
namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
|
|
{
|
|
{
|
|
@@ -26,7 +27,7 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
|
|
private string savefilename { get; set; }
|
|
private string savefilename { get; set; }
|
|
|
|
|
|
public string PageRangeText { set; get; } = "0";
|
|
public string PageRangeText { set; get; } = "0";
|
|
-
|
|
|
|
|
|
+
|
|
public string PageRangeSelectIndex { set; get; } = "0";
|
|
public string PageRangeSelectIndex { set; get; } = "0";
|
|
|
|
|
|
private string averagePagesIsCheck = "True";
|
|
private string averagePagesIsCheck = "True";
|
|
@@ -92,7 +93,7 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
|
|
public string AveragePagesText { set; get; } = "";
|
|
public string AveragePagesText { set; get; } = "";
|
|
|
|
|
|
public string AverageFilesText { set; get; } = "";
|
|
public string AverageFilesText { set; get; } = "";
|
|
-
|
|
|
|
|
|
+
|
|
|
|
|
|
private string filePathName = "";
|
|
private string filePathName = "";
|
|
public string FilePathName
|
|
public string FilePathName
|
|
@@ -104,14 +105,14 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public string FileNameLabelText{ set; get; } = "part";
|
|
|
|
-
|
|
|
|
|
|
+ public string FileNameLabelText { set; get; } = "part";
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public string FileNameDeimiterText { set; get; } = "-";
|
|
|
|
|
|
- public string FileNameDeimiterText{ set; get; } = "-";
|
|
|
|
-
|
|
|
|
|
|
|
|
public string FrontFileIsCheck { set; get; } = "True";
|
|
public string FrontFileIsCheck { set; get; } = "True";
|
|
-
|
|
|
|
|
|
+
|
|
public string FileNameLabelIsCheck { set; get; } = "True";
|
|
public string FileNameLabelIsCheck { set; get; } = "True";
|
|
|
|
|
|
public string FileNameDeimiterIsCheck { set; get; } = "True";
|
|
public string FileNameDeimiterIsCheck { set; get; } = "True";
|
|
@@ -157,6 +158,10 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
|
|
public DelegateCommand FileNameDeimiterChangeCommand { get; set; }
|
|
public DelegateCommand FileNameDeimiterChangeCommand { get; set; }
|
|
|
|
|
|
public DelegateCommand FileNameLabelChangeCommand { get; set; }
|
|
public DelegateCommand FileNameLabelChangeCommand { get; set; }
|
|
|
|
+
|
|
|
|
+ public DelegateCommand<object> CmbPageSelectionChanged { get; set; }
|
|
|
|
+
|
|
|
|
+ public DelegateCommand<object> CmbPageTextChanged { get; set; }
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
public HomePageSplitDialogViewModel()
|
|
public HomePageSplitDialogViewModel()
|
|
@@ -171,6 +176,8 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
|
|
FileNameDeimiterCommand = new DelegateCommand(fileNameDeimiter);
|
|
FileNameDeimiterCommand = new DelegateCommand(fileNameDeimiter);
|
|
FileNameDeimiterChangeCommand = new DelegateCommand(fileNameDeimiter);
|
|
FileNameDeimiterChangeCommand = new DelegateCommand(fileNameDeimiter);
|
|
FileNameLabelChangeCommand = new DelegateCommand(fileNameLabel);
|
|
FileNameLabelChangeCommand = new DelegateCommand(fileNameLabel);
|
|
|
|
+ CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
|
|
|
|
+ CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -423,38 +430,100 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- #endregion
|
|
|
|
|
|
|
|
- #region 构架行为
|
|
|
|
- public string Title => "";
|
|
|
|
|
|
+ private void CmbPageSelectionChangedEvent(object e)
|
|
|
|
+ {
|
|
|
|
+ ///这里采用的是将预览UI控件传递过来的方式,为下下策
|
|
|
|
+ ///正确的方式应该是 通过声明一些属性,再通过绑定来更新预览控件对应值的形式
|
|
|
|
+ ///但是目前发现自定义控件的依赖属性绑定有些问题,因此先用此方法,将业务逻辑代码先调整到VM里
|
|
|
|
+ var SplitPreview = e as PageTurningPreview;
|
|
|
|
+ if (SplitPreview != null)
|
|
|
|
+ {
|
|
|
|
+ string PageRangeSelectIndex = this.PageRangeSelectIndex;
|
|
|
|
+ var currentViewer = this.currentViewer;
|
|
|
|
+ string PageRange = "";
|
|
|
|
+ var PageRangeText = this.PageRangeText;
|
|
|
|
+ if (PageRangeSelectIndex == "0" || PageRangeSelectIndex == "1" || PageRangeSelectIndex == "2")
|
|
|
|
+ {
|
|
|
|
+ HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText);
|
|
|
|
+ char[] enumerationSeparator = new char[] { ',' };
|
|
|
|
+ char[] rangeSeparator = new char[] { '-' };
|
|
|
|
+ if (!CommonHelper.GetPagesInRange(ref SplitPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
|
|
|
|
+ { //TODO
|
|
|
|
+ Trace.WriteLine("输入不对");
|
|
|
|
+ MessageBoxEx.Show("输入不对");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
|
|
- public event Action<IDialogResult> RequestClose;
|
|
|
|
|
|
+ }
|
|
|
|
+ SplitPreview.PageIndex.Text = (SplitPreview.PageIndexLists.Last<int>() + 1).ToString();
|
|
|
|
+ SplitPreview.CurrentIndex = 0;
|
|
|
|
+ SplitPreview.CurrentPage.Text = (SplitPreview.PageIndexLists[SplitPreview.CurrentIndex] + 1).ToString();
|
|
|
|
+ SplitPreview.AwaitRenderBitmap(SplitPreview.document);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- public bool CanCloseDialog()
|
|
|
|
|
|
+ private void CmbPageTextChangedEvent(object e)
|
|
{
|
|
{
|
|
- return true;
|
|
|
|
|
|
+ var SplitPreview = e as PageTurningPreview;
|
|
|
|
+ if (SplitPreview != null)
|
|
|
|
+ {
|
|
|
|
+ string PageRangeSelectIndex = this.PageRangeSelectIndex;
|
|
|
|
+ var currentViewer = this.currentViewer;
|
|
|
|
+ string PageRange = "";
|
|
|
|
+ var PageRangeText = this.PageRangeText;
|
|
|
|
+ HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText);
|
|
|
|
+ char[] enumerationSeparator = new char[] { ',' };
|
|
|
|
+ char[] rangeSeparator = new char[] { '-' };
|
|
|
|
+
|
|
|
|
+ if (!CommonHelper.GetPagesInRange(ref SplitPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
|
|
|
|
+ { //TODO
|
|
|
|
+ SplitPreview.PageIndexLists.Add(0);
|
|
|
|
+
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ SplitPreview.PageIndex.Text = (SplitPreview.PageIndexLists.Last<int>() + 1).ToString();
|
|
|
|
+ SplitPreview.CurrentIndex = 0;
|
|
|
|
+ SplitPreview.CurrentPage.Text = (SplitPreview.PageIndexLists[SplitPreview.CurrentIndex] + 1).ToString();
|
|
|
|
+ SplitPreview.AwaitRenderBitmap(SplitPreview.document);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ #endregion
|
|
|
|
|
|
- public void OnDialogClosed()
|
|
|
|
- {
|
|
|
|
|
|
+ #region 构架行为
|
|
|
|
+ public string Title => "";
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ public event Action<IDialogResult> RequestClose;
|
|
|
|
|
|
- public void OnDialogOpened(IDialogParameters parameters)
|
|
|
|
|
|
+ public bool CanCloseDialog()
|
|
|
|
+ {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void OnDialogClosed()
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void OnDialogOpened(IDialogParameters parameters)
|
|
|
|
+ {
|
|
|
|
+ CPDFViewer viewer = null;
|
|
|
|
+ string filepath = "";
|
|
|
|
+ parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out viewer);
|
|
|
|
+ parameters.TryGetValue<string>(ParameterNames.FilePath, out filepath);
|
|
|
|
+ if (viewer != null && viewer.Document != null)
|
|
{
|
|
{
|
|
- CPDFViewer viewer = null;
|
|
|
|
- string filepath = "";
|
|
|
|
- parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out viewer);
|
|
|
|
- parameters.TryGetValue<string>(ParameterNames.FilePath, out filepath);
|
|
|
|
- if (viewer != null && viewer.Document != null)
|
|
|
|
- {
|
|
|
|
- currentViewer = viewer;
|
|
|
|
- document = viewer.Document;
|
|
|
|
- savefilename = currentViewer.Document.FileName;
|
|
|
|
- FilePathName = savefilename + "-" + "part" + ".pdf";
|
|
|
|
- savefilepath = filepath.Replace(savefilename + ".pdf", "");
|
|
|
|
- }
|
|
|
|
|
|
+ currentViewer = viewer;
|
|
|
|
+ document = viewer.Document;
|
|
|
|
+ savefilename = currentViewer.Document.FileName;
|
|
|
|
+ FilePathName = savefilename + "-" + "part" + ".pdf";
|
|
|
|
+ savefilepath = filepath.Replace(savefilename + ".pdf", "");
|
|
}
|
|
}
|
|
- #endregion
|
|
|
|
}
|
|
}
|
|
|
|
+ #endregion
|
|
|
|
+}
|
|
}
|
|
}
|