|
@@ -1,5 +1,6 @@
|
|
|
using ComPDFKit.PDFDocument;
|
|
|
using PDF_Office.Model;
|
|
|
+using PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs;
|
|
|
using Prism.Services.Dialogs;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
@@ -31,7 +32,42 @@ namespace PDF_Office.Helper
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static bool VerifyPassword(CPDFDocument document ,EnumPasswordKind enumPasswordKind, IDialogService dialogService)
|
|
|
+ public static bool CheckHaveSelectedPermissions(CPDFDocument document, EnumPermissionsSet enumPermissionsSet)
|
|
|
+ {
|
|
|
+ CPDFPermissionsInfo permissionsInfo = document.GetPermissionsInfo();
|
|
|
+ ///如果需求这个权限
|
|
|
+ if(((enumPermissionsSet & EnumPermissionsSet.StatusAllowsDocumentChanges) == EnumPermissionsSet.StatusAllowsDocumentChanges ) && (!permissionsInfo.AllowsDocumentChanges))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(((enumPermissionsSet& EnumPermissionsSet.StatusAllowsPrinting) == EnumPermissionsSet.StatusAllowsPrinting) && (!permissionsInfo.AllowsPrinting))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(((enumPermissionsSet&EnumPermissionsSet.StatusAllowsHighQualityPrinting) == EnumPermissionsSet.StatusAllowsHighQualityPrinting) && (!permissionsInfo.AllowsHighQualityPrinting))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (((enumPermissionsSet&EnumPermissionsSet.StatusAllowsCopying) == EnumPermissionsSet.StatusAllowsCopying)&& (!permissionsInfo.AllowsCopying))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (((enumPermissionsSet&EnumPermissionsSet.StatusAllowsDocumentAssembly) == EnumPermissionsSet.StatusAllowsDocumentAssembly) && (!permissionsInfo.AllowsDocumentAssembly))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(((enumPermissionsSet&EnumPermissionsSet.StatusAllowsFormFieldEntry) == EnumPermissionsSet.StatusAllowsFormFieldEntry) && (!permissionsInfo.AllowsDocumentAssembly))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (((enumPermissionsSet&EnumPermissionsSet.StatusAllowsCommenting) == EnumPermissionsSet.StatusAllowsCommenting) && (!permissionsInfo.AllowsCommenting))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static bool VerifyPasswordOnlyBool(CPDFDocument document ,EnumPasswordKind enumPasswordKind, IDialogService dialogService)
|
|
|
{
|
|
|
if (enumPasswordKind == EnumPasswordKind.StatusOpenPassword)
|
|
|
{
|
|
@@ -61,5 +97,63 @@ namespace PDF_Office.Helper
|
|
|
});
|
|
|
return isDiscryptied;
|
|
|
}
|
|
|
+
|
|
|
+ public static VerifyPasswordResult VerifyPasswordByPasswordKind(CPDFDocument document, EnumPasswordKind enumPasswordKind, IDialogService dialogService)
|
|
|
+ {
|
|
|
+ VerifyPasswordResult verifyPasswordResult = new VerifyPasswordResult();
|
|
|
+ if ((!document.IsLocked)&&
|
|
|
+ ((enumPasswordKind == EnumPasswordKind.StatusOpenPassword)||
|
|
|
+ (enumPasswordKind == EnumPasswordKind.StatusPermissionsPassword)&& CheckHaveAllPermissions(document)))
|
|
|
+ {
|
|
|
+ verifyPasswordResult.IsDiscryptied = true;
|
|
|
+ verifyPasswordResult.Password = null;
|
|
|
+ return verifyPasswordResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ DialogParameters value = new DialogParameters();
|
|
|
+ value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword);
|
|
|
+ value.Add(ParameterNames.PDFDocument, document);
|
|
|
+ dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => {
|
|
|
+ verifyPasswordResult.IsDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult);
|
|
|
+ verifyPasswordResult.Password = e.Parameters.GetValue<string>(ParameterNames.Password);
|
|
|
+ });
|
|
|
+ return verifyPasswordResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static VerifyPasswordResult VerifyPasswordForSelectedPermissions(CPDFDocument document, EnumPermissionsSet enumPermissionsSet, IDialogService dialogService)
|
|
|
+ {
|
|
|
+ VerifyPasswordResult verifyPasswordResult = new VerifyPasswordResult();
|
|
|
+ if ((!document.IsLocked) &&CheckHaveSelectedPermissions(document, enumPermissionsSet))
|
|
|
+ {
|
|
|
+ verifyPasswordResult.IsDiscryptied = true;
|
|
|
+ verifyPasswordResult.Password = null;
|
|
|
+ return verifyPasswordResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ DialogParameters value = new DialogParameters();
|
|
|
+ if (enumPermissionsSet == EnumPermissionsSet.None)
|
|
|
+ {
|
|
|
+ value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusOpenPassword);
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword);
|
|
|
+ }
|
|
|
+ value.Add(ParameterNames.PDFDocument, document);
|
|
|
+ dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => {
|
|
|
+ verifyPasswordResult.IsDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult);
|
|
|
+ verifyPasswordResult.Password = e.Parameters.GetValue<string>(ParameterNames.Password);
|
|
|
+ });
|
|
|
+ return verifyPasswordResult;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public class VerifyPasswordResult
|
|
|
+ {
|
|
|
+ public bool IsDiscryptied;
|
|
|
+ public string Password;
|
|
|
}
|
|
|
}
|