public PdfSecurityOptionsControl(PdfSecurityOptions options)
		{
			InitializeComponent();
			InitializeCheckBoxes(options);

			if (string.IsNullOrEmpty(txtPassword.Text))
			{
				pictureBoxOk.Visible = false;
			}
		}
示例#2
0
		public PdfSecurityDialog(PdfSecurityOptions options)
			: base(WorkshareFormUtility.DialogLevel.Secondary)
		{
			InitializeComponent();

			m_PdfSecurityOptionsControl = new PdfSecurityOptionsControl(options);
			this.panel1.Controls.Add(m_PdfSecurityOptionsControl);
			m_PdfSecurityOptionsControl.Visible = true;
			m_PdfSecurityOptionsControl.AllowCleaning = false;

			m_PdfSecurityOptionsControl.VisibleChanged += new EventHandler(m_PdfSecurityOptionsControl_VisibleChanged);
		}
		private void InitializeCheckBoxes(PdfSecurityOptions options)
		{
			if (options != null)
			{
				if (options.ConvertToPDFA)
				{
					DisableAllPdfSecurityOptions();
					cbCleanBeforePDF.Checked = options.CleanBeforePdf;
					m_ShowAdvancedCleaningOptions = false;

					return;
				}

				
				txtPassword.Text = options.Password;
				txtPasswordConfirm.Text = options.Password;
				checkBoxProhibitComments.Checked = options.DisableComments;
				checkBoxProhibitCopying.Checked = options.DisableCopy;
				checkBoxProhibitModification.Checked = options.DisableModification;
				checkBoxProhibitPrinting.Checked = options.DisablePrinting;
			}
		}
示例#4
0
        internal bool CreateFinalPdf(Dictionary<string, WorkbookItemInfo> workbookItems, string outputFile, PdfSecurityOptions permissions)
		{
			try
			{
				TraceWorkbookItems(workbookItems);

				if (workbookItems.Count == 0)
				{
					WsMessage.ShowMessage(IntPtr.Zero, "No interim PDFs have been created", MessageButtons.WsOK, MessageBranding.WsDefault, MessageType.WsErrorIcon, "", -1);
					return false;
				}

                Workshare.Pdf.Edit.Combine(WorkbookItemsAdapter(workbookItems), outputFile);

				if (ConvertPDFToPDFA)
					DocumentPublisher.ConvertPDFToPDFA(outputFile);

				if (permissions != null && !ConvertPDFToPDFA)
                {
                    DocumentPublisher.SetPermissions(outputFile, permissions);                    
                }
                return true;
			}
			catch (Exception ex)
			{
				WsMessage.ShowMessage(IntPtr.Zero, "Failed to create final PDF: " + Environment.NewLine + "[" + ex.Message + "]", MessageButtons.WsOK, MessageBranding.WsDefault, MessageType.WsErrorIcon, "", -1);
			}
			return false;
		}
示例#5
0
        private static void CopySecurityInformation(PdfSecurityOptions pdfSecurityOptions, WorkbookItem wi)
        {
            if (pdfSecurityOptions == null)
                return;

            if (wi.PdfSecurityOptions == null)
            {
                wi.PdfSecurityOptions = new PdfSecurityOptions();
            }
            wi.PdfSecurityOptions.DisableComments = pdfSecurityOptions.DisableComments;
            wi.PdfSecurityOptions.DisableCopy = pdfSecurityOptions.DisableCopy;
            wi.PdfSecurityOptions.DisableModification = pdfSecurityOptions.DisableModification;
            wi.PdfSecurityOptions.DisablePrinting = pdfSecurityOptions.DisablePrinting;
            wi.PdfSecurityOptions.FullSecurity = pdfSecurityOptions.FullSecurity;
            wi.PdfSecurityOptions.Password = pdfSecurityOptions.Password;
            wi.PdfSecurityOptions.PassWordVerified = pdfSecurityOptions.PassWordVerified;
        }
示例#6
0
        private void btnSecurity_Click(object sender, EventArgs e)
        {
            AnalyticsListener.SendEventStatistic(Properties.Resources.STR_SECURITY_EVENT);
            if (listViewFiles.Items.Count == 0)
                return;

            PdfSecurityOptions pso = null;
            IBatchCleanController bcc = null;

            WorkbookItem item = null;
            if (listViewFiles.SelectedItems.Count > 0)
            {
                item = listViewFiles.SelectedItems[0].Tag as WorkbookItem;
            }
            else
            {
                item = listViewFiles.Items[0].Tag as WorkbookItem;
            }

            if (item != null)
                pso = item.PdfSecurityOptions;

			if (ConverPDFToPDFA)
			{
				pso = new PdfSecurityOptions();
				pso.ConvertToPDFA = ConverPDFToPDFA;
			}

            PdfSecurityDialog securityDialog = new PdfSecurityDialog(pso);

            bool isProtectInstalled = Workshare.Common.Configuration.EnabledFeatures.SecurityEnabled;
            if (isProtectInstalled && listViewFiles.SelectedItems.Count > 0)
            {
                bcc = BatchCleanFactory.GetInstance();
	            if (bcc != null)
	            {
		            List<string> filesToClean = new List<string>();
		            foreach (ListViewItem lvi in listViewFiles.SelectedItems)
		            {
			            WorkbookItem wi = lvi.Tag as WorkbookItem;
			            filesToClean.Add(wi.TempCopy);
		            }

		            bcc.AddFiles(filesToClean.ToArray(), true);

		            if (pso != null && pso.CleanBeforePdf)
		            {
			            bcc.SetCleaningOptions(pso.CleaningOptions);
		            }
	            }

	            securityDialog.CleanController = bcc;
            }


            if (DialogResult.OK == securityDialog.ShowDialog())
            {
                // Update security options for ALL files (but clean ONLY for those selected :)
                foreach (ListViewItem lvi in listViewFiles.Items)
                {
                    WorkbookItem wi = lvi.Tag as WorkbookItem;
                    CopySecurityInformation(securityDialog.PdfSecurityOptions, wi);
                }

                // updates clean for selected :)
                foreach (ListViewItem lvi in listViewFiles.SelectedItems)
                {
                    WorkbookItem wi = lvi.Tag as WorkbookItem;
                    wi.PdfSecurityOptions.CleanBeforePdf = securityDialog.PdfSecurityOptions.CleanBeforePdf;
                    wi.PdfSecurityOptions.CleaningOptions = securityDialog.PdfSecurityOptions.CleaningOptions;
                }
                m_state.IsModified = true;
            }

        }
示例#7
0
        private bool IsSecurityOptionsModified(PdfSecurityDialog securityDialog)
        {
            PdfSecurityOptions dialogOptions = securityDialog.PdfSecurityOptions;
            if (m_saveInfo != null)
            {
                if (m_saveInfo.CleanBeforePdf == dialogOptions.CleanBeforePdf
                    && m_saveInfo.DisableComments == dialogOptions.DisableComments
                    && m_saveInfo.DisableCopy == dialogOptions.DisableCopy
                    && m_saveInfo.DisableModification == dialogOptions.DisableModification
                    && m_saveInfo.DisablePrinting == dialogOptions.DisablePrinting
                    && m_saveInfo.FullSecurity == dialogOptions.FullSecurity)
                {
                    return false;
                }
            }

            m_state.IsModified = true;
            m_saveInfo = dialogOptions;
            return true;
        }