HomePageEditHelper.cs 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using ComPDFKitViewer.PdfViewer;
  5. using System.Linq;
  6. using System.Runtime.InteropServices;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Documents;
  10. using static System.Windows.Forms.VisualStyles.VisualStyleElement;
  11. using ComPDFKit.PDFDocument;
  12. namespace PDF_Office.Helper
  13. {
  14. public static class HomePageEditHelper
  15. {
  16. /// <summary>
  17. /// 获取所需要分文档份数
  18. /// </summary>
  19. /// <param name="pagecontent">文档总页数</param>
  20. /// <param name="averagepage">平均几页分为一个文档</param>
  21. /// <param name="remainder">最后文档的页数的引用 例如11页文档每3页为一份PDF,3,3,3,2,remainder=2</param>
  22. /// <returns></returns>
  23. public static int AverageSplitPages(int pagecontent, int averagepage, ref int remainder)
  24. {
  25. if (pagecontent <= 0)
  26. {
  27. remainder = 0;
  28. return 0;
  29. }
  30. if (pagecontent <= averagepage)
  31. {
  32. remainder = pagecontent;
  33. return 1;
  34. }
  35. if (pagecontent > averagepage)
  36. {
  37. if (pagecontent % averagepage == 0)
  38. {
  39. remainder = 0;
  40. return pagecontent / averagepage;
  41. }
  42. remainder = pagecontent % averagepage;
  43. return (pagecontent / averagepage) + 1;
  44. }
  45. remainder = 0;
  46. return -1;
  47. }
  48. /// <summary>
  49. /// 获取平均每个文档的页数
  50. /// </summary>
  51. /// <param name="pagecontent">文档总页数</param>
  52. /// <param name="averagedoc">平均几页分为一个文档</param>
  53. /// <param name="remainder">引用,截至第几位文档比后面文档多一 例如11页文档 分为3份 4,4,3 remainder为1 第一个文档和第二文档比后续文档多一</param>
  54. /// <returns></returns>
  55. public static int AverageSplitDocs(int pagecontent, int averagedoc, ref int remainder)
  56. {
  57. if (pagecontent <= 0)
  58. {
  59. remainder = 0;
  60. return 0;
  61. }
  62. if (pagecontent <= averagedoc)
  63. {
  64. remainder = 0;
  65. return 1;
  66. }
  67. if (pagecontent > averagedoc)
  68. {
  69. remainder = pagecontent % averagedoc;
  70. return pagecontent / averagedoc;
  71. }
  72. return 0;
  73. }
  74. public static void GetPagerange(string PageRangeSelectIndex, CPDFViewer currentViewer, ref string pageRange, string pageRangeText, bool currentpage = false, string currentPageRange="1")
  75. {
  76. if (!currentpage)
  77. {
  78. if (PageRangeSelectIndex == "0")
  79. {
  80. pageRange = "1-" + currentViewer.Document.PageCount.ToString();
  81. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  82. }
  83. else if (PageRangeSelectIndex == "1")
  84. {
  85. pageRange = "1";
  86. for (int i = 3; i <= currentViewer.Document.PageCount; i += 2)
  87. pageRange = pageRange + "," + i;
  88. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  89. }
  90. else if (PageRangeSelectIndex == "2")
  91. {
  92. pageRange = "2";
  93. for (int i = 4; i <= currentViewer.Document.PageCount; i += 2)
  94. pageRange = pageRange + "," + i;
  95. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  96. }
  97. else if (PageRangeSelectIndex == "3")
  98. {
  99. if (pageRangeText != "")
  100. {
  101. pageRange = pageRangeText;
  102. }
  103. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  104. }
  105. else { return; }
  106. }
  107. else
  108. {
  109. if (PageRangeSelectIndex == "0")
  110. {
  111. pageRange = "1-" + currentViewer.Document.PageCount.ToString();
  112. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  113. }
  114. if (PageRangeSelectIndex == "1")
  115. {
  116. pageRange = currentPageRange;
  117. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  118. }
  119. else if (PageRangeSelectIndex == "2")
  120. {
  121. pageRange = "1";
  122. for (int i = 3; i <= currentViewer.Document.PageCount; i += 2)
  123. pageRange = pageRange + "," + i;
  124. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  125. }
  126. else if (PageRangeSelectIndex == "3")
  127. {
  128. pageRange = "2";
  129. for (int i = 4; i <= currentViewer.Document.PageCount; i += 2)
  130. pageRange = pageRange + "," + i;
  131. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  132. }
  133. else if (PageRangeSelectIndex == "4")
  134. {
  135. if (pageRangeText != "")
  136. {
  137. pageRange = pageRangeText;
  138. }
  139. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  140. }
  141. else { return; }
  142. }
  143. }
  144. public static string ReverseDate(string str,CPDFDocument Document)
  145. {
  146. string yyyy = DateTime.Now.ToString("yyyy");
  147. string yy = DateTime.Now.ToString("yy");
  148. string mm = DateTime.Now.ToString("MM");
  149. string m = DateTime.Now.ToString("%M");
  150. string dd = DateTime.Now.ToString("dd");
  151. string d = DateTime.Now.ToString("%d");
  152. str = str.Replace("<<m/d>>", m + "/" + d)
  153. .Replace("<<m/d/yy>>", m + "/" + d + "/" + yy)
  154. .Replace("<<m/d/yyyy>>", m + "/" + d + "/" + yyyy)
  155. .Replace("<<mm/dd/yy>>", mm + "/" + dd + "/" + yy)
  156. .Replace("<<mm/dd/yyyy>>", mm + "/" + dd + "/" + yyyy)
  157. .Replace("<<d/m/yy>>", d + "/" + m + "/" + yy)
  158. .Replace("<<d/m/yyyy>>", d + "/" + m + "/" + yyyy)
  159. .Replace("<<dd/mm/yy>>", dd + "/" + mm + "/" + yy)
  160. .Replace("<<dd/mm/yyyy>>", dd + "/" + mm + "/" + yyyy)
  161. .Replace("<<mm/yy>>", mm + "/" + yy)
  162. .Replace("<<mm/yyyy>>", mm + "/" + yyyy)
  163. .Replace("<<m.d.yy>>", m + "." + d + "." + yy)
  164. .Replace("<<m.d.yyyy>>", m + "." + d + "." + yyyy)
  165. .Replace("<<mm.dd.yy>>", mm + "." + dd + "." + yy)
  166. .Replace("<<mm.dd.yyyy>>", mm + "." + dd + "." + yyyy)
  167. .Replace("<<mm.yy>>", mm + "." + yy)
  168. .Replace("<<mm.yyyy>>", mm + "." + yyyy)
  169. .Replace("<<d.m.yy>>", d + "." + m + "." + yy)
  170. .Replace("<<d.m.yyyy>>", d + "." + m + "." + yyyy)
  171. .Replace("<<dd.mm.yy>>", dd + "." + mm + "." + yy)
  172. .Replace("<<dd.mm.yyyy>>", dd + "." + mm + "." + yyyy)
  173. .Replace("<<yy-mm-dd>>", yy + "-" + mm + "-" + dd)
  174. .Replace("<<yyyy-mm-dd>>", yyyy + "-" + mm + "-" + dd)
  175. .Replace("<<1 of n>>", "<<1>>" + " of " + Document.PageCount)
  176. .Replace("<<1/n>>", "<<1>>" + "/" + Document.PageCount)
  177. .Replace("<<Page 1>>", "Page" + "<<1>>")
  178. .Replace("<<Page 1 of n>>", "Page " + "<<1>>" + " of " + Document.PageCount);
  179. return str;
  180. }
  181. }
  182. }