|
@@ -94,7 +94,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
string second = date.Substring(12, 2);
|
|
|
return new DateTime(int.Parse(year), int.Parse(month), int.Parse(day), int.Parse(hour), int.Parse(minute), int.Parse(second));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// Returns the file size based on the specified file path, with the smallest unit being bytes (B).
|
|
|
/// </summary>
|
|
@@ -123,7 +123,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
return "0B";
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public static string GetExistedPathOrEmpty(string filter = "PDF files (*.pdf)|*.pdf")
|
|
|
{
|
|
|
string selectedFilePath = string.Empty;
|
|
@@ -147,7 +147,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
}
|
|
|
return selectedFilePath;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public static string GetGeneratePathOrEmpty(string filter, string defaultFileName = "")
|
|
|
{
|
|
|
string selectedFilePath = string.Empty;
|
|
@@ -208,75 +208,80 @@ namespace Compdfkit_Tools.Helper
|
|
|
return pageParam;
|
|
|
}
|
|
|
|
|
|
+ public static List<int> GetDefaultPageList(CPDFDocument document)
|
|
|
+ {
|
|
|
+ List<int> pageRangeList = new List<int>();
|
|
|
+ for (int i = 0; i < document.PageCount; i++)
|
|
|
+ {
|
|
|
+ pageRangeList.Add(i + 1);
|
|
|
+ }
|
|
|
+ return pageRangeList;
|
|
|
+ }
|
|
|
+
|
|
|
public static bool GetPagesInRange(ref List<int> pageList, string pageRange, int count, char[] enumerationSeparator, char[] rangeSeparator, bool inittag = false)
|
|
|
{
|
|
|
- string[] rangeSplit = pageRange.Split(enumerationSeparator);
|
|
|
+ if (pageRange == null || pageList == null)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
pageList.Clear();
|
|
|
+ int starttag = inittag ? 0 : 1;
|
|
|
+
|
|
|
+ string[] rangeSplit = pageRange.Split(enumerationSeparator);
|
|
|
|
|
|
foreach (string range in rangeSplit)
|
|
|
{
|
|
|
- int starttag = 1;
|
|
|
- if (inittag)
|
|
|
- {
|
|
|
- starttag = 0;
|
|
|
- }
|
|
|
- if (range.Contains("-"))
|
|
|
+ if (range.Contains("-"))
|
|
|
{
|
|
|
- try
|
|
|
+ string[] limits = range.Split(rangeSeparator);
|
|
|
+ if (limits.Length == 2 && int.TryParse(limits[0], out int start) && int.TryParse(limits[1], out int end))
|
|
|
{
|
|
|
- string[] limits = range.Split(rangeSeparator);
|
|
|
- if (limits.Length >= 2 && !string.IsNullOrWhiteSpace(limits[0]) && !string.IsNullOrWhiteSpace(limits[1]))
|
|
|
+ if (start < starttag || end > count || start > end)
|
|
|
{
|
|
|
- int start = int.Parse(limits[0]);
|
|
|
- int end = int.Parse(limits[1]);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- if ((start < starttag) || (end > count) || (start > end))
|
|
|
- {
|
|
|
+ for (int i = start; i <= end; i++)
|
|
|
+ {
|
|
|
+ if (pageList.Contains(i - 1))
|
|
|
+ {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- for (int i = start; i <= end; ++i)
|
|
|
- {
|
|
|
- if (pageList.Contains(i))
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- pageList.Add(i - 1);
|
|
|
- }
|
|
|
- continue;
|
|
|
+ pageList.Add(i - 1);
|
|
|
}
|
|
|
}
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
+ else
|
|
|
+ {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
- int pageNr;
|
|
|
- try
|
|
|
- {
|
|
|
- pageNr = int.Parse(range);
|
|
|
- }
|
|
|
- catch (Exception)
|
|
|
+ else if (int.TryParse(range, out int pageNr))
|
|
|
{
|
|
|
- return false;
|
|
|
- }
|
|
|
- if (pageNr < starttag || pageNr > count)
|
|
|
- {
|
|
|
- return false;
|
|
|
+ if (pageNr < starttag || pageNr > count)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (pageList.Contains(pageNr - 1))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ pageList.Add(pageNr - 1);
|
|
|
}
|
|
|
- if (pageList.Contains(pageNr))
|
|
|
+ else
|
|
|
{
|
|
|
- return false;
|
|
|
+ return false;
|
|
|
}
|
|
|
- pageList.Add(pageNr - 1);
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
internal static class PageEditHelper
|
|
|
- {
|
|
|
+ {
|
|
|
public static T FindVisualParent<T>(DependencyObject obj) where T : class
|
|
|
{
|
|
|
while (obj != null)
|
|
@@ -357,7 +362,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
}
|
|
|
|
|
|
public class ArrowHelper
|
|
|
- {
|
|
|
+ {
|
|
|
public bool HasStartArrow
|
|
|
{
|
|
|
get
|
|
@@ -368,7 +373,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
public bool IsStartClosed
|
|
|
{
|
|
@@ -380,7 +385,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
public bool HasEndArrow
|
|
|
{
|
|
@@ -392,7 +397,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
public bool IsEndClosed
|
|
|
{
|
|
@@ -404,15 +409,15 @@ namespace Compdfkit_Tools.Helper
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- public uint ArrowAngle { get; set; }
|
|
|
- public uint ArrowLength { get; set; }
|
|
|
- public Point? LineStart { get; set; }
|
|
|
- public Point? LineEnd { get; set; }
|
|
|
- public PathGeometry Body { get; set; }
|
|
|
- public C_LINE_TYPE StartSharp { get; set; }
|
|
|
- public C_LINE_TYPE EndSharp { get; set; }
|
|
|
+ }
|
|
|
+
|
|
|
+ public uint ArrowAngle { get; set; }
|
|
|
+ public uint ArrowLength { get; set; }
|
|
|
+ public Point? LineStart { get; set; }
|
|
|
+ public Point? LineEnd { get; set; }
|
|
|
+ public PathGeometry Body { get; set; }
|
|
|
+ public C_LINE_TYPE StartSharp { get; set; }
|
|
|
+ public C_LINE_TYPE EndSharp { get; set; }
|
|
|
public ArrowHelper()
|
|
|
{
|
|
|
Body = new PathGeometry();
|
|
@@ -423,10 +428,10 @@ namespace Compdfkit_Tools.Helper
|
|
|
{
|
|
|
if (LineStart != null && LineEnd != null)
|
|
|
{
|
|
|
- PathFigure lineFigure = new PathFigure();
|
|
|
+ PathFigure lineFigure = new PathFigure();
|
|
|
lineFigure.StartPoint = (Point)LineStart;
|
|
|
LineSegment linePath = new LineSegment();
|
|
|
- linePath.Point = (Point)LineEnd;
|
|
|
+ linePath.Point = (Point)LineEnd;
|
|
|
lineFigure.Segments.Add(linePath);
|
|
|
return lineFigure;
|
|
|
}
|
|
@@ -487,7 +492,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
break;
|
|
|
}
|
|
|
return null;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
public PathGeometry BuildArrowBody()
|
|
|
{
|
|
@@ -509,7 +514,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
}
|
|
|
return Body;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private PathFigure CreateStartOpenArrow()
|
|
|
{
|
|
|
if (ArrowLength == 0 || !HasStartArrow || LineStart == null || LineEnd == null || ArrowAngle == 0)
|
|
@@ -531,7 +536,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.IsClosed = IsStartClosed;
|
|
|
arrowFigure.IsFilled = IsStartClosed;
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateEndOpenArrow()
|
|
|
{
|
|
@@ -554,7 +559,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.IsClosed = IsEndClosed;
|
|
|
arrowFigure.IsFilled = IsEndClosed;
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateStartReverseArrow()
|
|
|
{
|
|
@@ -577,7 +582,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.IsClosed = IsStartClosed;
|
|
|
arrowFigure.IsFilled = IsStartClosed;
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateEndReverseArrow()
|
|
|
{
|
|
@@ -601,7 +606,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.IsFilled = IsEndClosed;
|
|
|
return arrowFigure;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private PathFigure CreateStartButtArrow()
|
|
|
{
|
|
|
if (ArrowLength == 0 || !HasStartArrow || LineStart == null || LineEnd == null)
|
|
@@ -620,7 +625,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
buttSegment.Point = ((Point)LineStart + (lineVector * rotateMatrix));
|
|
|
arrowFigure.Segments.Add(buttSegment);
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateEndButtArrow()
|
|
|
{
|
|
@@ -641,7 +646,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.Segments.Add(buttSegment);
|
|
|
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateStartDiamondArrow()
|
|
|
{
|
|
@@ -680,7 +685,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.IsClosed = IsStartClosed;
|
|
|
arrowFigure.IsFilled = IsStartClosed;
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateEndDiamondArrow()
|
|
|
{
|
|
@@ -720,7 +725,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.IsClosed = IsEndClosed;
|
|
|
arrowFigure.IsFilled = IsEndClosed;
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateStartRoundArrow()
|
|
|
{
|
|
@@ -747,7 +752,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.Segments.Add(circleSegment);
|
|
|
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateEndRoundArrow()
|
|
|
{
|
|
@@ -774,7 +779,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.Segments.Add(circleSegment);
|
|
|
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateStartSquareArrow()
|
|
|
{
|
|
@@ -808,7 +813,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.Segments.Add(squreSegment);
|
|
|
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateEndSquareArrow()
|
|
|
{
|
|
@@ -843,7 +848,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
arrowFigure.Segments.Add(squreSegment);
|
|
|
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateStartSlashArrow()
|
|
|
{
|
|
@@ -863,7 +868,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
buttSegment.Point = ((Point)LineStart + (lineVector * rotateMatrix));
|
|
|
arrowFigure.Segments.Add(buttSegment);
|
|
|
return arrowFigure;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
private PathFigure CreateEndSlashArrow()
|
|
|
{
|
|
@@ -1002,7 +1007,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static void ExtraImage_Click(Dictionary<int,List<Bitmap>> imageDict)
|
|
|
+ public static void ExtraImage_Click(Dictionary<int, List<Bitmap>> imageDict)
|
|
|
{
|
|
|
System.Windows.Forms.FolderBrowserDialog folderDialog = new System.Windows.Forms.FolderBrowserDialog();
|
|
|
if (folderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
|
@@ -1032,7 +1037,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public static double CheckZoomLevel(double[] zoomLevelList, double zoom, bool IsGrowth)
|
|
|
{
|
|
|
double standardZoom = 100;
|
|
@@ -1066,11 +1071,11 @@ namespace Compdfkit_Tools.Helper
|
|
|
public class SignatureHelper
|
|
|
{
|
|
|
public static List<CPDFSignature> SignatureList;
|
|
|
-
|
|
|
+
|
|
|
public static void InitEffectiveSignatureList(CPDFDocument document)
|
|
|
{
|
|
|
SignatureList = document.GetSignatureList();
|
|
|
- for(int index = SignatureList.Count - 1; index >= 0; index--)
|
|
|
+ for (int index = SignatureList.Count - 1; index >= 0; index--)
|
|
|
{
|
|
|
if (SignatureList[index].SignerList.Count <= 0)
|
|
|
{
|
|
@@ -1085,7 +1090,7 @@ namespace Compdfkit_Tools.Helper
|
|
|
{
|
|
|
sig.VerifySignatureWithDocument(document);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|