HomeGuidContentViewModel.cs 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using ComPDFKit.PDFDocument;
  2. using ComPDFKitViewer.PdfViewer;
  3. using PDF_Office.CustomControl;
  4. using PDF_Office.Model;
  5. using PDF_Office.Model.PDFTool;
  6. using PDF_Office.Views.HomePanel.PDFTools;
  7. using Prism.Commands;
  8. using Prism.Mvvm;
  9. using Prism.Services.Dialogs;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. using System.Windows.Forms;
  16. using System.Xml.Linq;
  17. namespace PDF_Office.ViewModels.HomePanel
  18. {
  19. public class HomeGuidContentViewModel : BindableBase
  20. {
  21. public IDialogService dialogs;
  22. public DelegateCommand<ToolItem> QuickToolsCommand { get; set; }
  23. public HomeGuidContentViewModel(IDialogService dialogService)
  24. {
  25. QuickToolsCommand = new DelegateCommand<ToolItem>(QuickTools_Click);
  26. dialogs = dialogService;
  27. }
  28. public void QuickTools_Click(ToolItem toolItem)
  29. {
  30. /*
  31. *设置这个对话框的起始保存路径
  32. */
  33. System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.OpenFileDialog();
  34. dlg.Multiselect = false;
  35. dlg.Filter = "PDF|*.pdf;*.PDF;";
  36. if (toolItem.Tag == PDFToolType.Merge)
  37. {
  38. dlg.Multiselect = true;
  39. dlg.Filter = "Picture|*.png;*.PNG;*.jpg;*.JPG;*bmp;*jpeg;*gif;*tiff;*webp;";
  40. }
  41. if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  42. {
  43. CPDFViewer viewer = new CPDFViewer();
  44. viewer.InitDocument(dlg.FileName);
  45. switch (toolItem.Tag)
  46. {
  47. case PDFToolType.Split:
  48. DialogParameters splitvalue = new DialogParameters();
  49. splitvalue.Add(ParameterNames.PDFViewer, viewer);
  50. splitvalue.Add(ParameterNames.FilePath, dlg.FileName);
  51. dialogs.ShowDialog(DialogNames.HomePageSplitDialog, splitvalue, e => { });
  52. break;
  53. case PDFToolType.Extract:
  54. DialogParameters extractvalue = new DialogParameters();
  55. extractvalue.Add(ParameterNames.PDFViewer, viewer);
  56. extractvalue.Add(ParameterNames.FilePath, dlg.FileName);
  57. dialogs.ShowDialog(DialogNames.HomePageExtractDialog, extractvalue, e => { });
  58. break;
  59. case PDFToolType.Insert:
  60. DialogParameters insertvalue = new DialogParameters();
  61. insertvalue.Add(ParameterNames.PDFViewer, viewer);
  62. insertvalue.Add(ParameterNames.FilePath, dlg.FileName);
  63. dialogs.ShowDialog(DialogNames.HomePageInsertDialog, insertvalue, e => { });
  64. break;
  65. case PDFToolType.Compress:
  66. break;
  67. case PDFToolType.Merge:
  68. DialogParameters picturetopdf = new DialogParameters();
  69. picturetopdf.Add(ParameterNames.FilePath, dlg.FileNames);
  70. dialogs.ShowDialog(DialogNames.HomePagePictureToPDFDialog, picturetopdf, e => { });
  71. break;
  72. case PDFToolType.Print:
  73. DialogParameters printvalue = new DialogParameters();
  74. printvalue.Add(ParameterNames.PDFViewer, viewer); ;
  75. printvalue.Add(ParameterNames.FilePath, dlg.FileName);
  76. dialogs.ShowDialog(DialogNames.HomePagePrinterDialog, printvalue, e => { });
  77. break;
  78. case PDFToolType.Security:
  79. break;
  80. }
  81. }
  82. }
  83. }
  84. }