HomePageEditHelper.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. namespace PDF_Office.Helper
  12. {
  13. public static class HomePageEditHelper
  14. {
  15. /// <summary>
  16. /// 获取所需要分文档份数
  17. /// </summary>
  18. /// <param name="pagecontent">文档总页数</param>
  19. /// <param name="averagepage">平均几页分为一个文档</param>
  20. /// <param name="remainder">最后文档的页数的引用 例如11页文档每3页为一份PDF,3,3,3,2,remainder=2</param>
  21. /// <returns></returns>
  22. public static int AverageSplitPages(int pagecontent, int averagepage, ref int remainder)
  23. {
  24. if (pagecontent <= 0)
  25. {
  26. remainder = 0;
  27. return 0;
  28. }
  29. if (pagecontent <= averagepage)
  30. {
  31. remainder = pagecontent;
  32. return 1;
  33. }
  34. if (pagecontent > averagepage)
  35. {
  36. if (pagecontent % averagepage == 0)
  37. {
  38. remainder = 0;
  39. return pagecontent / averagepage;
  40. }
  41. remainder = pagecontent % averagepage;
  42. return (pagecontent / averagepage) + 1;
  43. }
  44. remainder = 0;
  45. return -1;
  46. }
  47. /// <summary>
  48. /// 获取平均每个文档的页数
  49. /// </summary>
  50. /// <param name="pagecontent">文档总页数</param>
  51. /// <param name="averagedoc">平均几页分为一个文档</param>
  52. /// <param name="remainder">引用,截至第几位文档比后面文档多一 例如11页文档 分为3份 4,4,3 remainder为1 第一个文档和第二文档比后续文档多一</param>
  53. /// <returns></returns>
  54. public static int AverageSplitDocs(int pagecontent, int averagedoc, ref int remainder)
  55. {
  56. if (pagecontent <= 0)
  57. {
  58. remainder = 0;
  59. return 0;
  60. }
  61. if (pagecontent <= averagedoc)
  62. {
  63. remainder = 0;
  64. return 1;
  65. }
  66. if (pagecontent > averagedoc)
  67. {
  68. remainder = pagecontent % averagedoc;
  69. return pagecontent / averagedoc;
  70. }
  71. return 0;
  72. }
  73. public static void GetPagerange(string PageRangeSelectIndex, CPDFViewer currentViewer, ref string pageRange, string pageRangeText, bool currentpage = false)
  74. {
  75. if (!currentpage)
  76. {
  77. if (PageRangeSelectIndex == "0")
  78. {
  79. pageRange = "1-" + currentViewer.Document.PageCount.ToString();
  80. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  81. }
  82. else if (PageRangeSelectIndex == "1")
  83. {
  84. pageRange = "1";
  85. for (int i = 3; i <= currentViewer.Document.PageCount; i += 2)
  86. pageRange = pageRange + "," + i;
  87. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  88. }
  89. else if (PageRangeSelectIndex == "2")
  90. {
  91. pageRange = "2";
  92. for (int i = 4; i <= currentViewer.Document.PageCount; i += 2)
  93. pageRange = pageRange + "," + i;
  94. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  95. }
  96. else if (PageRangeSelectIndex == "3")
  97. {
  98. if (pageRangeText != "")
  99. {
  100. pageRange = pageRangeText;
  101. }
  102. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  103. }
  104. else { return; }
  105. }
  106. else
  107. {
  108. if (PageRangeSelectIndex == "0")
  109. {
  110. pageRange = "1-" + currentViewer.Document.PageCount.ToString();
  111. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  112. }
  113. if (PageRangeSelectIndex == "1")
  114. {
  115. //pageRange = pageRange;
  116. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  117. }
  118. else if (PageRangeSelectIndex == "2")
  119. {
  120. pageRange = "1";
  121. for (int i = 3; i <= currentViewer.Document.PageCount; i += 2)
  122. pageRange = pageRange + "," + i;
  123. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  124. }
  125. else if (PageRangeSelectIndex == "3")
  126. {
  127. pageRange = "2";
  128. for (int i = 4; i <= currentViewer.Document.PageCount; i += 2)
  129. pageRange = pageRange + "," + i;
  130. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  131. }
  132. else if (PageRangeSelectIndex == "4")
  133. {
  134. if (pageRangeText != "")
  135. {
  136. pageRange = pageRangeText;
  137. }
  138. Trace.WriteLine(" extractModel.PageRange" + pageRange);
  139. }
  140. else { return; }
  141. }
  142. }
  143. }
  144. }