ConverterExcelDialogViewModel.cs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656
  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("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  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("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  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 = "Excel|*.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("", App.MainPageLoader.GetString("FileNotExistWarning"), App.ServiceLoader.GetString("Text_ok"));
  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. AlertsMessage alertsMessage = new AlertsMessage();
  351. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  352. return;
  353. }
  354. char[] enumerationSeparator = new char[] { ',' };
  355. char[] rangeSeparator = new char[] { '-' };
  356. if (!CommonHelper.GetPagesInRange(ref ConverterExcelModel.PageIndexLists, ConverterExcelModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  357. { //TODO
  358. Trace.WriteLine("输入不对");
  359. AlertsMessage alertsMessage = new AlertsMessage();
  360. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  361. return;
  362. }
  363. ConverterExcelModel.excelOptions = ConverterExcelModel.ExcelOptions();
  364. //DialogParameters value = new DialogParameters();
  365. //value.Add(ParameterNames.ConverterType, "Excel");
  366. //value.Add(ParameterNames.ConverterTypeModel, ConverterExcelModel);
  367. var dialogresult = new DialogResult(ButtonResult.OK);
  368. dialogresult.Parameters.Add(ParameterNames.ConverterType, "Excel");
  369. dialogresult.Parameters.Add(ParameterNames.ConverterTypeModel, ConverterExcelModel);
  370. RequestClose.Invoke(dialogresult);
  371. //RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  372. //dialogs.ShowDialog(DialogNames.ConverterProgressBarDialog, value, e =>
  373. //{
  374. //});
  375. }
  376. private void CmbPageSelectionChangedEvent(object e)
  377. {
  378. ///这里采用的是将预览UI控件传递过来的方式,为下下策
  379. ///正确的方式应该是 通过声明一些属性,再通过绑定来更新预览控件对应值的形式
  380. ///但是目前发现自定义控件的依赖属性绑定有些问题,因此先用此方法,将业务逻辑代码先调整到VM里
  381. var ConverterPreview = e as PageTurningPreview;
  382. if (ConverterPreview != null)
  383. {
  384. string PageRangeSelectIndex = this.PageRangeSelectIndex;
  385. var currentViewer = this.currentViewer;
  386. string PageRange = "";
  387. var PageRangeText = this.PageRangeText;
  388. if (PageRangeSelectIndex == CheckPageSelect["0"] || PageRangeSelectIndex == CheckPageSelect["2"] || PageRangeSelectIndex == CheckPageSelect["3"] ||PageRangeSelectIndex == CheckPageSelect["4"])
  389. {
  390. if (PageRangeSelectIndex == CheckPageSelect["4"]) { HomePageEditHelper.GetPagerange("0", currentViewer, ref PageRange, PageRangeText, !IsCurrentPageIndex); } else { HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText, !IsCurrentPageIndex); }
  391. char[] enumerationSeparator = new char[] { ',' };
  392. char[] rangeSeparator = new char[] { '-' };
  393. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  394. { //TODO
  395. ConverterPreview.PageIndexLists.Add(0);
  396. Trace.WriteLine("输入不对");
  397. AlertsMessage alertsMessage = new AlertsMessage();
  398. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  399. return;
  400. }
  401. }
  402. if (PageRangeSelectIndex == CheckPageSelect["1"])
  403. {
  404. char[] enumerationSeparator = new char[] { ',' };
  405. char[] rangeSeparator = new char[] { '-' };
  406. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, (currentViewer.CurrentIndex + 1).ToString()
  407. , currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  408. { //TODO
  409. Trace.WriteLine("输入不对");
  410. AlertsMessage alertsMessage = new AlertsMessage();
  411. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  412. return;
  413. }
  414. this.CurrentPageIndex = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
  415. }
  416. // ConverterPreview.PageIndex.Text = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
  417. ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
  418. ConverterPreview.CurrentIndex = 0;
  419. }
  420. }
  421. private void CmbPageTextChangedEvent(object e)
  422. {
  423. var ConverterPreview = e as PageTurningPreview;
  424. if (ConverterPreview != null)
  425. {
  426. if (ConverterPreview != null)
  427. {
  428. string PageRangeSelectIndex = this.PageRangeSelectIndex;
  429. var currentViewer = this.currentViewer;
  430. string PageRange = "";
  431. var PageRangeText = this.PageRangeText;
  432. HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText, !IsCurrentPageIndex);
  433. char[] enumerationSeparator = new char[] { ',' };
  434. char[] rangeSeparator = new char[] { '-' };
  435. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  436. { //TODO
  437. HomePageEditHelper.GetPagerange("0", currentViewer, ref PageRange, PageRangeText, !IsCurrentPageIndex);
  438. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  439. { //TODO
  440. ConverterPreview.PageIndexLists.Add(0);
  441. Trace.WriteLine("输入不对");
  442. AlertsMessage alertsMessage = new AlertsMessage();
  443. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  444. return;
  445. }
  446. ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
  447. ConverterPreview.CurrentIndex = 0;
  448. return;
  449. }
  450. else
  451. {
  452. // ConverterPreview.PageIndex.Text = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
  453. ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
  454. ConverterPreview.CurrentIndex = 0;
  455. }
  456. }
  457. }
  458. }
  459. private void BatchConverter()
  460. {
  461. DialogParameters convertpdftoword = new DialogParameters();
  462. convertpdftoword.Add(ParameterNames.BatchProcessing_Name, "0");
  463. convertpdftoword.Add("ConverterTypeIndex", 1);
  464. HomePageBatchProcessingDialogModel.FilePaths = new List<string> { currentViewer.Document.FilePath.ToString() };
  465. HomePageBatchProcessingDialogModel.BatchProcessingIndex = 1;
  466. convertpdftoword.Add(ParameterNames.FilePath, new string[] { currentViewer.Document.FilePath.ToString() });
  467. dialogs.ShowDialog(DialogNames.HomePageBatchProcessingDialog, convertpdftoword, e => { });
  468. }
  469. private void radiobutton(string e) {
  470. string radioButton=e;
  471. if (radioButton != null) {
  472. switch (radioButton)
  473. {
  474. case "AnyContentRadioBtn":
  475. AnyContent(AnyContentSelectIndex);
  476. break;
  477. case "OnlyTableRadioBtn":
  478. OnlyTable(OnlyTableSelectIndex);
  479. break;
  480. case "OnlyTextRadioBtn":
  481. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForTheDocument;
  482. ConverterExcelModel.Options.ContentOpts = ContentOptions.OnlyText;
  483. break;
  484. default:
  485. break;
  486. }
  487. }
  488. }
  489. private void AnyContent(int SelectedIndex)
  490. {
  491. switch (SelectedIndex)
  492. {
  493. case 0:
  494. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForEachPage;
  495. ConverterExcelModel.Options.ContentOpts = ContentOptions.AllContent;
  496. break;
  497. case 1:
  498. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForTheDocument;
  499. ConverterExcelModel.Options.ContentOpts = ContentOptions.AllContent;
  500. break;
  501. default:
  502. break;
  503. }
  504. }
  505. private void OnlyTable(int SelectedIndex)
  506. {
  507. ConverterExcelModel.Options.ContentOpts = ContentOptions.OnlyTable;
  508. switch (SelectedIndex)
  509. {
  510. case 0:
  511. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForEachTable;
  512. break;
  513. case 1:
  514. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForEachPage;
  515. break;
  516. case 2:
  517. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForTheDocument;
  518. break;
  519. default:
  520. break;
  521. }
  522. }
  523. private void SelectLanguage(int SelectedIndex)
  524. {
  525. switch (SelectedIndex)
  526. {
  527. case 0:
  528. ConverterExcelModel.Options.OCRLanguage= COCRLanguage.COCRLanguageChinese;
  529. break;
  530. case 1:
  531. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.COCRLanguageChineseTraditional;
  532. break;
  533. case 2:
  534. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.COCRLanguageEnglish;
  535. break;
  536. case 3:
  537. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.COCRLanguageJapanese;
  538. break;
  539. case 4:
  540. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.COCRLanguageKorean;
  541. break;
  542. default:
  543. break;
  544. }
  545. }
  546. #endregion
  547. #region 构架行为
  548. public bool CanCloseDialog()
  549. {
  550. return true;
  551. }
  552. public void OnDialogClosed()
  553. {
  554. }
  555. public void OnDialogOpened(IDialogParameters parameters)
  556. {
  557. CPDFViewer pdfViewer = null;
  558. parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out pdfViewer);
  559. parameters.TryGetValue<bool>("PageRangeComboBoxCurrentPage", out IsCurrentPageIndex);
  560. if (pdfViewer != null)
  561. {
  562. InitCheckPageSelect();
  563. currentViewer = pdfViewer;
  564. MaxPageRange = currentViewer.Document.PageCount;
  565. if (currentViewer.Tag != null) { ConverterExcelModel.Pawssword = currentViewer.Tag.ToString(); }
  566. ConverterExcelModel.InputPath = pdfViewer.Document.FilePath;
  567. FileInfo fileinfo = new FileInfo(ConverterExcelModel.InputPath);
  568. ConverterExcelModel.OutputPath = fileinfo.DirectoryName;
  569. }
  570. }
  571. #endregion
  572. }
  573. }