using Prism.Mvvm; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PDF_Office.Model.HomePageToolsDialogs { public class HomePageSplitDialogModel:BindableBase { /// <summary> /// 拆分模式 /// </summary> public SplitMode Mode = SplitMode.AveragePages; /// <summary> /// 页面范围形式 /// </summary> public PageRangeMode PageMode = PageRangeMode.OddPage; /// <summary> /// 拆分模式份数或者页数 /// </summary> public int GetModeCount = 1; /// <summary> /// 页面信息 /// </summary> public string PageRange = "1,3-4,10"; private int pageSelectedIndex = 1; public int PageSelectedIndex { get { return pageSelectedIndex; } set { SetProperty(ref pageSelectedIndex, value); switch (value) { case 1: PageMode = PageRangeMode.OddPage; break; case 2: PageMode = PageRangeMode.EvenPage; break; case 3: PageMode = PageRangeMode.CustomPage; break; default: break; } } } private double pageNum = 1; /// <summary> /// 平均页数 /// </summary> public double PageNum { get { return pageNum; } set { SetProperty(ref pageNum, value); GetModeCount = (int)value; } } private double filesCount = 1; /// <summary> /// 平均文件数 /// </summary> public double FilesCount { get { return filesCount; } set { SetProperty(ref filesCount, value); GetModeCount = (int)value; } } private bool isAveragePages = true; /// <summary> /// 平均按页拆分 是否选中 /// </summary> public bool IsAveragePages { get { return isAveragePages; } set { SetProperty(ref isAveragePages, value); if(value) { Mode = SplitMode.AveragePages; } } } private bool isAveragePDF = false; /// <summary> /// 平均按PDF拆分 是否选中 /// </summary> public bool IsAveragePDF { get { return isAveragePDF; } set { SetProperty(ref isAveragePDF, value); if (value) { Mode = SplitMode.AverageFiles; } } } private bool isCustomRange = false; /// <summary> /// 自定义页面范围,是否选中 /// </summary> public bool IsCustomRange { get { return isCustomRange; } set { SetProperty(ref isCustomRange, value); if (value) { Mode = SplitMode.CustomPageRange; } } } /// <summary> /// 文件名标签 /// </summary> private string fileNameLabel = "part"; public string FileNameLabel { get { return fileNameLabel; } set { SetProperty(ref fileNameLabel, value); RefreshFileName(); } } private bool hasLabel = true; /// <summary> /// 是否含有标签 /// </summary> public bool HasLabel { get { return hasLabel; } set { SetProperty(ref hasLabel, value); RefreshFileName(); } } /// <summary> /// 文件名与标签分隔符 /// </summary> private string fileNameDeimiter="-"; public string FileNameDeimiter { get { return fileNameDeimiter; } set { SetProperty(ref fileNameDeimiter, value); RefreshFileName(); } } private bool hasDeimiter = true; /// <summary> /// 是否含有分隔符 /// </summary> public bool HasDeimiter { get { return hasDeimiter; } set { SetProperty(ref hasDeimiter, value); RefreshFileName(); } } /// <summary> /// 文件名与标签分隔符 /// </summary> public bool FrontFileName = true; /// <summary> /// 页码 存入页码范围; /// </summary> public List<int> PageParm = new List<int> { }; /// <summary> /// 文件名; /// </summary> private string fileName = ""; public string FileName { get { return fileName; } set { SetProperty(ref fileName, value); } } private bool isSourceNameFront = true; /// <summary> /// 原始文档名前置 /// </summary> public bool IsSourceNameFront { get { return isSourceNameFront; } set { SetProperty(ref isSourceNameFront, value); RefreshFileName(); } } private string sourceName; /// <summary> /// 原始文件名 /// </summary> public string SourceFileName { get { return sourceName; } set { SetProperty(ref sourceName, value); RefreshFileName(); } } /// <summary> /// 刷新文件名 /// </summary> public void RefreshFileName() { string label = HasLabel ? FileNameLabel : ""; string deimiter = hasDeimiter ? FileNameDeimiter : ""; if(isSourceNameFront) { FileName = SourceFileName + deimiter + label + ".pdf"; } else { FileName = label + deimiter + SourceFileName + ".pdf"; } } public enum SplitMode { /// <summary> /// 按页平均拆分 /// </summary> AveragePages, /// <summary> /// 按文件平均拆分 /// </summary> AverageFiles, /// <summary> /// 自定义页码范围拆分 /// </summary> CustomPageRange } public enum PageRangeMode { /// <summary> /// 奇数页 /// </summary> OddPage, /// <summary> /// 偶数页 /// </summary> EvenPage, /// <summary> /// 自定义页面范围 /// </summary> CustomPage } } }