|
@@ -1,27 +1,31 @@
|
|
|
-using Prism.Mvvm;
|
|
|
+using PDF_Master.CustomControl;
|
|
|
+using Prism.Mvvm;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
+using System.Text.RegularExpressions;
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
{
|
|
|
- public class HomePageSplitDialogModel:BindableBase
|
|
|
+ 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>
|
|
@@ -40,21 +44,23 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
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>
|
|
@@ -69,6 +75,7 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
}
|
|
|
|
|
|
private double filesCount = 1;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 平均文件数
|
|
|
/// </summary>
|
|
@@ -83,6 +90,7 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
}
|
|
|
|
|
|
private bool isAveragePages = true;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 平均按页拆分 是否选中
|
|
|
/// </summary>
|
|
@@ -92,7 +100,7 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
set
|
|
|
{
|
|
|
SetProperty(ref isAveragePages, value);
|
|
|
- if(value)
|
|
|
+ if (value)
|
|
|
{
|
|
|
Mode = SplitMode.AveragePages;
|
|
|
}
|
|
@@ -100,6 +108,7 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
}
|
|
|
|
|
|
private bool isAveragePDF = false;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 平均按PDF拆分 是否选中
|
|
|
/// </summary>
|
|
@@ -116,7 +125,6 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private bool isCustomRange = false;
|
|
|
/// <summary>
|
|
|
/// 自定义页面范围,是否选中
|
|
@@ -151,6 +159,7 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
}
|
|
|
|
|
|
private bool hasLabel = true;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否含有标签
|
|
|
/// </summary>
|
|
@@ -164,11 +173,10 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 文件名与标签分隔符
|
|
|
/// </summary>
|
|
|
- private string fileNameDeimiter="-";
|
|
|
+ private string fileNameDeimiter = "-";
|
|
|
|
|
|
public string FileNameDeimiter
|
|
|
{
|
|
@@ -176,11 +184,35 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
set
|
|
|
{
|
|
|
SetProperty(ref fileNameDeimiter, value);
|
|
|
+ // 拆分 分割符 特殊字符判断
|
|
|
+ if (string.IsNullOrEmpty(fileNameDeimiter) == false)
|
|
|
+ {
|
|
|
+ string pattern = @"[\\\/:*?""<>|.]"; // 定义不允许出现的字符的正则表达式模式
|
|
|
+
|
|
|
+ Regex regex = new Regex(pattern);
|
|
|
+
|
|
|
+ //if (regex.IsMatch(fileName))
|
|
|
+ //{
|
|
|
+ char[] invalidChars = { '\\', '/', ':', '*', '?', '"', '<', '>', '|', '.' };
|
|
|
+
|
|
|
+ //英文
|
|
|
+ if (fileNameDeimiter.IndexOfAny(invalidChars) != -1)
|
|
|
+ {
|
|
|
+ fileNameDeimiter = string.Empty;
|
|
|
+ Console.WriteLine("文件名包含不允许的字符");
|
|
|
+ // 进行报错处理的代码逻辑
|
|
|
+ AlertsMessage alertsMessage = new AlertsMessage();
|
|
|
+ string illegalChars = @"\ /<>:|""?*";
|
|
|
+ alertsMessage.ShowDialog($"文件名包含不允许的字符", $"文件名包含不允许的字符{illegalChars}", App.ServiceLoader.GetString("Text_ok"), IconType.Tip);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
RefreshFileName();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private bool hasDeimiter = true;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否含有分隔符
|
|
|
/// </summary>
|
|
@@ -194,15 +226,16 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 文件名与标签分隔符
|
|
|
/// </summary>
|
|
|
public bool FrontFileName = true;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 页码 存入页码范围;
|
|
|
/// </summary>
|
|
|
public List<int> PageParm = new List<int> { };
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 文件名;
|
|
|
/// </summary>
|
|
@@ -218,10 +251,11 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
}
|
|
|
|
|
|
private bool isSourceNameFront = true;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 原始文档名前置
|
|
|
/// </summary>
|
|
|
- public bool IsSourceNameFront
|
|
|
+ public bool IsSourceNameFront
|
|
|
{
|
|
|
get { return isSourceNameFront; }
|
|
|
set
|
|
@@ -232,6 +266,7 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
}
|
|
|
|
|
|
private string sourceName;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 原始文件名
|
|
|
/// </summary>
|
|
@@ -252,9 +287,9 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
{
|
|
|
string label = HasLabel ? FileNameLabel : "";
|
|
|
string deimiter = HasDeimiter ? FileNameDeimiter : "";
|
|
|
- if(isSourceNameFront)
|
|
|
+ if (isSourceNameFront)
|
|
|
{
|
|
|
- FileName = SourceFileName + deimiter + label +"1"+ ".pdf";
|
|
|
+ FileName = SourceFileName + deimiter + label + "1" + ".pdf";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -268,10 +303,12 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
/// 按页平均拆分
|
|
|
/// </summary>
|
|
|
AveragePages,
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 按文件平均拆分
|
|
|
/// </summary>
|
|
|
AverageFiles,
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 自定义页码范围拆分
|
|
|
/// </summary>
|
|
@@ -284,14 +321,16 @@ namespace PDF_Master.Model.HomePageToolsDialogs
|
|
|
/// 奇数页
|
|
|
/// </summary>
|
|
|
OddPage,
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 偶数页
|
|
|
/// </summary>
|
|
|
EvenPage,
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 自定义页面范围
|
|
|
/// </summary>
|
|
|
CustomPage
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|