ConverterExcelDialogViewModel.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651
  1. using ComDocumentAIKit;
  2. using ComPDFKit_Conversion.Options;
  3. using ComPDFKitViewer.PdfViewer;
  4. using PDF_Master.CustomControl;
  5. using PDF_Master.Helper;
  6. using PDF_Master.Model;
  7. using PDF_Master.Model.Dialog.ConverterDialogs;
  8. using PDF_Master.Model.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
  9. using PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageConverter;
  10. using Prism.Commands;
  11. using Prism.Mvvm;
  12. using Prism.Services.Dialogs;
  13. using System;
  14. using System.Collections.Generic;
  15. using System.Diagnostics;
  16. using System.IO;
  17. using System.Linq;
  18. using System.Windows.Forms;
  19. using DialogResult = Prism.Services.Dialogs.DialogResult;
  20. namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
  21. {
  22. public class ConverterExcelDialogViewModel : BindableBase, IDialogAware
  23. {
  24. #region 文案
  25. private string T_title;
  26. public string T_Title
  27. {
  28. get { return T_title; }
  29. set
  30. {
  31. SetProperty(ref T_title, value);
  32. }
  33. }
  34. private string T_yes;
  35. public string T_YES
  36. {
  37. get { return T_yes; }
  38. set
  39. {
  40. SetProperty(ref T_yes, value);
  41. }
  42. }
  43. private string T_no;
  44. public string T_No
  45. {
  46. get { return T_no; }
  47. set
  48. {
  49. SetProperty(ref T_no, value);
  50. }
  51. }
  52. private string T_onlyTables;
  53. public string T_OnlyTables
  54. {
  55. get { return T_onlyTables; }
  56. set
  57. {
  58. SetProperty(ref T_onlyTables, value);
  59. }
  60. }
  61. private string T_allContents;
  62. public string T_AllContents
  63. {
  64. get { return T_allContents; }
  65. set
  66. {
  67. SetProperty(ref T_allContents, value);
  68. }
  69. }
  70. private string T_eachPageAllContents;
  71. public string T_EachPageAllContents
  72. {
  73. get { return T_eachPageAllContents; }
  74. set
  75. {
  76. SetProperty(ref T_eachPageAllContents, value);
  77. }
  78. }
  79. private string T_fileAllContents;
  80. public string T_FileAllContents
  81. {
  82. get { return T_fileAllContents; }
  83. set
  84. {
  85. SetProperty(ref T_fileAllContents, value);
  86. }
  87. }
  88. private string T_eachTableOnlyTables;
  89. public string T_EachTableOnlyTables
  90. {
  91. get { return T_eachTableOnlyTables; }
  92. set
  93. {
  94. SetProperty(ref T_eachTableOnlyTables, value);
  95. }
  96. }
  97. private string T_eachPageOnlyTables;
  98. public string T_EachPageOnlyTables
  99. {
  100. get { return T_eachPageOnlyTables; }
  101. set
  102. {
  103. SetProperty(ref T_eachPageOnlyTables, value);
  104. }
  105. }
  106. private string T_fileOnlyTables;
  107. public string T_FileOnlyTables
  108. {
  109. get { return T_fileOnlyTables; }
  110. set
  111. {
  112. SetProperty(ref T_fileOnlyTables, value);
  113. }
  114. }
  115. private string T_onlyText;
  116. public string T_OnlyText
  117. {
  118. get { return T_onlyText; }
  119. set
  120. {
  121. SetProperty(ref T_onlyText, value);
  122. }
  123. }
  124. private string T_settings;
  125. public string T_Settings
  126. {
  127. get { return T_settings; }
  128. set
  129. {
  130. SetProperty(ref T_settings, value);
  131. }
  132. }
  133. private string T_pageRange;
  134. public string T_PageRange
  135. {
  136. get { return T_pageRange; }
  137. set
  138. {
  139. SetProperty(ref T_pageRange, value);
  140. }
  141. }
  142. private void IntString()
  143. {
  144. T_Title = App.MainPageLoader.GetString("Convert_PDFToExcelTitle");
  145. T_YES = App.MainPageLoader.GetString("Convert_Yes");
  146. T_No = App.MainPageLoader.GetString("Convert_No");
  147. T_AllContents = App.MainPageLoader.GetString("Convert_PDFToExcelAllContents");
  148. T_EachPageAllContents = App.MainPageLoader.GetString("Convert_PDFToExcelAllContentsEachPage");
  149. T_FileAllContents = App.MainPageLoader.GetString("Convert_PDFToExcelAllContentsFile");
  150. T_OnlyTables = App.MainPageLoader.GetString("Convert_PDFToExcelAllOnlyTables");
  151. T_EachTableOnlyTables = App.MainPageLoader.GetString("Convert_PDFToExcelAllOnlyTablesEachTable");
  152. T_EachPageOnlyTables = App.MainPageLoader.GetString("Convert_PDFToExcelAllOnlyTablesEachPage");
  153. T_FileOnlyTables = App.MainPageLoader.GetString("Convert_PDFToExcelAllOnlyTablesFile");
  154. T_OnlyText= App.MainPageLoader.GetString("Convert_PDFToExcelOnlyText");
  155. T_Settings = App.MainPageLoader.GetString("Convert_PDFToExcelSettings");
  156. T_PageRange = App.MainPageLoader.GetString("Convert_PDFPageRange");
  157. }
  158. #endregion 参数和属性
  159. public string Title => "";
  160. public event Action<IDialogResult> RequestClose;
  161. #region 参数和属性
  162. public ConverterExcelDialogModel ConverterExcelModel = new ConverterExcelDialogModel();
  163. public CPDFViewer currentViewer;
  164. public string CurrentPageIndex = "1";
  165. public bool IsCurrentPageIndex = false;
  166. public IDialogService dialogs;
  167. public string PageRangeText { set; get; } = "0";
  168. public string PageRangeSelectIndex { set; get; } = "0";
  169. private int _anyContentSelectIndex = 0;
  170. public int AnyContentSelectIndex
  171. {
  172. get { return _anyContentSelectIndex; }
  173. set
  174. {
  175. SetProperty(ref _anyContentSelectIndex, value);
  176. AnyContent(_anyContentSelectIndex);
  177. }
  178. }
  179. private int _onlyTableSelectIndex = 0;
  180. public int OnlyTableSelectIndex
  181. {
  182. get { return _onlyTableSelectIndex; }
  183. set
  184. {
  185. SetProperty(ref _onlyTableSelectIndex, value);
  186. OnlyTable(_onlyTableSelectIndex);
  187. }
  188. }
  189. private int maxPageRange = 0;
  190. public int MaxPageRange
  191. {
  192. get { return maxPageRange; }
  193. set
  194. {
  195. SetProperty(ref maxPageRange, value);
  196. }
  197. }
  198. private bool oCRCheckBoxIsCheckBox = true;
  199. public bool OCRCheckBoxIsCheckBox
  200. {
  201. get { return oCRCheckBoxIsCheckBox; }
  202. set
  203. {
  204. SetProperty(ref oCRCheckBoxIsCheckBox, value);
  205. ConverterExcelModel.Options.IsAllowOCR = oCRCheckBoxIsCheckBox;
  206. }
  207. }
  208. private int languageSelectedIndex = 2;
  209. public int LanguageSelectedIndex
  210. {
  211. get { return languageSelectedIndex; }
  212. set
  213. {
  214. SetProperty(ref languageSelectedIndex, value);
  215. SelectLanguage(languageSelectedIndex);
  216. }
  217. }
  218. private Dictionary<string, string> CheckPageSelect = new Dictionary<string, string>();
  219. private void InitCheckPageSelect()
  220. {
  221. CheckPageSelect.Clear();
  222. if (!IsCurrentPageIndex)
  223. {
  224. CheckPageSelect.Add("0", "0");
  225. CheckPageSelect.Add("1", "1");
  226. CheckPageSelect.Add("2", "2");
  227. CheckPageSelect.Add("3", "3");
  228. CheckPageSelect.Add("4", "4");
  229. }
  230. else
  231. {
  232. CheckPageSelect.Add("0", "0");
  233. CheckPageSelect.Add("1", "-2");
  234. CheckPageSelect.Add("2", "1");
  235. CheckPageSelect.Add("3", "2");
  236. CheckPageSelect.Add("4", "3");
  237. }
  238. }
  239. #endregion
  240. #region 委托声明
  241. public DelegateCommand<string> RadioButtonCommand { get; set; }
  242. public DelegateCommand CancelCommand { get; set; }
  243. public DelegateCommand ConverterCommnad { get; set; }
  244. public DelegateCommand<object> CmbPageSelectionChanged { get; set; }
  245. public DelegateCommand<object> CmbPageTextChanged { get; set; }
  246. public DelegateCommand BatchConverterCommand { get; set; }
  247. public DelegateCommand SetCustomPageRangeCommand { get; set; }
  248. #endregion
  249. public ConverterExcelDialogViewModel(IDialogService dialogService)
  250. {
  251. IntString();
  252. CancelCommand = new DelegateCommand(cancel);
  253. ConverterCommnad = new DelegateCommand(converter);
  254. RadioButtonCommand = new DelegateCommand<string>(radiobutton);
  255. SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
  256. CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
  257. CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
  258. BatchConverterCommand = new DelegateCommand(BatchConverter);
  259. dialogs = dialogService;
  260. }
  261. #region 逻辑函数
  262. public void SetCustomPageRange()
  263. {
  264. if (PageRangeSelectIndex == CheckPageSelect["4"])
  265. {
  266. List<int> PageIndexLists = new List<int>();
  267. if (!CommonHelper.GetPagesInRange(ref PageIndexLists, PageRangeText, currentViewer.Document.PageCount, new char[] { ',' }, new char[] { '-' }))
  268. { //TODO
  269. AlertsMessage alertsMessage = new AlertsMessage();
  270. alertsMessage.ShowDialog("页面范围输入错误", "", "确定");
  271. if (alertsMessage.result == ContentResult.Ok)
  272. {
  273. return;
  274. }
  275. else
  276. {
  277. //this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
  278. //{
  279. // Unicode = Unicode,
  280. // Status = EnumDelete.StatusCreate
  281. //});
  282. return;
  283. }
  284. }
  285. }
  286. }
  287. private void cancel()
  288. {
  289. RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
  290. }
  291. private void converter()
  292. {
  293. if (PageRangeSelectIndex == CheckPageSelect["4"])
  294. {
  295. List<int> PageIndexLists = new List<int>();
  296. if (!CommonHelper.GetPagesInRange(ref PageIndexLists, PageRangeText, currentViewer.Document.PageCount, new char[] { ',' }, new char[] { '-' }))
  297. { //TODO
  298. AlertsMessage alertsMessage = new AlertsMessage();
  299. alertsMessage.ShowDialog("页面范围输入错误", "", "确定");
  300. if (alertsMessage.result == ContentResult.Ok)
  301. {
  302. return;
  303. }
  304. else
  305. {
  306. //this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
  307. //{
  308. // Unicode = Unicode,
  309. // Status = EnumDelete.StatusCreate
  310. //});
  311. return;
  312. }
  313. }
  314. }
  315. System.Windows.Forms.SaveFileDialog sfd = new System.Windows.Forms.SaveFileDialog();
  316. /*
  317. *设置这个对话框的起始保存路径
  318. */
  319. sfd.InitialDirectory = currentViewer.Document.FilePath;
  320. /*
  321. *设置保存的文件的类型,注意过滤器的语法 例子:“文件类型|*.后缀名;*.后缀名;”
  322. */
  323. sfd.Filter = "PDF|*.xlsx;";
  324. /*
  325. *调用ShowDialog()方法显示该对话框,该方法的返回值代表用户是否点击了确定按钮
  326. */
  327. sfd.FileName = currentViewer.Document.FileName + ".xlsx";
  328. /*
  329. * 做一些工作
  330. */
  331. if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  332. {
  333. ConverterExcelModel.OutputPath = sfd.FileName;
  334. try { if (File.Exists(ConverterExcelModel.OutputPath)) File.Delete(ConverterExcelModel.OutputPath); }
  335. catch
  336. {
  337. AlertsMessage alertsMessage = new AlertsMessage();
  338. alertsMessage.ShowDialog("文件已被占用", "请重新选则目标路径", "确定");
  339. return;
  340. }
  341. }
  342. else
  343. {
  344. return;
  345. }
  346. HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterExcelModel.PageRange, PageRangeText, !IsCurrentPageIndex, CurrentPageIndex);
  347. if (ConverterExcelModel.PageRange == "")
  348. {
  349. Trace.WriteLine("输入不对");
  350. MessageBoxEx.Show("输入不对");
  351. return;
  352. }
  353. char[] enumerationSeparator = new char[] { ',' };
  354. char[] rangeSeparator = new char[] { '-' };
  355. if (!CommonHelper.GetPagesInRange(ref ConverterExcelModel.PageIndexLists, ConverterExcelModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  356. { //TODO
  357. Trace.WriteLine("输入不对");
  358. MessageBoxEx.Show("输入不对");
  359. return;
  360. }
  361. ConverterExcelModel.excelOptions = ConverterExcelModel.ExcelOptions();
  362. //DialogParameters value = new DialogParameters();
  363. //value.Add(ParameterNames.ConverterType, "Excel");
  364. //value.Add(ParameterNames.ConverterTypeModel, ConverterExcelModel);
  365. var dialogresult = new DialogResult(ButtonResult.OK);
  366. dialogresult.Parameters.Add(ParameterNames.ConverterType, "Excel");
  367. dialogresult.Parameters.Add(ParameterNames.ConverterTypeModel, ConverterExcelModel);
  368. RequestClose.Invoke(dialogresult);
  369. //RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  370. //dialogs.ShowDialog(DialogNames.ConverterProgressBarDialog, value, e =>
  371. //{
  372. //});
  373. }
  374. private void CmbPageSelectionChangedEvent(object e)
  375. {
  376. ///这里采用的是将预览UI控件传递过来的方式,为下下策
  377. ///正确的方式应该是 通过声明一些属性,再通过绑定来更新预览控件对应值的形式
  378. ///但是目前发现自定义控件的依赖属性绑定有些问题,因此先用此方法,将业务逻辑代码先调整到VM里
  379. var ConverterPreview = e as PageTurningPreview;
  380. if (ConverterPreview != null)
  381. {
  382. string PageRangeSelectIndex = this.PageRangeSelectIndex;
  383. var currentViewer = this.currentViewer;
  384. string PageRange = "";
  385. var PageRangeText = this.PageRangeText;
  386. if (PageRangeSelectIndex == CheckPageSelect["0"] || PageRangeSelectIndex == CheckPageSelect["2"] || PageRangeSelectIndex == CheckPageSelect["3"] ||PageRangeSelectIndex == CheckPageSelect["4"])
  387. {
  388. if (PageRangeSelectIndex == CheckPageSelect["4"]) { HomePageEditHelper.GetPagerange("0", currentViewer, ref PageRange, PageRangeText, true); } else { HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText, true); }
  389. char[] enumerationSeparator = new char[] { ',' };
  390. char[] rangeSeparator = new char[] { '-' };
  391. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  392. { //TODO
  393. ConverterPreview.PageIndexLists.Add(0);
  394. Trace.WriteLine("输入不对");
  395. MessageBoxEx.Show("输入不对");
  396. return;
  397. }
  398. }
  399. if (PageRangeSelectIndex == CheckPageSelect["1"])
  400. {
  401. char[] enumerationSeparator = new char[] { ',' };
  402. char[] rangeSeparator = new char[] { '-' };
  403. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, (currentViewer.CurrentIndex + 1).ToString()
  404. , currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  405. { //TODO
  406. Trace.WriteLine("输入不对");
  407. MessageBoxEx.Show("输入不对");
  408. return;
  409. }
  410. this.CurrentPageIndex = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
  411. }
  412. // ConverterPreview.PageIndex.Text = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
  413. ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
  414. ConverterPreview.CurrentIndex = 0;
  415. }
  416. }
  417. private void CmbPageTextChangedEvent(object e)
  418. {
  419. var ConverterPreview = e as PageTurningPreview;
  420. if (ConverterPreview != null)
  421. {
  422. if (ConverterPreview != null)
  423. {
  424. string PageRangeSelectIndex = this.PageRangeSelectIndex;
  425. var currentViewer = this.currentViewer;
  426. string PageRange = "";
  427. var PageRangeText = this.PageRangeText;
  428. HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText, !IsCurrentPageIndex);
  429. char[] enumerationSeparator = new char[] { ',' };
  430. char[] rangeSeparator = new char[] { '-' };
  431. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  432. { //TODO
  433. HomePageEditHelper.GetPagerange("0", currentViewer, ref PageRange, PageRangeText, true);
  434. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  435. { //TODO
  436. ConverterPreview.PageIndexLists.Add(0);
  437. Trace.WriteLine("输入不对");
  438. MessageBoxEx.Show("输入不对");
  439. return;
  440. }
  441. ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
  442. ConverterPreview.CurrentIndex = 0;
  443. return;
  444. }
  445. else
  446. {
  447. // ConverterPreview.PageIndex.Text = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
  448. ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
  449. ConverterPreview.CurrentIndex = 0;
  450. }
  451. }
  452. }
  453. }
  454. private void BatchConverter()
  455. {
  456. DialogParameters convertpdftoword = new DialogParameters();
  457. convertpdftoword.Add(ParameterNames.BatchProcessing_Name, "0");
  458. convertpdftoword.Add("ConverterTypeIndex", 1);
  459. HomePageBatchProcessingDialogModel.FilePaths = new List<string> { currentViewer.Document.FilePath.ToString() };
  460. HomePageBatchProcessingDialogModel.BatchProcessingIndex = 1;
  461. convertpdftoword.Add(ParameterNames.FilePath, new string[] { currentViewer.Document.FilePath.ToString() });
  462. dialogs.ShowDialog(DialogNames.HomePageBatchProcessingDialog, convertpdftoword, e => { });
  463. }
  464. private void radiobutton(string e) {
  465. string radioButton=e;
  466. if (radioButton != null) {
  467. switch (radioButton)
  468. {
  469. case "AnyContentRadioBtn":
  470. AnyContent(AnyContentSelectIndex);
  471. break;
  472. case "OnlyTableRadioBtn":
  473. OnlyTable(OnlyTableSelectIndex);
  474. break;
  475. case "OnlyTextRadioBtn":
  476. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForTheDocument;
  477. ConverterExcelModel.Options.ContentOpts = ContentOptions.OnlyText;
  478. break;
  479. default:
  480. break;
  481. }
  482. }
  483. }
  484. private void AnyContent(int SelectedIndex)
  485. {
  486. switch (SelectedIndex)
  487. {
  488. case 0:
  489. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForEachPage;
  490. ConverterExcelModel.Options.ContentOpts = ContentOptions.AllContent;
  491. break;
  492. case 1:
  493. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForTheDocument;
  494. ConverterExcelModel.Options.ContentOpts = ContentOptions.AllContent;
  495. break;
  496. default:
  497. break;
  498. }
  499. }
  500. private void OnlyTable(int SelectedIndex)
  501. {
  502. ConverterExcelModel.Options.ContentOpts = ContentOptions.OnlyTable;
  503. switch (SelectedIndex)
  504. {
  505. case 0:
  506. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForEachTable;
  507. break;
  508. case 1:
  509. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForEachPage;
  510. break;
  511. case 2:
  512. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForTheDocument;
  513. break;
  514. default:
  515. break;
  516. }
  517. }
  518. private void SelectLanguage(int SelectedIndex)
  519. {
  520. switch (SelectedIndex)
  521. {
  522. case 0:
  523. ConverterExcelModel.Options.OCRLanguage= COCRLanguage.Chinese;
  524. break;
  525. case 1:
  526. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.ChineseTraditional;
  527. break;
  528. case 2:
  529. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.English;
  530. break;
  531. case 3:
  532. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.Japanese;
  533. break;
  534. case 4:
  535. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.Korean;
  536. break;
  537. default:
  538. break;
  539. }
  540. }
  541. #endregion
  542. #region 构架行为
  543. public bool CanCloseDialog()
  544. {
  545. return true;
  546. }
  547. public void OnDialogClosed()
  548. {
  549. }
  550. public void OnDialogOpened(IDialogParameters parameters)
  551. {
  552. CPDFViewer pdfViewer = null;
  553. parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out pdfViewer);
  554. parameters.TryGetValue<bool>("PageRangeComboBoxCurrentPage", out IsCurrentPageIndex);
  555. if (pdfViewer != null)
  556. {
  557. InitCheckPageSelect();
  558. currentViewer = pdfViewer;
  559. MaxPageRange = currentViewer.Document.PageCount;
  560. if (currentViewer.Tag != null) { ConverterExcelModel.Pawssword = currentViewer.Tag.ToString(); }
  561. ConverterExcelModel.InputPath = pdfViewer.Document.FilePath;
  562. FileInfo fileinfo = new FileInfo(ConverterExcelModel.InputPath);
  563. ConverterExcelModel.OutputPath = fileinfo.DirectoryName;
  564. }
  565. }
  566. #endregion
  567. }
  568. }