123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- using ComPDFKitViewer.PdfViewer;
- using PDF_Office.CustomControl;
- using PDF_Office.EventAggregators;
- using PDF_Office.Model;
- using PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
- using PDF_Office.Model.EditTools.Background;
- using PDF_Office.Model.EditTools.Watermark;
- using PDF_Office.ViewModels.Tools;
- using PDFSettings;
- using Prism.Commands;
- using Prism.Events;
- using Prism.Mvvm;
- using Prism.Regions;
- using Prism.Services.Dialogs;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Windows;
- using static System.Windows.Forms.VisualStyles.VisualStyleElement;
- namespace PDF_Office.ViewModels.EditTools.Watermark
- {
- public class WatermarkContentViewModel : BindableBase, INavigationAware
- {
- public IEventAggregator eventAggregator;
- public IRegionManager watermarkRegion;
- public IDialogService dialogs;
- private CPDFViewer PDFViewer;
- private CPDFViewer CurrentPDFViewer;
- private ViewContentViewModel viewContentViewModel;
- public string TemplateListName = "WatermarkTemplateListBaseContent";
- public string CreateBaseName = "WatermarkCreateBaseContent";
- public string CreateModTextName = "WatermarkCreateTextContent";
- public string CreateModFileName = "WatermarkCreateFileContent";
- public string TemplateListModTextName = "WatermarkTemplateListTextContent";
- public string TemplateListModFileName = "WatermarkTemplateListFileContent";
- public string WatermarkDocumentName = "WatermarkDocumentContent";
- private string _watermarkSettingsRegionName;
- public string WatermarkSettingsRegionName
- {
- get { return _watermarkSettingsRegionName; }
- set { _watermarkSettingsRegionName = value; }
- }
- private Visibility _watermarkSettingsVisible = Visibility.Collapsed;
- public Visibility WatermarkSettingsVisible
- {
- get { return _watermarkSettingsVisible; }
- set { _watermarkSettingsVisible = value; }
- }
- private string _watermarkDocumentRegionName;
- /// <summary>
- /// 持有Document的Region,负责渲染和保存
- /// </summary>
- public string WatermarkDocumentRegionName
- {
- get { return _watermarkDocumentRegionName; }
- set { _watermarkDocumentRegionName = value; }
- }
- private Visibility _watermarkDocumentVisible = Visibility.Visible;
- /// <summary>
- /// 持有Document的Region可见
- /// </summary>
- public Visibility WatermarkDocumentVisible
- {
- get { return _watermarkDocumentVisible; }
- set { _watermarkDocumentVisible = value; }
- }
- private EnumTextOrFile _currentCreateMod;
- public EnumTextOrFile CurrentCreateMod
- {
- get { return _currentCreateMod; }
- set { _currentCreateMod = value; }
- }
- private EnumTextOrFile _currentTemplateListMod;
- public EnumTextOrFile CurrentTemplateListMod
- {
- get { return _currentTemplateListMod; }
- set { _currentTemplateListMod = value; }
- }
- public DelegateCommand CloseEditToolCommand { get; set; }
- public DelegateCommand DeleteWatermarkCommand { get; set; }
- public DelegateCommand ConfirmEditToolCommand { get; set; }
- public DelegateCommand BatchWatermarkCommand { get; set; }
- public DelegateCommand<string> EnterSelectedContentCommand { get; set; }
- public string Unicode = null;
- public WatermarkContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator, IDialogService dialogs)
- {
- this.eventAggregator = eventAggregator;
- this.watermarkRegion = regionManager;
- this.dialogs = dialogs;
- Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
- WatermarkSettingsVisible = Visibility.Visible;
- WatermarkSettingsRegionName = Guid.NewGuid().ToString();
- WatermarkDocumentRegionName = Guid.NewGuid().ToString();
- CloseEditToolCommand = new DelegateCommand(CloseEditTool);
- ConfirmEditToolCommand = new DelegateCommand(ConfirmEditTool);
- EnterSelectedContentCommand = new DelegateCommand<string>(EnterSelectedContent);
- DeleteWatermarkCommand = new DelegateCommand(DeleteWatermark);
- BatchWatermarkCommand = new DelegateCommand(BatchWatermark);
- eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Subscribe(EnterTemplateListOrCreate, e => e.Unicode == Unicode);
- eventAggregator.GetEvent<SetCurrentCreateModEvent>().Subscribe(SetCurrentCreateMod, e => e.Unicode == Unicode);
- eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Subscribe(SetCurrentTemplateListMod, e => e.Unicode == Unicode);
- eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Subscribe(CurrentWatermarkPDFViewer, e => e.Unicode == Unicode);
- eventAggregator.GetEvent<EditWatermarkTemplateItemEvent>().Subscribe(EditWatermarkTemplateItem, e => e.Unicode == Unicode);
-
- }
- public void CurrentWatermarkPDFViewer(CPDFViewerUnicode cPDFViewerunicod)
- {
- CurrentPDFViewer = cPDFViewerunicod.Status;
- }
- public void CloseEditTool()
- {
- this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(new EnumCloseModeUnicode { Unicode = Unicode, Status = EnumCloseMode.StatusCancel });
- }
- public void ConfirmEditTool()
- {
- this.eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Publish(Unicode);
- this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(new EnumCloseModeUnicode { Unicode = Unicode, Status = EnumCloseMode.StatusConfirm });
- }
- public void EnterTemplateListOrCreate(EnumTemplateListOrCreateUnicode enumTemplateListOrCreateunicode)
- {
- EnumTemplateListOrCreate enumTemplateListOrCreate = enumTemplateListOrCreateunicode.Status;
- if (enumTemplateListOrCreate == EnumTemplateListOrCreate.StatusTemplate)
- {
- EnterSelectedContent(TemplateListName);
- }
- else
- {
- EnterSelectedContent(CreateBaseName);
- }
- }
- public void EditWatermarkTemplateItem(WatermarkItemUnicode watermarkItemunicode)
- {
- WatermarkItem watermarkItem = watermarkItemunicode.Status;
- NavigationParameters param = new NavigationParameters();
- param.Add(ParameterNames.PDFViewer, PDFViewer);
- param.Add("CurrentTemplateListModName", CurrentTemplateListMod);
- param.Add("WatermarkItem", watermarkItem);
- watermarkRegion.RequestNavigate(WatermarkSettingsRegionName, CreateBaseName, param);
- WatermarkSettingsVisible = Visibility.Visible;
- }
- public void SetCurrentCreateMod(stringUnicode currentCreateModNameunicode)
- {
- string currentCreateModName = currentCreateModNameunicode.Status;
- if (currentCreateModName == CreateModTextName)
- {
- CurrentCreateMod = EnumTextOrFile.StatusText;
- }
- else if (currentCreateModName == CreateModFileName)
- {
- CurrentCreateMod = EnumTextOrFile.StatusFile;
- }
- }
- public void SetCurrentTemplateListMod(stringUnicode currentTemplateListModNameunicode)
- {
- string currentTemplateListModName = currentTemplateListModNameunicode.Status;
- if (currentTemplateListModName == TemplateListModTextName)
- {
- CurrentTemplateListMod = EnumTextOrFile.StatusText;
- }
- else if (currentTemplateListModName == TemplateListModFileName)
- {
- CurrentTemplateListMod = EnumTextOrFile.StatusFile;
- }
- }
- public void EnterSelectedContent(string SelectedContentName)
- {
- NavigationParameters param = new NavigationParameters();
- param.Add(ParameterNames.PDFViewer, PDFViewer);
- if (SelectedContentName == TemplateListName)
- {
- param.Add("CurrentCreateModName", CurrentCreateMod);
- }
- else if (SelectedContentName == CreateBaseName)
- {
- param.Add("CurrentTemplateListModName", CurrentTemplateListMod);
- }
- watermarkRegion.RequestNavigate(WatermarkSettingsRegionName, SelectedContentName, param);
- WatermarkSettingsVisible = Visibility.Visible;
- }
- public void EnterDocumentContent()
- {
- NavigationParameters param = new NavigationParameters();
- param.Add(ParameterNames.PDFViewer, PDFViewer);
- param.Add(ParameterNames.ViewContentViewModel, viewContentViewModel);
- watermarkRegion.RequestNavigate(WatermarkDocumentRegionName, WatermarkDocumentName, param);
- WatermarkDocumentVisible = Visibility.Visible;
- }
- private void DeleteWatermark() {
- AlertsMessage alertsMessage = new AlertsMessage();
- if (CurrentPDFViewer.Document.GetWatermarkCount()> 0)
- {
- alertsMessage.ShowDialog("确定要删除文件水印吗?", "", "取消", "删除");
- if (alertsMessage.result == ContentResult.Ok)
- {
- this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode {
- Unicode = Unicode, Status = EnumDelete.StatusDeleteAll});
- }
- else
- {
- this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode {
- Unicode = Unicode, Status = EnumDelete.StatusCreate});
- }
- }
- else {
- alertsMessage.ShowDialog("无法在本文件中找到可删除的水印。如果您看到水印,其不是使用PDF Office添加的,因此无法被检测到。", "", "取消", "确定");
- }
-
-
- }
- private void BatchWatermark()
- {
- DialogParameters watermarkpdf = new DialogParameters();
- watermarkpdf.Add(ParameterNames.BatchProcessing_Name, "3");
- HomePageBatchProcessingDialogModel.FilePaths = new List<string> { PDFViewer.Document.FilePath.ToString() };
- HomePageBatchProcessingDialogModel.BatchProcessingIndex = 3;
- watermarkpdf.Add(ParameterNames.FilePath, new string[] { PDFViewer.Document.FilePath.ToString() });
- dialogs.ShowDialog(DialogNames.HomePageBatchProcessingDialog, watermarkpdf, e => { EnterSelectedContent(TemplateListName); });
- }
- public void OnNavigatedTo(NavigationContext navigationContext)
- {
- navigationContext.Parameters.TryGetValue<ViewContentViewModel>(ParameterNames.ViewContentViewModel, out viewContentViewModel);
- navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
- EnterSelectedContent(TemplateListName);
- EnterDocumentContent();
- }
- public bool IsNavigationTarget(NavigationContext navigationContext)
- {
- return true;
- }
- public void OnNavigatedFrom(NavigationContext navigationContext)
- {
- }
- }
- }
|