FontStyleItem.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. using PDF_Master.CustomControl.CompositeControl;
  2. using PDF_Master.Properties;
  3. using PDFSettings;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. using System.Windows.Media;
  11. namespace PDF_Master.Model.PropertyPanel.AnnotPanel
  12. {
  13. public class TextFont
  14. {
  15. //获取本地缓存数据
  16. public static List<PresetFontItem> GetCachePresetFontList()
  17. {
  18. List<PresetFontItem> cacheTempList = new List<PresetFontItem>();
  19. if (Settings.Default.PresetFontList == null)
  20. Settings.Default.PresetFontList = new PresetFontList();
  21. if (Settings.Default.PresetFontList.Count == 0)
  22. {
  23. cacheTempList = GetPresetFontStyle();
  24. foreach (var cacheItem in cacheTempList)
  25. {
  26. var newItem = new PresetFontItem();
  27. newItem.mTag = cacheItem.mTag;
  28. newItem.mTagContent = cacheItem.mTagContent;
  29. newItem.mFontStyle = cacheItem.mFontStyle;
  30. newItem.mFontWeight = cacheItem.mFontWeight;
  31. newItem.mFontSize = cacheItem.mFontSize;
  32. newItem.mFontFamily = cacheItem.mFontFamily;
  33. Settings.Default.PresetFontList.Add(newItem);
  34. }
  35. Settings.Default.Save();
  36. }
  37. else
  38. {
  39. foreach (var item in Settings.Default.PresetFontList)
  40. {
  41. var newItem = new PresetFontItem();
  42. newItem.mTag = item.mTag;
  43. newItem.mTagContent = item.mTagContent;
  44. newItem.mFontStyle = item.mFontStyle;
  45. newItem.mFontWeight = item.mFontWeight;
  46. newItem.mFontSize = item.mFontSize;
  47. newItem.mFontFamily = item.mFontFamily;
  48. cacheTempList.Add(newItem);
  49. }
  50. }
  51. return cacheTempList;
  52. }
  53. //保存到本地缓存数据
  54. public static void SavePresetFontList(List<PresetFontItem> list)
  55. {
  56. if (list == null) return;
  57. if (Settings.Default.PresetFontList == null)
  58. Settings.Default.PresetFontList = new PresetFontList();
  59. bool isCanSave = false;
  60. List<PresetFontItem> TempLists = new List<PresetFontItem>();
  61. foreach (var item in list)
  62. {
  63. var cacheItem = Settings.Default.PresetFontList.FirstOrDefault(temp => temp.mTag == item.mTag);
  64. if (cacheItem != null)
  65. {
  66. if (cacheItem.mFontFamily.Source != item.mFontFamily.Source ||
  67. cacheItem.mFontSize != item.mFontSize ||
  68. cacheItem.mFontStyle != item.mFontStyle ||
  69. cacheItem.mFontWeight != item.mFontWeight
  70. )
  71. {
  72. isCanSave = true;
  73. var index = Settings.Default.PresetFontList.FindIndex(temp => temp.mTag == cacheItem.mTag);
  74. if (index != -1)
  75. {
  76. Settings.Default.PresetFontList.Remove(cacheItem);
  77. Settings.Default.PresetFontList.Insert(index, item);
  78. }
  79. //cacheItem.mFontFamily = new FontFamily(item.mFontFamily.Source);
  80. //cacheItem.mFontSize = item.mFontSize;
  81. //cacheItem.mFontStyle = item.mFontStyle;
  82. //cacheItem.mFontWeight = item.mFontWeight;
  83. break;
  84. }
  85. }
  86. else
  87. {
  88. TempLists.Add(item);
  89. }
  90. }
  91. foreach (var itemTemp in TempLists)
  92. {
  93. Settings.Default.PresetFontList.Add(itemTemp);
  94. }
  95. if (isCanSave)
  96. Settings.Default.Save();
  97. }
  98. public static void BackDefaultPresetFontStyle(string tag)
  99. {
  100. bool isCanSave = false;
  101. var list = GetPresetFontStyle();
  102. var itemDefault = list.FirstOrDefault(temp => temp.mTag == tag);
  103. if (Settings.Default.PresetFontList == null)
  104. Settings.Default.PresetFontList = new PresetFontList();
  105. if (Settings.Default.PresetFontList.Count == 0)
  106. {
  107. Settings.Default.PresetFontList.Add(itemDefault);
  108. isCanSave = true;
  109. }
  110. else
  111. {
  112. foreach (var item in Settings.Default.PresetFontList)
  113. {
  114. if (item.mTag == itemDefault.mTag)
  115. {
  116. item.mTagContent = itemDefault.mTagContent;
  117. item.mFontFamily = itemDefault.mFontFamily;
  118. item.mFontWeight = itemDefault.mFontWeight;
  119. item.mFontStyle = itemDefault.mFontStyle;
  120. item.mFontSize = itemDefault.mFontSize;
  121. isCanSave = true;
  122. break;
  123. }
  124. }
  125. }
  126. if (isCanSave == true)
  127. Settings.Default.Save();
  128. }
  129. //获取拟定的预设样式
  130. public static List<PresetFontItem> GetPresetFontStyle()
  131. {
  132. List<PresetFontItem> fontStyleList = new List<PresetFontItem>();
  133. PresetFontItem custom = new PresetFontItem();
  134. custom.mTag = "Custom";
  135. custom.mTagContent = App.MainPageLoader.GetString("PresetTextStyle_Customize");
  136. custom.mFontSize = 24;
  137. custom.mFontFamily = new FontFamily("Helvetica");
  138. custom.mFontStyle = FontStyles.Normal;
  139. custom.mFontWeight = FontWeights.Normal;
  140. PresetFontItem h1 = new PresetFontItem();
  141. h1.mTag = "H1";
  142. h1.mTagContent = App.MainPageLoader.GetString("PresetTextStyle_H1Title");
  143. h1.mFontSize = 36;
  144. h1.mFontFamily = new FontFamily("Helvetica");
  145. h1.mFontStyle = FontStyles.Normal;
  146. h1.mFontWeight = FontWeights.Bold;
  147. PresetFontItem h2 = new PresetFontItem();
  148. h2.mTag = "H2";
  149. h2.mTagContent = App.MainPageLoader.GetString("PresetTextStyle_H2Title");
  150. h2.mFontSize = 24;
  151. h2.mFontFamily = new FontFamily("Helvetica");
  152. h2.mFontStyle = FontStyles.Normal;
  153. h2.mFontWeight = FontWeights.Bold;
  154. PresetFontItem h3 = new PresetFontItem();
  155. h3.mTag = "H3";
  156. h3.mTagContent = App.MainPageLoader.GetString("PresetTextStyle_H3Title");
  157. h3.mFontSize = 18;
  158. h3.mFontFamily = new FontFamily("Helvetica");
  159. h3.mFontStyle = FontStyles.Normal;
  160. h3.mFontWeight = FontWeights.Bold;
  161. PresetFontItem b1 = new PresetFontItem();
  162. b1.mTag = "B1";
  163. b1.mTagContent = App.MainPageLoader.GetString("PresetTextStyle_B1NormalTextStandard");
  164. b1.mFontSize = 14;
  165. b1.mFontFamily = new FontFamily("Helvetica");
  166. b1.mFontStyle = FontStyles.Normal;
  167. b1.mFontWeight = FontWeights.Regular;
  168. PresetFontItem b2 = new PresetFontItem();
  169. b2.mTag = "B2";
  170. b2.mTagContent = App.MainPageLoader.GetString("PresetTextStyle_B2NormalTextSmall");
  171. b2.mFontSize = 12;
  172. b2.mFontFamily = new FontFamily("Helvetica");
  173. b2.mFontStyle = FontStyles.Normal;
  174. b2.mFontWeight = FontWeights.Regular;
  175. PresetFontItem b3 = new PresetFontItem();
  176. b3.mTag = "B3";
  177. b3.mTagContent = App.MainPageLoader.GetString("PresetTextStyle_B3Description");
  178. b3.mFontSize = 11;
  179. b3.mFontFamily = new FontFamily("Helvetica");
  180. b3.mFontStyle = FontStyles.Normal;
  181. b3.mFontWeight = FontWeights.Regular;
  182. fontStyleList.Add(custom);
  183. fontStyleList.Add(h1);
  184. fontStyleList.Add(h2);
  185. fontStyleList.Add(h3);
  186. fontStyleList.Add(b1);
  187. fontStyleList.Add(b2);
  188. fontStyleList.Add(b3);
  189. return fontStyleList;
  190. }
  191. public static List<ComboDataItem> GetFontStyle()
  192. {
  193. var FontStyleItems = new List<ComboDataItem>();
  194. ComboDataItem item = new ComboDataItem("Regular", "Regular");
  195. FontStyleItems.Add(item);
  196. item = new ComboDataItem("Bold", "Bold");
  197. FontStyleItems.Add(item);
  198. item = new ComboDataItem("Italic", "Italic");
  199. FontStyleItems.Add(item);
  200. item = new ComboDataItem("Bold Italic", "Bold Italic");
  201. FontStyleItems.Add(item);
  202. return FontStyleItems;
  203. }
  204. internal static List<ComboDataItem> GetFontSize()
  205. {
  206. var FontSizeItems = new List<ComboDataItem>();
  207. ComboDataItem item = new ComboDataItem(8);
  208. FontSizeItems.Add(item);
  209. item = new ComboDataItem(9);
  210. FontSizeItems.Add(item);
  211. item = new ComboDataItem(10);
  212. FontSizeItems.Add(item);
  213. item = new ComboDataItem(11);
  214. FontSizeItems.Add(item);
  215. item = new ComboDataItem(12);
  216. FontSizeItems.Add(item);
  217. item = new ComboDataItem(14);
  218. FontSizeItems.Add(item);
  219. item = new ComboDataItem(16);
  220. FontSizeItems.Add(item);
  221. item = new ComboDataItem(18);
  222. FontSizeItems.Add(item);
  223. item = new ComboDataItem(20);
  224. FontSizeItems.Add(item);
  225. item = new ComboDataItem(22);
  226. FontSizeItems.Add(item);
  227. item = new ComboDataItem(24);
  228. FontSizeItems.Add(item);
  229. item = new ComboDataItem(26);
  230. FontSizeItems.Add(item);
  231. item = new ComboDataItem(28);
  232. FontSizeItems.Add(item);
  233. item = new ComboDataItem(36);
  234. FontSizeItems.Add(item);
  235. item = new ComboDataItem(48);
  236. FontSizeItems.Add(item);
  237. item = new ComboDataItem(72);
  238. FontSizeItems.Add(item);
  239. return FontSizeItems;
  240. }
  241. public static List<ComboDataItem> GetFamily()
  242. {
  243. var FontFamilyItems = new List<ComboDataItem>();
  244. ComboDataItem item = new ComboDataItem("Courier", "Courier New");
  245. FontFamilyItems.Add(item);
  246. item = new ComboDataItem("Helvetica", "Helvetica");
  247. FontFamilyItems.Add(item);
  248. item = new ComboDataItem(/*"Times-Roman"*/"Times", "Times New Roman");
  249. FontFamilyItems.Add(item);
  250. return FontFamilyItems;
  251. }
  252. public static List<ComboDataItem> GetDateFormats()
  253. {
  254. var dateFormatItems = new List<ComboDataItem>();
  255. foreach (var itemFormat in GetTimesFormats())
  256. {
  257. ComboDataItem item = new ComboDataItem(itemFormat, "format");
  258. dateFormatItems.Add(item);
  259. }
  260. return dateFormatItems;
  261. }
  262. private static List<string> GetTimesFormats()
  263. {
  264. List<string> TimesItems = new List<string>();
  265. TimesItems.Add("yyyy年M月d日");
  266. TimesItems.Add("M/d");
  267. TimesItems.Add("M/d/yy");
  268. TimesItems.Add("M/d/yyyy");
  269. TimesItems.Add("MM/dd/yy");
  270. TimesItems.Add("MM/dd/yyyy");
  271. TimesItems.Add("d/M/yy");
  272. TimesItems.Add("d/M/yyyy");
  273. TimesItems.Add("dd/MM/yy");
  274. TimesItems.Add("dd/MM/yyyy");
  275. TimesItems.Add("MM/yy");
  276. TimesItems.Add("MM/yyyy");
  277. TimesItems.Add("M.d.yy");
  278. TimesItems.Add("M.d.yyyy");
  279. TimesItems.Add("MM.dd.yy");
  280. TimesItems.Add("MM.dd.yyyy");
  281. TimesItems.Add("MM.yy");
  282. TimesItems.Add("MM.yyyy");
  283. TimesItems.Add("d.M.yy");
  284. TimesItems.Add("d.M.yyyy");
  285. TimesItems.Add("dd.MM.yy");
  286. TimesItems.Add("dd.MM.yyyy");
  287. TimesItems.Add("yy-MM-dd");
  288. TimesItems.Add("yyyy-MM-dd");
  289. return TimesItems;
  290. }
  291. }
  292. }