ConverterExcelDialogViewModel.cs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  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 bool oCRIsEnable = true;
  209. public bool OCRIsEnable
  210. {
  211. get { return oCRIsEnable; }
  212. set
  213. {
  214. SetProperty(ref oCRIsEnable, value);
  215. if (value == true)
  216. {
  217. ConverterExcelModel.Options.IsAllowOCR = OCRCheckBoxIsCheckBox;
  218. }
  219. else
  220. {
  221. ConverterExcelModel.Options.IsAllowOCR = false;
  222. }
  223. }
  224. }
  225. private int languageSelectedIndex = 2;
  226. public int LanguageSelectedIndex
  227. {
  228. get { return languageSelectedIndex; }
  229. set
  230. {
  231. SetProperty(ref languageSelectedIndex, value);
  232. SelectLanguage(languageSelectedIndex);
  233. }
  234. }
  235. private Dictionary<string, string> CheckPageSelect = new Dictionary<string, string>();
  236. private void InitCheckPageSelect()
  237. {
  238. CheckPageSelect.Clear();
  239. if (!IsCurrentPageIndex)
  240. {
  241. CheckPageSelect.Add("0", "0");
  242. CheckPageSelect.Add("1", "1");
  243. CheckPageSelect.Add("2", "2");
  244. CheckPageSelect.Add("3", "3");
  245. CheckPageSelect.Add("4", "4");
  246. }
  247. else
  248. {
  249. CheckPageSelect.Add("0", "0");
  250. CheckPageSelect.Add("1", "-2");
  251. CheckPageSelect.Add("2", "1");
  252. CheckPageSelect.Add("3", "2");
  253. CheckPageSelect.Add("4", "3");
  254. }
  255. }
  256. #endregion
  257. #region 委托声明
  258. public DelegateCommand<string> RadioButtonCommand { get; set; }
  259. public DelegateCommand CancelCommand { get; set; }
  260. public DelegateCommand ConverterCommnad { get; set; }
  261. public DelegateCommand<object> CmbPageSelectionChanged { get; set; }
  262. public DelegateCommand<object> CmbPageTextChanged { get; set; }
  263. public DelegateCommand BatchConverterCommand { get; set; }
  264. public DelegateCommand SetCustomPageRangeCommand { get; set; }
  265. #endregion
  266. public ConverterExcelDialogViewModel(IDialogService dialogService)
  267. {
  268. IntString();
  269. CancelCommand = new DelegateCommand(cancel);
  270. ConverterCommnad = new DelegateCommand(converter);
  271. RadioButtonCommand = new DelegateCommand<string>(radiobutton);
  272. SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
  273. CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
  274. CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
  275. BatchConverterCommand = new DelegateCommand(BatchConverter);
  276. dialogs = dialogService;
  277. }
  278. #region 逻辑函数
  279. public void SetCustomPageRange()
  280. {
  281. if (PageRangeSelectIndex == CheckPageSelect["4"])
  282. {
  283. List<int> PageIndexLists = new List<int>();
  284. if (!CommonHelper.GetPagesInRange(ref PageIndexLists, PageRangeText, currentViewer.Document.PageCount, new char[] { ',' }, new char[] { '-' }))
  285. { //TODO
  286. //AlertsMessage alertsMessage = new AlertsMessage();
  287. //alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  288. //if (alertsMessage.result == ContentResult.Ok)
  289. //{
  290. // return;
  291. //}
  292. //else
  293. //{
  294. // //this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
  295. // //{
  296. // // Unicode = Unicode,
  297. // // Status = EnumDelete.StatusCreate
  298. // //});
  299. // return;
  300. //}
  301. }
  302. }
  303. }
  304. private void cancel()
  305. {
  306. RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
  307. }
  308. private void converter()
  309. {
  310. if (PageRangeSelectIndex == CheckPageSelect["4"])
  311. {
  312. List<int> PageIndexLists = new List<int>();
  313. if (!CommonHelper.GetPagesInRange(ref PageIndexLists, PageRangeText, currentViewer.Document.PageCount, new char[] { ',' }, new char[] { '-' }))
  314. { //TODO
  315. AlertsMessage alertsMessage = new AlertsMessage();
  316. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  317. if (alertsMessage.result == ContentResult.Ok)
  318. {
  319. return;
  320. }
  321. else
  322. {
  323. //this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
  324. //{
  325. // Unicode = Unicode,
  326. // Status = EnumDelete.StatusCreate
  327. //});
  328. return;
  329. }
  330. }
  331. }
  332. System.Windows.Forms.SaveFileDialog sfd = new System.Windows.Forms.SaveFileDialog();
  333. /*
  334. *设置这个对话框的起始保存路径
  335. */
  336. sfd.InitialDirectory = currentViewer.Document.FilePath;
  337. /*
  338. *设置保存的文件的类型,注意过滤器的语法 例子:“文件类型|*.后缀名;*.后缀名;”
  339. */
  340. sfd.Filter = "Excel|*.xlsx;";
  341. /*
  342. *调用ShowDialog()方法显示该对话框,该方法的返回值代表用户是否点击了确定按钮
  343. */
  344. sfd.FileName = currentViewer.Document.FileName + ".xlsx";
  345. /*
  346. * 做一些工作
  347. */
  348. if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  349. {
  350. ConverterExcelModel.OutputPath = sfd.FileName;
  351. try { if (File.Exists(ConverterExcelModel.OutputPath)) File.Delete(ConverterExcelModel.OutputPath); }
  352. catch
  353. {
  354. AlertsMessage alertsMessage = new AlertsMessage();
  355. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("FileNotExistWarning"), App.ServiceLoader.GetString("Text_ok"));
  356. return;
  357. }
  358. }
  359. else
  360. {
  361. return;
  362. }
  363. HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterExcelModel.PageRange, PageRangeText, !IsCurrentPageIndex, CurrentPageIndex);
  364. if (ConverterExcelModel.PageRange == "")
  365. {
  366. Trace.WriteLine("输入不对");
  367. AlertsMessage alertsMessage = new AlertsMessage();
  368. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  369. return;
  370. }
  371. char[] enumerationSeparator = new char[] { ',' };
  372. char[] rangeSeparator = new char[] { '-' };
  373. if (!CommonHelper.GetPagesInRange(ref ConverterExcelModel.PageIndexLists, ConverterExcelModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  374. { //TODO
  375. Trace.WriteLine("输入不对");
  376. AlertsMessage alertsMessage = new AlertsMessage();
  377. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  378. return;
  379. }
  380. ConverterExcelModel.excelOptions = ConverterExcelModel.ExcelOptions();
  381. //DialogParameters value = new DialogParameters();
  382. //value.Add(ParameterNames.ConverterType, "Excel");
  383. //value.Add(ParameterNames.ConverterTypeModel, ConverterExcelModel);
  384. var dialogresult = new DialogResult(ButtonResult.OK);
  385. dialogresult.Parameters.Add(ParameterNames.ConverterType, "Excel");
  386. dialogresult.Parameters.Add(ParameterNames.ConverterTypeModel, ConverterExcelModel);
  387. RequestClose.Invoke(dialogresult);
  388. //RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  389. //dialogs.ShowDialog(DialogNames.ConverterProgressBarDialog, value, e =>
  390. //{
  391. //});
  392. }
  393. private void CmbPageSelectionChangedEvent(object e)
  394. {
  395. ///这里采用的是将预览UI控件传递过来的方式,为下下策
  396. ///正确的方式应该是 通过声明一些属性,再通过绑定来更新预览控件对应值的形式
  397. ///但是目前发现自定义控件的依赖属性绑定有些问题,因此先用此方法,将业务逻辑代码先调整到VM里
  398. var ConverterPreview = e as PageTurningPreview;
  399. if (ConverterPreview != null)
  400. {
  401. string PageRangeSelectIndex = this.PageRangeSelectIndex;
  402. var currentViewer = this.currentViewer;
  403. string PageRange = "";
  404. var PageRangeText = this.PageRangeText;
  405. if (PageRangeSelectIndex == CheckPageSelect["0"] || PageRangeSelectIndex == CheckPageSelect["2"] || PageRangeSelectIndex == CheckPageSelect["3"] || PageRangeSelectIndex == CheckPageSelect["4"])
  406. {
  407. if (PageRangeSelectIndex == CheckPageSelect["4"]) { HomePageEditHelper.GetPagerange("0", currentViewer, ref PageRange, PageRangeText, !IsCurrentPageIndex); } else { HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText, !IsCurrentPageIndex); }
  408. char[] enumerationSeparator = new char[] { ',' };
  409. char[] rangeSeparator = new char[] { '-' };
  410. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  411. { //TODO
  412. ConverterPreview.PageIndexLists.Add(0);
  413. Trace.WriteLine("输入不对");
  414. AlertsMessage alertsMessage = new AlertsMessage();
  415. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  416. return;
  417. }
  418. }
  419. if (PageRangeSelectIndex == CheckPageSelect["1"])
  420. {
  421. char[] enumerationSeparator = new char[] { ',' };
  422. char[] rangeSeparator = new char[] { '-' };
  423. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, (currentViewer.CurrentIndex + 1).ToString()
  424. , currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  425. { //TODO
  426. Trace.WriteLine("输入不对");
  427. AlertsMessage alertsMessage = new AlertsMessage();
  428. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  429. return;
  430. }
  431. this.CurrentPageIndex = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
  432. }
  433. // ConverterPreview.PageIndex.Text = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
  434. ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
  435. ConverterPreview.CurrentIndex = 0;
  436. }
  437. }
  438. private void CmbPageTextChangedEvent(object e)
  439. {
  440. var ConverterPreview = e as PageTurningPreview;
  441. if (ConverterPreview != null)
  442. {
  443. if (ConverterPreview != null)
  444. {
  445. string PageRangeSelectIndex = this.PageRangeSelectIndex;
  446. var currentViewer = this.currentViewer;
  447. string PageRange = "";
  448. var PageRangeText = this.PageRangeText;
  449. HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText, !IsCurrentPageIndex);
  450. char[] enumerationSeparator = new char[] { ',' };
  451. char[] rangeSeparator = new char[] { '-' };
  452. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  453. { //TODO
  454. HomePageEditHelper.GetPagerange("0", currentViewer, ref PageRange, PageRangeText, !IsCurrentPageIndex);
  455. if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  456. { //TODO
  457. ConverterPreview.PageIndexLists.Add(0);
  458. Trace.WriteLine("输入不对");
  459. AlertsMessage alertsMessage = new AlertsMessage();
  460. alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
  461. return;
  462. }
  463. ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
  464. ConverterPreview.CurrentIndex = 0;
  465. return;
  466. }
  467. else
  468. {
  469. // ConverterPreview.PageIndex.Text = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
  470. ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
  471. ConverterPreview.CurrentIndex = 0;
  472. }
  473. }
  474. }
  475. }
  476. private void BatchConverter()
  477. {
  478. DialogParameters convertpdftoword = new DialogParameters();
  479. convertpdftoword.Add(ParameterNames.BatchProcessing_Name, "0");
  480. convertpdftoword.Add("ConverterTypeIndex", 1);
  481. HomePageBatchProcessingDialogModel.FilePaths = new List<string> { currentViewer.Document.FilePath.ToString() };
  482. HomePageBatchProcessingDialogModel.BatchProcessingIndex = 1;
  483. convertpdftoword.Add(ParameterNames.FilePath, new string[] { currentViewer.Document.FilePath.ToString() });
  484. dialogs.ShowDialog(DialogNames.HomePageBatchProcessingDialog, convertpdftoword, e => { });
  485. }
  486. private void radiobutton(string e)
  487. {
  488. string radioButton = e;
  489. if (radioButton != null)
  490. {
  491. switch (radioButton)
  492. {
  493. case "AnyContentRadioBtn":
  494. OCRIsEnable = true;
  495. AnyContent(AnyContentSelectIndex);
  496. break;
  497. case "OnlyTableRadioBtn":
  498. OnlyTable(OnlyTableSelectIndex);
  499. OCRIsEnable = false;
  500. break;
  501. case "OnlyTextRadioBtn":
  502. OCRIsEnable = true;
  503. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForTheDocument;
  504. ConverterExcelModel.Options.ContentOpts = ContentOptions.OnlyText;
  505. break;
  506. default:
  507. break;
  508. }
  509. }
  510. }
  511. private void AnyContent(int SelectedIndex)
  512. {
  513. switch (SelectedIndex)
  514. {
  515. case 0:
  516. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForEachPage;
  517. ConverterExcelModel.Options.ContentOpts = ContentOptions.AllContent;
  518. break;
  519. case 1:
  520. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForTheDocument;
  521. ConverterExcelModel.Options.ContentOpts = ContentOptions.AllContent;
  522. break;
  523. default:
  524. break;
  525. }
  526. }
  527. private void OnlyTable(int SelectedIndex)
  528. {
  529. ConverterExcelModel.Options.ContentOpts = ContentOptions.OnlyTable;
  530. switch (SelectedIndex)
  531. {
  532. case 0:
  533. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForEachTable;
  534. break;
  535. case 1:
  536. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForEachPage;
  537. break;
  538. case 2:
  539. ConverterExcelModel.Options.WorksheetOpts = WorksheetOptions.ForTheDocument;
  540. break;
  541. default:
  542. break;
  543. }
  544. }
  545. private void SelectLanguage(int SelectedIndex)
  546. {
  547. switch (SelectedIndex)
  548. {
  549. case 0:
  550. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.COCRLanguageChinese;
  551. break;
  552. case 1:
  553. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.COCRLanguageChineseTraditional;
  554. break;
  555. case 2:
  556. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.COCRLanguageEnglish;
  557. break;
  558. case 3:
  559. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.COCRLanguageJapanese;
  560. break;
  561. case 4:
  562. ConverterExcelModel.Options.OCRLanguage = COCRLanguage.COCRLanguageKorean;
  563. break;
  564. default:
  565. break;
  566. }
  567. }
  568. #endregion
  569. #region 构架行为
  570. public bool CanCloseDialog()
  571. {
  572. return true;
  573. }
  574. public void OnDialogClosed()
  575. {
  576. }
  577. public void OnDialogOpened(IDialogParameters parameters)
  578. {
  579. CPDFViewer pdfViewer = null;
  580. parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out pdfViewer);
  581. parameters.TryGetValue<bool>("PageRangeComboBoxCurrentPage", out IsCurrentPageIndex);
  582. if (pdfViewer != null)
  583. {
  584. InitCheckPageSelect();
  585. currentViewer = pdfViewer;
  586. MaxPageRange = currentViewer.Document.PageCount;
  587. if (currentViewer.Tag != null) { ConverterExcelModel.Pawssword = currentViewer.Tag.ToString(); }
  588. ConverterExcelModel.InputPath = pdfViewer.Document.FilePath;
  589. FileInfo fileinfo = new FileInfo(ConverterExcelModel.InputPath);
  590. ConverterExcelModel.OutputPath = fileinfo.DirectoryName;
  591. }
  592. }
  593. #endregion
  594. }
  595. }