HomePagePrinterDialogModel.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing.Printing;
  4. using System.Linq;
  5. using System.Numerics;
  6. using System.Printing;
  7. using System.Runtime.Remoting.Channels;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using static PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePagePrinter.HomePagePrinterDialogModel;
  11. namespace PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePagePrinter
  12. {
  13. public class PrintSettingsInfo
  14. {
  15. /// <summary>
  16. /// 灰度
  17. /// </summary>
  18. public bool IsGrayscale { get; set; }
  19. /// <summary>
  20. /// 纸张尺寸
  21. /// </summary>
  22. public PageMediaSize PageMediaSize;
  23. /// <summary>
  24. /// 页码范围
  25. /// </summary>
  26. public EnumPageRange EnumPageRange = EnumPageRange.StatusAllRange;
  27. /// <summary>
  28. /// 逆页序
  29. /// </summary>
  30. public bool IsIndexReverse { get; set; }
  31. /// <summary>
  32. /// 双面打印
  33. /// </summary>
  34. public bool IsDuplex = false;
  35. /// <summary>
  36. /// 是否打印页面边框
  37. /// </summary>
  38. public bool IsPrintPageBorde = false;
  39. /// <summary>
  40. /// 打印方向
  41. /// </summary>
  42. public EnumPrintOrientation EnumPrintOrientation = EnumPrintOrientation.StatusPortrait;
  43. /// <summary>
  44. /// 带Annot
  45. /// </summary>
  46. public bool IsPrintWithAnnot { get; set; }
  47. /// <summary>
  48. /// 带Form
  49. /// </summary>
  50. public bool IsPrintWithForm { get; set; }
  51. /// <summary>
  52. /// Copies
  53. /// </summary>
  54. public int Copies { get; set; }
  55. /// <summary>
  56. /// 打印机名称
  57. /// </summary>
  58. public string PrinterName { get; set; }
  59. /// <summary>
  60. /// 自定义打印页码范围
  61. /// </summary>
  62. public List<int> PageRangeList = new List<int>();
  63. /// <summary>
  64. /// 打印Mod
  65. /// </summary>
  66. public PrintModInfo printModInfo = new SizeInfo();
  67. public bool IsBothSides = false;
  68. public List<int> Margin = new List<int>();
  69. }
  70. public class HomePagePrinterDialogModel
  71. {
  72. }
  73. public enum EnumSizeType
  74. {
  75. StatusAdaptive,
  76. StatusActural,
  77. StatusCustomized,
  78. }
  79. public enum EnumPageRange
  80. {
  81. StatusAllRange,
  82. StatusOddRange,
  83. StatusEvenRange,
  84. StatusCustomizedRange
  85. }
  86. public enum EnumPrintOrientation
  87. {
  88. StatusPortrait,
  89. StatusLandscape
  90. }
  91. public enum EnumPrintContent
  92. {
  93. StatusOnlyDocument,
  94. StatusDocumentAndMarkUps,
  95. StatusDocumentAndStamps,
  96. StatusDocumentAndForm
  97. }
  98. public enum EnumPrintMod
  99. {
  100. StatusSize,
  101. StatusPoster,
  102. StatusMultiple,
  103. StatusBooklet
  104. }
  105. public enum EnumPosterMod
  106. {
  107. StatusTile,
  108. StatusSplit
  109. }
  110. public enum EnumDisplayPageNumber
  111. {
  112. StatusTwo,
  113. StatusFour,
  114. StatusSix,
  115. StatusNine,
  116. StatusSixteen,
  117. StatusCustomized
  118. }
  119. public enum EnumPageOrder
  120. {
  121. StatusHorizontalOrder,
  122. StatusHorizontalReverseOrder,
  123. StatusVerticalOrder,
  124. StatusVerticalReverseOrder,
  125. }
  126. public enum EnumBookletSubset
  127. {
  128. StatusBothSides,
  129. StatusFrontSideOnly,
  130. StatusBackSideOnly
  131. }
  132. public enum EnumBookletBinding
  133. {
  134. StatusLeft,
  135. StatusRight
  136. }
  137. public class PrintModInfo
  138. {
  139. public EnumPrintMod EnumPrintMod = EnumPrintMod.StatusSize;
  140. }
  141. public class SizeInfo : PrintModInfo
  142. {
  143. public EnumSizeType EnumSizeType = EnumSizeType.StatusAdaptive;
  144. public int DisplayRatio = 100;
  145. }
  146. public class PosterInfo : PrintModInfo
  147. {
  148. public EnumPosterMod EnumPosterMod;
  149. public bool HasCutMarks { get; set; }
  150. public bool HasLabel { get; set; }
  151. public double OverLap { get; set; }
  152. public EnumDisplayPageNumber EnumDisplayPageNumber { get; set; }
  153. public int HorizontalSheetNumber { get; set; }
  154. public int VerticalSheetNumber { get; set; }
  155. public int TileRatio { get; set; }
  156. public string Label;
  157. }
  158. public class MultipleInfo : PrintModInfo
  159. {
  160. public EnumPageOrder EnumPageOrder = EnumPageOrder.StatusHorizontalOrder;
  161. public EnumDisplayPageNumber EnumDisplayPageNumber = EnumDisplayPageNumber.StatusTwo;
  162. public int HorizontalPageNumber = 2;
  163. public int VerticalPageNumber = 1;
  164. public bool IsAutoRotate = false;
  165. }
  166. public class BookletInfo : PrintModInfo
  167. {
  168. public EnumBookletSubset EnumBookletSubset = EnumBookletSubset.StatusBothSides;
  169. public EnumBookletBinding EnumBookletBinding = EnumBookletBinding.StatusLeft;
  170. public int BeginPaperIndex = 1;
  171. public int EndPaperIndex = 1;
  172. public bool IsAutoRotate = false;
  173. }
  174. }