123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- using ComPDFKit.PDFAnnotation;
- using Compdfkit_Tools.Data;
- using Compdfkit_Tools.Properties;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using System.IO;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Input;
- namespace Compdfkit_Tools.Annotation.PDFAnnotationPanel.PDFAnnotationUI
- {
- public partial class CPDFStampUI : UserControl
- {
- #region StandardStamp
- List<string> Path = new List<string>
- {
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/Approved.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/NotApproved.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/Completed.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/Final.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/Draft.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/Confidential.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/ForPublicRelease.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/NotForPublicRelease.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/ForComment.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/Void.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/PreliminaryResults.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/InformationOnly.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/Accepted.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/Rejected.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/Witness.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/InitialHere.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/SignHere.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/revised.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/PrivateMark1.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/PrivateMark2.png",
- "pack://application:,,,/Compdfkit_Tools;component/Asset/Resource/Annotation/StampIcons/PrivateMark3.png",
- };
- List<string> StampText = new List<string>
- {
- "Approved","NotApproved","Completed","Final","Draft","Confidential","ForPublicRelease","NotForPublicRelease",
- "ForComment","Void","PreliminaryResults","InformationOnly","Accepted","Rejected","Witness","InitialHere","SignHere",
- "revised","PrivateMark#1","PrivateMark#2","PrivateMark#3"
- };
- List<int> MaxWidth = new List<int>
- {
- 218,292,234,130,150,280,386,461,282,121,405,366,30,30,133,133,133,173,30,30,30
- };
- List<int> MaxHeight = new List<int>
- {
- 66,66,66,66,66,66,66,66,66,66,66,66,30,30,39,39,39,66,30,30,30
- };
- #endregion
- public ObservableCollection<CPDFStampData> StandardStampList { get; set; }
- public ObservableCollection<CPDFStampData> CustomStampList { get; set; }
- public event EventHandler<CPDFAnnotationData> PropertyChanged;
- public CPDFStampUI()
- {
- InitializeComponent();
- }
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- }
- private void CPDFOpacityControl_OpacityChanged(object sender, EventArgs e)
- {
- PropertyChanged?.Invoke(this, new CPDFStampData());
- }
- private void Text_Click(object sender, RoutedEventArgs e)
- {
- CPDFCreateStampDialog createStampDialog = new CPDFCreateStampDialog();
- createStampDialog.SetCreateHeaderIndex(0);
- createStampDialog.Owner = Window.GetWindow(this);
- createStampDialog.WindowStartupLocation = WindowStartupLocation.CenterOwner;
- createStampDialog.ShowDialog();
- UpDataCustomStamp(createStampDialog.cPDFStampData);
- }
- private void Image_Click(object sender, RoutedEventArgs e)
- {
- CPDFCreateStampDialog createStampDialog = new CPDFCreateStampDialog();
- createStampDialog.SetCreateHeaderIndex(1);
- createStampDialog.Owner = Window.GetWindow(this);
- createStampDialog.WindowStartupLocation = WindowStartupLocation.CenterOwner;
- createStampDialog.ShowDialog();
- UpDataCustomStamp(createStampDialog.cPDFStampData);
- }
- private void Standard_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
- {
- PropertyChanged?.Invoke(this, (sender as ListBoxItem).DataContext as CPDFStampData);
- }
- private void Customize_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
- {
- PropertyChanged?.Invoke(this, (sender as ListViewItem).DataContext as CPDFStampData);
- }
- private void UserControl_Loaded(object sender, RoutedEventArgs e)
- {
- StandardStampList = new ObservableCollection<CPDFStampData>();
- CustomStampList = new ObservableCollection<CPDFStampData>();
- InitStandardStamp();
- LoadSettings();
- Binding Standardbinding = new Binding();
- Standardbinding.Source = this;
- Standardbinding.Path = new PropertyPath("StandardStampList");
- StandardListBox.SetBinding(ItemsControl.ItemsSourceProperty, Standardbinding);
- Binding Custombinding = new Binding();
- Custombinding.Source = this;
- Custombinding.Path = new PropertyPath("CustomStampList");
- CustomListBox.SetBinding(ItemsControl.ItemsSourceProperty, Custombinding);
- ICollectionView groupView = CollectionViewSource.GetDefaultView(CustomStampList);
- groupView.GroupDescriptions.Add(new PropertyGroupDescription(nameof(CPDFStampData.TypeText)));
- }
- public void InitStandardStamp()
- {
- for (int i = 0; i < Path.Count; i++)
- {
- CPDFStampData standardStamp = new CPDFStampData();
- standardStamp.Author = "";
- standardStamp.Opacity = 1;
- standardStamp.SourcePath = Path[i];
- standardStamp.StampText = StampText[i];
- standardStamp.MaxWidth = MaxWidth[i];
- standardStamp.MaxHeight = MaxHeight[i];
- standardStamp.Type = C_STAMP_TYPE.STANDARD_STAMP;
- standardStamp.AnnotationType = CPDFAnnotationType.Stamp;
- StandardStampList.Add(standardStamp);
- }
- }
- /// <summary>
- /// Loading CacheStamp
- /// </summary>
- public void LoadSettings()
- {
- CustomStampList stamps = Settings.Default.CustomStampList;
- CustomStampList.Clear();
- if (stamps != null)
- {
- for (int i = 0; i < stamps.Count; i++)
- {
- CPDFStampData customStamp = new CPDFStampData();
- customStamp.Opacity = 1;
- customStamp.Author = stamps[i].Author;
- customStamp.StampText = stamps[i].StampText;
- customStamp.StampTextDate = stamps[i].StampTextDate;
- customStamp.MaxWidth = stamps[i].MaxWidth;
- customStamp.MaxHeight = stamps[i].MaxHeight;
- customStamp.SourcePath = stamps[i].SourcePath;
- customStamp.Type = stamps[i].Type;
- customStamp.TextSharp = stamps[i].TextSharp;
- customStamp.TextColor = stamps[i].TextColor;
- customStamp.IsCheckedTime = stamps[i].IsCheckedTime;
- customStamp.IsCheckedDate = stamps[i].IsCheckedDate;
- customStamp.AnnotationType = CPDFAnnotationType.Stamp;
- CustomStampList.Add(customStamp);
- }
- }
- }
- public void UpDataCustomStamp(CPDFStampData oldstamp)
- {
- if (oldstamp != null)
- {
- CustomStampList.Add(oldstamp);
- CustomStampList stamps = Settings.Default.CustomStampList;
- if (stamps == null)
- {
- stamps = Settings.Default.CustomStampList = new CustomStampList();
- }
- stamps.Add(oldstamp);
- Settings.Default.Save();
- }
- }
- private void Delete_Click(object sender, RoutedEventArgs e)
- {
- Button ThisButton = sender as Button;
- if (ThisButton != null)
- {
- CPDFStampData stampData = ThisButton.DataContext as CPDFStampData;
- if (stampData != null)
- {
- int index = CustomStampList.IndexOf(stampData);
- if (index != -1)
- {
- CPDFDeleteDialog cPDFDeleteDialog = new CPDFDeleteDialog("Warning", "Are you sure to delete?");
- cPDFDeleteDialog.Owner = Window.GetWindow(this);
- cPDFDeleteDialog.WindowStartupLocation = WindowStartupLocation.CenterOwner;
- cPDFDeleteDialog.ShowDialog();
- if (!cPDFDeleteDialog.IsDelete)
- {
- PropertyChanged?.Invoke(this, null);
- return;
- }
- if (stampData.SourcePath != null)
- {
- try
- {
- if (File.Exists(stampData.SourcePath))
- {
- File.Delete(stampData.SourcePath);
- }
- }
- catch (Exception)
- {
- }
- }
- CustomStampList.RemoveAt(index);
- CustomStampList stamps = Settings.Default.CustomStampList;
- if (stamps != null)
- {
- stamps.RemoveAt(index);
- Settings.Default.Save();
- }
- PropertyChanged?.Invoke(this, null);
- }
- }
- }
- }
- }
- }
|