SetPasswordDialogModel.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. using ComPDFKit.PDFDocument;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Linq;
  6. using System.Runtime.CompilerServices;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs
  10. {
  11. public class SetPasswordDialogModel
  12. {
  13. public bool CanOpen { get; set; }
  14. public bool CanEdit { get; set; }
  15. public static string PasswordForOpen = "";
  16. public static string PasswordForEdit { get; set; }
  17. public enum PrintMod
  18. {
  19. None,
  20. LowDpi,
  21. HighDpi
  22. }
  23. public enum ChangeMod
  24. {
  25. None,
  26. ChangePage,
  27. FormAndSignature,
  28. AnnotAndFormAndSignature,
  29. ExceptAbstrat
  30. }
  31. public enum EnumNeedPassword
  32. {
  33. StatusNeedOpenPassword = 1 << 0,
  34. StatusNeedPermissionsPassword = 1 << 1
  35. }
  36. public enum EnumPermissionsMod
  37. {
  38. StatusUnknown = 0,
  39. StatusRestrictPrinting = 1 << 0,
  40. StatusRestrictCopying = 1 << 1
  41. }
  42. public static CPDFPermissionsInfo CreatePermissionsInfo(EnumPermissionsMod enumPermissionsMod)
  43. {
  44. CPDFPermissionsInfo permissionsInfo = new CPDFPermissionsInfo();
  45. permissionsInfo.AllowsDocumentAssembly = true;
  46. permissionsInfo.AllowsDocumentChanges = true;
  47. permissionsInfo.AllowsPrinting = true;
  48. permissionsInfo.AllowsCopying= true;
  49. permissionsInfo.AllowsCommenting= true;
  50. permissionsInfo.AllowsFormFieldEntry= true;
  51. permissionsInfo.AllowsHighQualityPrinting= true;
  52. permissionsInfo.AllowsFormFieldEntry = true;
  53. if ((enumPermissionsMod & EnumPermissionsMod.StatusRestrictPrinting) > 0)
  54. {
  55. permissionsInfo.AllowsPrinting = false;
  56. permissionsInfo.AllowsHighQualityPrinting = false;
  57. }
  58. if ((enumPermissionsMod & EnumPermissionsMod.StatusRestrictCopying) > 0)
  59. {
  60. permissionsInfo.AllowsCopying = false;
  61. }
  62. return permissionsInfo;
  63. }
  64. ///<returns>
  65. ///生成带有指定权限的CPDFPermissionsInfo对象
  66. ///</returns>
  67. public CPDFPermissionsInfo CreatePermissionsInfo(PrintMod printMod, ChangeMod changeMod)
  68. {
  69. CPDFPermissionsInfo permissionsInfo = new CPDFPermissionsInfo();
  70. switch (printMod)
  71. {
  72. case PrintMod.None:
  73. permissionsInfo.AllowsPrinting = false;
  74. permissionsInfo.AllowsHighQualityPrinting = false;
  75. break;
  76. case PrintMod.LowDpi:
  77. permissionsInfo.AllowsPrinting = true;
  78. permissionsInfo.AllowsHighQualityPrinting = false;
  79. break;
  80. case PrintMod.HighDpi:
  81. permissionsInfo.AllowsHighQualityPrinting = true;
  82. permissionsInfo.AllowsPrinting = true;
  83. break;
  84. default:
  85. break;
  86. }
  87. switch (changeMod)
  88. {
  89. case ChangeMod.None:
  90. permissionsInfo.AllowsCopying = false;
  91. permissionsInfo.AllowsDocumentAssembly = false;
  92. permissionsInfo.AllowsCommenting = false;
  93. permissionsInfo.AllowsDocumentChanges = false;
  94. permissionsInfo.AllowsFormFieldEntry = false;
  95. break;
  96. case ChangeMod.ChangePage:
  97. permissionsInfo.AllowsCopying = false;
  98. permissionsInfo.AllowsDocumentAssembly = true;
  99. permissionsInfo.AllowsCommenting = false;
  100. permissionsInfo.AllowsDocumentChanges = false;
  101. permissionsInfo.AllowsFormFieldEntry = false;
  102. break;
  103. case ChangeMod.FormAndSignature:
  104. permissionsInfo.AllowsCopying = false;
  105. permissionsInfo.AllowsDocumentAssembly = false;
  106. permissionsInfo.AllowsCommenting = false;
  107. permissionsInfo.AllowsDocumentChanges = false;
  108. permissionsInfo.AllowsFormFieldEntry = true;
  109. break;
  110. case ChangeMod.AnnotAndFormAndSignature:
  111. permissionsInfo.AllowsCopying = false;
  112. permissionsInfo.AllowsDocumentAssembly = false;
  113. permissionsInfo.AllowsCommenting = true;
  114. permissionsInfo.AllowsDocumentChanges = false;
  115. permissionsInfo.AllowsFormFieldEntry = true;
  116. break;
  117. case ChangeMod.ExceptAbstrat:
  118. permissionsInfo.AllowsCopying = true;
  119. permissionsInfo.AllowsDocumentAssembly = true;
  120. permissionsInfo.AllowsCommenting = true;
  121. permissionsInfo.AllowsDocumentChanges = false;
  122. permissionsInfo.AllowsFormFieldEntry = true;
  123. break;
  124. }
  125. return permissionsInfo;
  126. }
  127. }
  128. }