HeaderFooterCreateContentViewModel.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. using ComPDFKit.PDFWatermark;
  2. using ComPDFKitViewer.PdfViewer;
  3. using Microsoft.Office.Interop.Word;
  4. using PDF_Office.EventAggregators;
  5. using PDF_Office.Helper;
  6. using PDF_Office.Model;
  7. using PDF_Office.Model.EditTools.Background;
  8. using PDF_Office.Model.EditTools.Bates;
  9. using PDF_Office.Model.EditTools.HeaderFooter;
  10. using PDF_Office.Model.EditTools.Watermark;
  11. using PDF_Office.Properties;
  12. using PDFSettings;
  13. using Prism.Commands;
  14. using Prism.Events;
  15. using Prism.Mvvm;
  16. using Prism.Regions;
  17. using System;
  18. using System.Collections.Generic;
  19. using System.Diagnostics;
  20. using System.IO;
  21. using System.Linq;
  22. using System.Windows;
  23. using System.Windows.Media;
  24. namespace PDF_Office.ViewModels.EditTools.HeaderFooter
  25. {
  26. public class HeaderFooterCreateContentViewModel : BindableBase, INavigationAware
  27. {
  28. private CPDFViewer PDFViewer;
  29. public HeaderFooterInfo HeaderFooterInfo = new HeaderFooterInfo();
  30. public BatesHeaderFooterItem TemplateHeaderFooterItem;
  31. public enum EnumCreateOrEdit
  32. {
  33. None,
  34. StatusCreate,
  35. StatusEdit
  36. }
  37. private List<string> _fontNameList = new List<string>();
  38. public List<string> FontNameList
  39. {
  40. get { return _fontNameList; }
  41. set
  42. {
  43. SetProperty(ref _fontNameList, value);
  44. }
  45. }
  46. private void InitFontNameList()
  47. {
  48. FontNameList.Clear();
  49. FontNameList.Add("Courier");
  50. FontNameList.Add("Courier-Bold");
  51. FontNameList.Add("Courier-Oblique");
  52. FontNameList.Add("Courier-BoldOblique");
  53. FontNameList.Add("Helvetica");
  54. FontNameList.Add("Helvetica-Bold");
  55. FontNameList.Add("Helvetica-Oblique");
  56. FontNameList.Add("Helvetica-BoldOblique");
  57. FontNameList.Add("Times-Roman");
  58. FontNameList.Add("Times-Bold");
  59. FontNameList.Add("Times-Italic");
  60. FontNameList.Add("Times-BoldItalic");
  61. }
  62. private int _fontNameSelectedIndex = 0;
  63. public int FontNameSelectedIndex
  64. {
  65. get { return _fontNameSelectedIndex; }
  66. set
  67. {
  68. SetProperty(ref _fontNameSelectedIndex, value);
  69. SetFontName(FontNameSelectedIndex);
  70. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  71. {
  72. Unicode = Unicode,
  73. Status = HeaderFooterInfo
  74. });
  75. }
  76. }
  77. private List<string> _fontSizeList = new List<string>();
  78. public List<string> FontSizeList
  79. {
  80. get { return _fontSizeList; }
  81. set
  82. {
  83. SetProperty(ref _fontSizeList, value);
  84. }
  85. }
  86. private void InitFontSizeList()
  87. {
  88. FontSizeList.Clear();
  89. for (int temp = 10; temp <= 15; temp += 1)
  90. {
  91. FontSizeList.Add(temp.ToString() + "pt");
  92. }
  93. }
  94. private int _fontSizeSelectedIndex = 0;
  95. public int FontSizeSelectedIndex
  96. {
  97. get { return _fontSizeSelectedIndex; }
  98. set
  99. {
  100. SetProperty(ref _fontSizeSelectedIndex, value);
  101. SetFontSize(FontSizeSelectedIndex);
  102. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  103. {
  104. Unicode = Unicode,
  105. Status = HeaderFooterInfo
  106. });
  107. }
  108. }
  109. private List<string> _starPagetNumberList = new List<string>();
  110. public List<string> StarPagetNumberList
  111. {
  112. get { return _starPagetNumberList; }
  113. set
  114. {
  115. SetProperty(ref _starPagetNumberList, value);
  116. }
  117. }
  118. private void InitStarPagetNumberList()
  119. {
  120. StarPagetNumberList.Clear();
  121. for (int temp = 10; temp <= 15; temp += 1)
  122. {
  123. StarPagetNumberList.Add(temp.ToString());
  124. }
  125. }
  126. private int _starPagetNumberIndex = 0;
  127. public int StarPagetNumberIndex
  128. {
  129. get { return _starPagetNumberIndex; }
  130. set
  131. {
  132. SetProperty(ref _starPagetNumberIndex, value);
  133. SetStarPagetNumber(StarPagetNumberIndex);
  134. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  135. {
  136. Unicode = Unicode,
  137. Status = HeaderFooterInfo
  138. });
  139. }
  140. }
  141. private List<string> _pageNumberFormatList = new List<string>();
  142. public List<string> PageNumberFormatList
  143. {
  144. get { return _pageNumberFormatList; }
  145. set
  146. {
  147. SetProperty(ref _pageNumberFormatList, value);
  148. }
  149. }
  150. private void InitPageNumberFormatList()
  151. {
  152. PageNumberFormatList.Clear();
  153. PageNumberFormatList.Add("1");
  154. PageNumberFormatList.Add("1 of n");
  155. PageNumberFormatList.Add("1/n");
  156. PageNumberFormatList.Add("Page 1");
  157. PageNumberFormatList.Add("Page 1 of n");
  158. }
  159. private int _pageNumberFormatIndex = 0;
  160. public int PageNumberFormatIndex
  161. {
  162. get { return _pageNumberFormatIndex; }
  163. set
  164. {
  165. SetProperty(ref _pageNumberFormatIndex, value);
  166. SetPageNumberFormat(PageNumberFormatIndex);
  167. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  168. {
  169. Unicode = Unicode,
  170. Status = HeaderFooterInfo
  171. });
  172. }
  173. }
  174. private List<string> _dateTimeFormatList = new List<string>();
  175. public List<string> DateTimeFormatList
  176. {
  177. get { return _dateTimeFormatList; }
  178. set
  179. {
  180. SetProperty(ref _dateTimeFormatList, value);
  181. SetDateTimeFormat(DateTimeFormatIndex);
  182. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  183. {
  184. Unicode = Unicode,
  185. Status = HeaderFooterInfo
  186. });
  187. }
  188. }
  189. private void InitDateTimeFormatList()
  190. {
  191. DateTimeFormatList.Clear();
  192. DateTimeFormatList.Add("m/d");
  193. DateTimeFormatList.Add("m/d/yy");
  194. DateTimeFormatList.Add("m/d/yyyy");
  195. DateTimeFormatList.Add("mm/dd/yy");
  196. DateTimeFormatList.Add("mm/dd/yyyy");
  197. DateTimeFormatList.Add("d/m/yy");
  198. DateTimeFormatList.Add("d/m/yyyy");
  199. DateTimeFormatList.Add("dd/mm/yy");
  200. DateTimeFormatList.Add("dd/mm/yyyy");
  201. DateTimeFormatList.Add("mm/yy");
  202. DateTimeFormatList.Add("mm/yyyy");
  203. DateTimeFormatList.Add("m.d.yy");
  204. DateTimeFormatList.Add("m.d.yyyy");
  205. DateTimeFormatList.Add("mm.dd.yy");
  206. DateTimeFormatList.Add("mm.dd.yyyy");
  207. DateTimeFormatList.Add("mm.yy");
  208. DateTimeFormatList.Add("mm.yyyy");
  209. DateTimeFormatList.Add("d.m.yy");
  210. DateTimeFormatList.Add("dd.mm.yy");
  211. DateTimeFormatList.Add("dd.mm.yyyy");
  212. DateTimeFormatList.Add("yy-mm-dd");
  213. DateTimeFormatList.Add("yyyy-mm-dd");
  214. }
  215. private int _dateTimeFormatIndex = 0;
  216. public int DateTimeFormatIndex
  217. {
  218. get { return _dateTimeFormatIndex; }
  219. set
  220. {
  221. SetProperty(ref _dateTimeFormatIndex, value);
  222. SetDateTimeFormat(DateTimeFormatIndex);
  223. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  224. {
  225. Unicode = Unicode,
  226. Status = HeaderFooterInfo
  227. });
  228. }
  229. }
  230. public string _pageRangeText = "0";
  231. public string PageRangeText
  232. {
  233. get { return _pageRangeText; }
  234. set
  235. {
  236. _pageRangeText = value;
  237. EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref HeaderFooterInfo.PageRange, PageRangeText);
  238. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  239. {
  240. Unicode = Unicode,
  241. Status = HeaderFooterInfo
  242. });
  243. }
  244. }
  245. private int _pageRangeSelectIndex = 0;
  246. public int PageRangeSelectIndex
  247. {
  248. get { return _pageRangeSelectIndex; }
  249. set
  250. {
  251. SetProperty(ref _pageRangeSelectIndex, value);
  252. HeaderFooterInfo.PageRangeIndex = PageRangeSelectIndex;
  253. EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref HeaderFooterInfo.PageRange, PageRangeText);
  254. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  255. {
  256. Unicode = Unicode,
  257. Status = HeaderFooterInfo
  258. });
  259. }
  260. }
  261. private SolidColorBrush _solidColorBrush = new SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0x00, 0x00));
  262. public SolidColorBrush SolidColorBrush
  263. {
  264. get
  265. {
  266. return _solidColorBrush;
  267. }
  268. set
  269. {
  270. SetProperty(ref _solidColorBrush, value);
  271. }
  272. }
  273. private Color _stringColor = Color.FromArgb(0xFF, 0xFF, 0x00, 0x00);
  274. public Color StringColor
  275. {
  276. get
  277. {
  278. return _stringColor;
  279. }
  280. set
  281. {
  282. SetProperty(ref _stringColor, value);
  283. SolidColorBrush = new SolidColorBrush(StringColor);
  284. for (int i = 0; i <= 5; i++)
  285. {
  286. HeaderFooterInfo.TextData[i].Color = EditToolsHelper.ConvertColor(value);
  287. }
  288. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  289. {
  290. Unicode = Unicode,
  291. Status = HeaderFooterInfo
  292. });
  293. }
  294. }
  295. private EnumCreateOrEdit _createOrEdit;
  296. public EnumCreateOrEdit CreateOrEdit
  297. {
  298. get { return _createOrEdit; }
  299. set
  300. {
  301. _createOrEdit = value;
  302. if (value == EnumCreateOrEdit.StatusEdit)
  303. {
  304. EditBaseVisible = Visibility.Visible;
  305. CreateBaseVisible = Visibility.Collapsed;
  306. }
  307. else if (value == EnumCreateOrEdit.StatusCreate)
  308. {
  309. CreateBaseVisible = Visibility.Visible;
  310. EditBaseVisible = Visibility.Collapsed;
  311. }
  312. }
  313. }
  314. private Visibility _createBaseVisible;
  315. public Visibility CreateBaseVisible
  316. {
  317. get => _createBaseVisible;
  318. set => SetProperty(ref _createBaseVisible, value);
  319. }
  320. private Visibility _editBaseVisible;
  321. public Visibility EditBaseVisible
  322. {
  323. get => _editBaseVisible;
  324. set => SetProperty(ref _editBaseVisible, value);
  325. }
  326. private string _marginTopValue = "3";
  327. public string MarginTopValue
  328. {
  329. get { return _marginTopValue; }
  330. set
  331. {
  332. SetProperty(ref _marginTopValue, value);
  333. HeaderFooterInfo.margin[1] = float.Parse(MarginTopValue);
  334. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  335. {
  336. Unicode = Unicode,
  337. Status = HeaderFooterInfo
  338. });
  339. }
  340. }
  341. private string _marginDownValue = "3";
  342. public string MarginDownValue
  343. {
  344. get { return _marginDownValue; }
  345. set
  346. {
  347. SetProperty(ref _marginDownValue, value);
  348. HeaderFooterInfo.margin[3] = float.Parse(MarginDownValue);
  349. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  350. {
  351. Unicode = Unicode,
  352. Status = HeaderFooterInfo
  353. });
  354. }
  355. }
  356. private string _marginLeftValue = "3";
  357. public string MarginLeftValue
  358. {
  359. get { return _marginLeftValue; }
  360. set
  361. {
  362. SetProperty(ref _marginLeftValue, value);
  363. HeaderFooterInfo.margin[0] = float.Parse(MarginLeftValue);
  364. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  365. {
  366. Unicode = Unicode,
  367. Status = HeaderFooterInfo
  368. });
  369. }
  370. }
  371. private string _marginRightValue = "3";
  372. public string MarginRightValue
  373. {
  374. get { return _marginRightValue; }
  375. set
  376. {
  377. SetProperty(ref _marginRightValue, value);
  378. HeaderFooterInfo.margin[2] = float.Parse(MarginRightValue);
  379. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  380. {
  381. Unicode = Unicode,
  382. Status = HeaderFooterInfo
  383. });
  384. }
  385. }
  386. private string _textValue = "";
  387. public string TextValue
  388. {
  389. get { return _textValue; }
  390. set
  391. {
  392. SetProperty(ref _textValue, value);
  393. }
  394. }
  395. public int GetLocationIndex = 0;
  396. private Dictionary<string, string> _getTextValueFromNumber = new Dictionary<string, string>();
  397. public Dictionary<string, string> GetTextValueFromNumber
  398. {
  399. get { return _getTextValueFromNumber; }
  400. set
  401. {
  402. _getTextValueFromNumber = value;
  403. }
  404. }
  405. public IEventAggregator eventAggregator;
  406. public DelegateCommand<object> ChangeLocationCommand { get; set; }
  407. public DelegateCommand EnterTemplateListCommand { get; set; }
  408. public DelegateCommand SaveToTemplateListCommand { get; set; }
  409. public DelegateCommand SaveToCurrentTemplateListCommand { get; set; }
  410. public DelegateCommand<object> SelectedColorChangedCommand { get; set; }
  411. public DelegateCommand<object> TextValueChangedCommand { get; set; }
  412. public DelegateCommand ADDDateCommand { get; set; }
  413. public DelegateCommand ADDPagesCommand { get; set; }
  414. public string Unicode = null;
  415. public HeaderFooterCreateContentViewModel(IEventAggregator eventAggregator)
  416. {
  417. this.eventAggregator = eventAggregator;
  418. Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
  419. for (int i = 0; i <= 5; i++)
  420. {
  421. HeaderFooterInfo.TextData[i].Color = EditToolsHelper.ConvertColor(Color.FromArgb(0xFF, 0xFF, 0x00, 0x00));
  422. }
  423. InitList();
  424. InitHeaderFooterInfo();
  425. ChangeLocationCommand = new DelegateCommand<object>(ChangeLocation);
  426. SelectedColorChangedCommand = new DelegateCommand<object>(ChangedColor);
  427. EnterTemplateListCommand = new DelegateCommand(EnterTemplateList);
  428. SaveToTemplateListCommand = new DelegateCommand(SaveToTemplateList);
  429. SaveToCurrentTemplateListCommand = new DelegateCommand(SaveToCurrentTemplateList);
  430. TextValueChangedCommand = new DelegateCommand<object>(TextValueChanged);
  431. ADDDateCommand = new DelegateCommand(ADDDate);
  432. ADDPagesCommand = new DelegateCommand(ADDPages);
  433. }
  434. private void InitList()
  435. {
  436. InitFontNameList();
  437. InitFontSizeList();
  438. InitStarPagetNumberList();
  439. InitDateTimeFormatList();
  440. InitPageNumberFormatList();
  441. InitLocationButtonMatrix();
  442. }
  443. private void InitLocationButtonMatrix()
  444. {
  445. GetTextValueFromNumber.Clear();
  446. for (var temp = 0; temp <= 5; temp++)
  447. {
  448. GetTextValueFromNumber.Add(temp.ToString(), "");
  449. }
  450. }
  451. private void InitHeaderFooterInfo()
  452. {
  453. for (int i = 0; i <= 5; i++)
  454. {
  455. HeaderFooterInfo.TextData[i].text = GetTextValueFromNumber[i.ToString()];
  456. }
  457. HeaderFooterInfo.margin[0] = float.Parse(MarginTopValue);
  458. HeaderFooterInfo.margin[1] = float.Parse(MarginRightValue);
  459. HeaderFooterInfo.margin[2] = float.Parse(MarginDownValue);
  460. HeaderFooterInfo.margin[3] = float.Parse(MarginLeftValue);
  461. SetFontName(FontNameSelectedIndex);
  462. SetFontSize(FontSizeSelectedIndex);
  463. SetDateTimeFormat(DateTimeFormatIndex);
  464. SetPageNumberFormat(PageNumberFormatIndex);
  465. SetStarPagetNumber(StarPagetNumberIndex);
  466. StringColor = Color.FromArgb(0xFF, 0xFF, 0x00, 0x00);
  467. }
  468. private void SetFontName(int Index)
  469. {
  470. for (int i = 0; i <= 5; i++) { HeaderFooterInfo.TextData[i].fontName = FontNameList[Index]; }
  471. }
  472. private void SetFontSize(int Index)
  473. {
  474. for (int i = 0; i <= 5; i++) { HeaderFooterInfo.TextData[i].fontSize = (Index + 7) * 1.33f; }
  475. }
  476. private void SetDateTimeFormat(int Index)
  477. {
  478. HeaderFooterInfo.DateTimeFormat = DateTimeFormatList[Index];
  479. }
  480. private void SetPageNumberFormat(int Index)
  481. {
  482. HeaderFooterInfo.PageNumberFormat = PageNumberFormatList[Index];
  483. }
  484. private void SetStarPagetNumber(int Index)
  485. {
  486. HeaderFooterInfo.StarPagetNumber = Index;
  487. }
  488. public void ChangeLocation(object e)
  489. {
  490. string args = e as string;
  491. if (args != null)
  492. {
  493. GetLocationIndex = int.Parse(args);
  494. TextValue = GetTextValueFromNumber[args];
  495. }
  496. }
  497. private void ChangedColor(object obj)
  498. {
  499. if (obj != null)
  500. {
  501. var colorValue = (Color)obj;
  502. if (colorValue != null)
  503. {
  504. StringColor = colorValue;
  505. }
  506. }
  507. }
  508. public void EnterTemplateList()
  509. {
  510. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode { Unicode = Unicode, Status = EnumTemplateListOrCreate.StatusTemplate });
  511. }
  512. public void SaveToTemplateList()
  513. {
  514. SaveCurrentTemplate();
  515. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode { Unicode = Unicode, Status = EnumTemplateListOrCreate.StatusTemplate });
  516. }
  517. public void SaveToCurrentTemplateList()
  518. {
  519. ConfirmEditBackgroundTemplateItem();
  520. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode { Unicode = Unicode, Status = EnumTemplateListOrCreate.StatusTemplate });
  521. }
  522. private void TextValueChanged(object obj)
  523. {
  524. if (obj != null)
  525. {
  526. var textValue = obj as System.Windows.Controls.TextBox;
  527. if (textValue != null)
  528. {
  529. bool TextEQ=true;
  530. if (GetTextValueFromNumber[GetLocationIndex.ToString()] == textValue.Text) {
  531. TextEQ = false;
  532. }
  533. GetTextValueFromNumber[GetLocationIndex.ToString()] = textValue.Text;
  534. HeaderFooterInfo.TextData[GetLocationIndex].text = GetTextValueFromNumber[GetLocationIndex.ToString()];
  535. if (TextEQ)
  536. {
  537. eventAggregator.GetEvent<SetHeaderFooterEvent>().Publish(new HeaderFooterInfoUnicode
  538. {
  539. Unicode = Unicode,
  540. Status = HeaderFooterInfo
  541. });
  542. }
  543. }
  544. }
  545. }
  546. public void ADDDate() {
  547. GetTextValueFromNumber[GetLocationIndex.ToString()] = GetTextValueFromNumber[GetLocationIndex.ToString()] + "<<"+DateTimeFormatList[DateTimeFormatIndex]+">>";
  548. TextValue = GetTextValueFromNumber[GetLocationIndex.ToString()];
  549. }
  550. public void ADDPages() {
  551. GetTextValueFromNumber[GetLocationIndex.ToString()] = GetTextValueFromNumber[GetLocationIndex.ToString()] + "<<" + PageNumberFormatList[PageNumberFormatIndex] + ">>";
  552. TextValue = GetTextValueFromNumber[GetLocationIndex.ToString()];
  553. }
  554. public void ConvertInfoToItem(ref BatesHeaderFooterItem headerFooterItem, HeaderFooterInfo headerFooterInfo)
  555. {
  556. headerFooterItem.TextData = headerFooterInfo.TextData ;
  557. headerFooterItem.DateTimeFormat = headerFooterInfo.DateTimeFormat;
  558. headerFooterItem.StarPagetNumber= headerFooterInfo.StarPagetNumber ;
  559. headerFooterItem.PageNumberFormat= headerFooterInfo.PageNumberFormat ;
  560. headerFooterItem.margin= headerFooterInfo.margin ;
  561. headerFooterItem.PageRange= headerFooterInfo.PageRange ;
  562. headerFooterItem.PageRangeIndex= headerFooterInfo.PageRangeIndex ;
  563. }
  564. public void ConvertItemToInfo(BatesHeaderFooterItem headerFooterItem, ref HeaderFooterInfo headerFooterInfo)
  565. {
  566. headerFooterInfo.TextData = headerFooterItem.TextData;
  567. headerFooterInfo.DateTimeFormat = headerFooterItem.DateTimeFormat;
  568. headerFooterInfo.StarPagetNumber = headerFooterItem.StarPagetNumber;
  569. headerFooterInfo.PageNumberFormat = headerFooterItem.PageNumberFormat;
  570. headerFooterInfo.margin = headerFooterItem.margin;
  571. headerFooterInfo.PageRange = headerFooterItem.PageRange;
  572. headerFooterInfo.PageRangeIndex = headerFooterItem.PageRangeIndex;
  573. }
  574. public void SaveCurrentTemplate()
  575. {
  576. var headerFooterItem = new BatesHeaderFooterItem();
  577. ConvertInfoToItem(ref headerFooterItem, HeaderFooterInfo);
  578. headerFooterItem.ItemName += Settings.Default.HeaderFooterIndex.ToString();
  579. try
  580. {
  581. //创建缓存文件夹
  582. string folderPath = Path.Combine(App.CurrentPath, "HeaderFooter");
  583. //有可能因为其他原因存在同名文件,导致创建文件夹失败,需要先删除同名文件
  584. //保险措施(猜测)
  585. if (File.Exists(folderPath))
  586. {
  587. File.Delete(folderPath);
  588. }
  589. DirectoryInfo tempfolder = new DirectoryInfo(folderPath);
  590. if (!tempfolder.Exists)
  591. {
  592. tempfolder.Create();
  593. }
  594. //预览图缓存
  595. string saveName = Guid.NewGuid().ToString();
  596. string savePath = Path.Combine(folderPath, saveName);
  597. Settings.Default.HeaderFooterTemplateList.Add(headerFooterItem);
  598. Settings.Default.Save();
  599. }
  600. catch
  601. {
  602. }
  603. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
  604. {
  605. Unicode = Unicode,
  606. Status = EnumTemplateListOrCreate.StatusTemplate
  607. });
  608. }
  609. public void ConfirmEditBackgroundTemplateItem()
  610. {
  611. var headerFooterItem = new BatesHeaderFooterItem();
  612. ConvertInfoToItem(ref headerFooterItem, HeaderFooterInfo);
  613. try
  614. {
  615. //创建缓存文件夹
  616. string folderPath = Path.Combine(App.CurrentPath, "Background");
  617. //有可能因为其他原因存在同名文件,导致创建文件夹失败,需要先删除同名文件
  618. //保险措施(猜测)
  619. if (File.Exists(folderPath))
  620. {
  621. File.Delete(folderPath);
  622. }
  623. DirectoryInfo tempfolder = new DirectoryInfo(folderPath);
  624. if (!tempfolder.Exists)
  625. {
  626. tempfolder.Create();
  627. }
  628. Settings.Default.HeaderFooterTemplateList[TemplateHeaderFooterItem.listIndex] = headerFooterItem;
  629. Settings.Default.Save();
  630. }
  631. catch
  632. {
  633. }
  634. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
  635. {
  636. Unicode = Unicode,
  637. Status = EnumTemplateListOrCreate.StatusTemplate
  638. });
  639. }
  640. public void InitComponentBySelectedInfo()
  641. {
  642. ConvertItemToInfo(TemplateHeaderFooterItem, ref HeaderFooterInfo);
  643. for (int i = 0; i <= 5; i++)
  644. {
  645. GetTextValueFromNumber[i.ToString()] = HeaderFooterInfo.TextData[i].text;
  646. }
  647. MarginTopValue = HeaderFooterInfo.margin[0].ToString();
  648. MarginRightValue = HeaderFooterInfo.margin[1].ToString();
  649. MarginDownValue = HeaderFooterInfo.margin[2].ToString();
  650. MarginLeftValue = HeaderFooterInfo.margin[3].ToString();
  651. DateTimeFormatIndex=DateTimeFormatList.IndexOf(HeaderFooterInfo.DateTimeFormat);
  652. PageNumberFormatIndex=PageNumberFormatList.IndexOf(HeaderFooterInfo.PageNumberFormat);
  653. FontNameSelectedIndex = FontNameList.IndexOf(HeaderFooterInfo.TextData[0].fontName);
  654. FontSizeSelectedIndex = FontSizeList.IndexOf(HeaderFooterInfo.TextData[0].fontSize.ToString());
  655. StarPagetNumberIndex = StarPagetNumberList.IndexOf(HeaderFooterInfo.StarPagetNumber.ToString());
  656. StringColor = EditToolsHelper.ConvertColor(HeaderFooterInfo.TextData[0].Color);
  657. }
  658. public bool IsNavigationTarget(NavigationContext navigationContext)
  659. {
  660. return true;
  661. }
  662. public void OnNavigatedFrom(NavigationContext navigationContext)
  663. {
  664. }
  665. public void OnNavigatedTo(NavigationContext navigationContext)
  666. {
  667. navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
  668. EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref HeaderFooterInfo.PageRange, PageRangeText);
  669. if (navigationContext.Parameters.TryGetValue<BatesHeaderFooterItem>("HeaderFooterItem", out TemplateHeaderFooterItem))
  670. {
  671. CreateOrEdit = EnumCreateOrEdit.StatusEdit;
  672. InitComponentBySelectedInfo();
  673. }
  674. else
  675. {
  676. CreateOrEdit = EnumCreateOrEdit.StatusCreate;
  677. }
  678. }
  679. }
  680. }