using ComPDFKit.PDFDocument; using ComPDFKit_Conversion.Options; using ComPDFKitViewer.PdfViewer; using Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Word; using PDF_Office.CustomControl; using PDF_Office.Helper; using PDF_Office.Model; using PDF_Office.Model.Dialog.ConverterDialogs; using Prism.Commands; using Prism.Mvvm; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Windows.Forms; using static Dropbox.Api.Files.FileCategory; using static System.Windows.Forms.VisualStyles.VisualStyleElement; using DialogResult = Prism.Services.Dialogs.DialogResult; namespace PDF_Office.ViewModels.Dialog.ConverterDialogs { public class ConverterCSVDialogViewModel : BindableBase,IDialogAware { public ConverterCSVDialogModel ConverterCSVModel = new ConverterCSVDialogModel(); public CPDFViewer currentViewer; public IDialogService dialogs; public string PageRangeText { set; get; } = "0"; public string PageRangeSelectIndex { set; get; } = "0"; public DelegateCommand RadioButtonCommand { get; set; } public DelegateCommand CancelCommand { get; set; } public DelegateCommand ConverterCommnad { get; set; } public ConverterCSVDialogViewModel(IDialogService dialogService) { CancelCommand = new DelegateCommand(cancel); ConverterCommnad = new DelegateCommand(converter); RadioButtonCommand = new DelegateCommand(radiobutton); dialogs = dialogService; } private void cancel() { RequestClose.Invoke(new DialogResult(ButtonResult.Cancel)); } private void converter() { FolderBrowserDialog dlg = new FolderBrowserDialog(); if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ConverterCSVModel.OutputPath =dlg.SelectedPath.Trim(); } HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterCSVModel.PageRange, PageRangeText, true); char[] enumerationSeparator = new char[] { ',' }; char[] rangeSeparator = new char[] { '-' }; if (!CommonHelper.GetPagesInRange(ref ConverterCSVModel.PageIndexLists, ConverterCSVModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator)) { //TODO Trace.WriteLine("输入不对"); MessageBoxEx.Show("输入不对"); return; } DialogParameters value = new DialogParameters(); value.Add(ParameterNames.ConverterType,"CSV"); value.Add(ParameterNames.ConverterTypeModel, ConverterCSVModel); RequestClose?.Invoke(new DialogResult(ButtonResult.OK)); dialogs.ShowDialog(DialogNames.ConverterProgressBarDialog, value, e => { }); } private void radiobutton(string e) { string radioButton = e; if (radioButton != null) { switch (radioButton) { case "ForEachPageRadioBtn": break; case "OnlyTableRadioBtn": break; default: break; } } } private void SetProgress(int pageIndex) { } public string Title=>""; public event Action RequestClose; public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } public void OnDialogOpened(IDialogParameters parameters) { CPDFViewer pdfViewer = null; parameters.TryGetValue(ParameterNames.PDFViewer, out pdfViewer); if (pdfViewer != null) { currentViewer = pdfViewer; ConverterCSVModel.InputPath = pdfViewer.Document.FilePath; FileInfo fileinfo = new FileInfo(ConverterCSVModel.InputPath); ConverterCSVModel.OutputPath = fileinfo.DirectoryName; } } } }