ReportServiceGears.cs 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.Serialization;
  5. using System.ServiceModel;
  6. using System.Text;
  7. using System.IO;
  8. using System.Configuration;
  9. using FastReport;
  10. using FastReport.Utils;
  11. using System.Collections;
  12. using FastReport.Data;
  13. namespace FastReport.Service
  14. {
  15. public partial class ReportService : IFastReportService
  16. {
  17. public List<GearItem> GetGearListXml()
  18. {
  19. return GetGearList();
  20. }
  21. public List<GearItem> GetGearList()
  22. {
  23. List<GearItem> list = new List<GearItem>();
  24. string gearsConf = ConfigurationManager.AppSettings["FastReport.Gear"];
  25. string[] listGears = gearsConf.Split(',');
  26. foreach (string gearName in listGears)
  27. {
  28. switch (gearName)
  29. {
  30. case "FPX":
  31. list.Add(RegisterFPX());
  32. break;
  33. case "PDF":
  34. list.Add(RegisterPDF());
  35. break;
  36. case "DOCX":
  37. list.Add(RegisterDOCX());
  38. break;
  39. case "XLSX":
  40. list.Add(RegisterXLSX());
  41. break;
  42. case "PPTX":
  43. list.Add(RegisterPPTX());
  44. break;
  45. case "ODS":
  46. list.Add(RegisterODS());
  47. break;
  48. case "ODT":
  49. list.Add(RegisterODT());
  50. break;
  51. case "MHT":
  52. list.Add(RegisterMHT());
  53. break;
  54. case "DBF":
  55. list.Add(RegisterDBF());
  56. break;
  57. case "XML":
  58. list.Add(RegisterXML());
  59. break;
  60. case "TXT":
  61. list.Add(RegisterTXT());
  62. break;
  63. case "RTF":
  64. list.Add(RegisterRTF());
  65. break;
  66. case "HTML":
  67. list.Add(RegisterHTML());
  68. break;
  69. }
  70. }
  71. return list;
  72. }
  73. private Dictionary<string, string> GetDefaultProp()
  74. {
  75. Dictionary<string, string> prop = new Dictionary<string, string>();
  76. prop.Add("Zoom", "1.0");
  77. prop.Add("PageRange", "All");
  78. prop.Add("PageNumbers", "");
  79. return prop;
  80. }
  81. private GearItem RegisterFPX()
  82. {
  83. GearItem item = new GearItem();
  84. item.Name = "FPX";
  85. item.Extension = ".fpx";
  86. item.MimeType = "application/fpx";
  87. return item;
  88. }
  89. private GearItem RegisterPDF()
  90. {
  91. GearItem item = new GearItem();
  92. item.Name = "PDF";
  93. item.Extension = ".pdf";
  94. item.MimeType = "application/pdf";
  95. item.Properties = GetDefaultProp();
  96. // add properties
  97. item.Properties.Add("EmbeddingFonts", "true");
  98. item.Properties.Add("PdfA", "false");
  99. item.Properties.Add("Background", "true");
  100. item.Properties.Add("PrintOptimized", "true");
  101. item.Properties.Add("Title", "");
  102. item.Properties.Add("Author", "");
  103. item.Properties.Add("Subject", "");
  104. item.Properties.Add("Keywords", "");
  105. item.Properties.Add("Creator", "FastReport");
  106. item.Properties.Add("Producer", "FastReport.NET");
  107. return item;
  108. }
  109. private GearItem RegisterXLSX()
  110. {
  111. GearItem item = new GearItem();
  112. item.Name = "XLSX";
  113. item.Extension = ".xlsx";
  114. item.MimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
  115. item.Properties = GetDefaultProp();
  116. // add properties
  117. return item;
  118. }
  119. private GearItem RegisterDOCX()
  120. {
  121. GearItem item = new GearItem();
  122. item.Name = "DOCX";
  123. item.Extension = ".docx";
  124. item.MimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
  125. item.Properties = GetDefaultProp();
  126. // add properties
  127. return item;
  128. }
  129. private GearItem RegisterPPTX()
  130. {
  131. GearItem item = new GearItem();
  132. item.Name = "PPTX";
  133. item.Extension = ".pptx";
  134. item.MimeType = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
  135. item.Properties = GetDefaultProp();
  136. // add properties
  137. return item;
  138. }
  139. private GearItem RegisterODS()
  140. {
  141. GearItem item = new GearItem();
  142. item.Name = "ODS";
  143. item.Extension = ".ods";
  144. item.MimeType = "application/vnd.oasis.opendocument.spreadsheet";
  145. item.Properties = GetDefaultProp();
  146. // add properties
  147. return item;
  148. }
  149. private GearItem RegisterODT()
  150. {
  151. GearItem item = new GearItem();
  152. item.Name = "ODT";
  153. item.Extension = ".odt";
  154. item.MimeType = "application/vnd.oasis.opendocument.text";
  155. item.Properties = GetDefaultProp();
  156. // add properties
  157. return item;
  158. }
  159. private GearItem RegisterMHT()
  160. {
  161. GearItem item = new GearItem();
  162. item.Name = "MHT";
  163. item.Extension = ".mht";
  164. item.MimeType = "multipart/related application/x-mimearchive";
  165. item.Properties = GetDefaultProp();
  166. // add properties
  167. return item;
  168. }
  169. private GearItem RegisterCSV()
  170. {
  171. GearItem item = new GearItem();
  172. item.Name = "CSV";
  173. item.Extension = ".csv";
  174. item.MimeType = "text/csv";
  175. item.Properties = GetDefaultProp();
  176. // add properties
  177. return item;
  178. }
  179. private GearItem RegisterDBF()
  180. {
  181. GearItem item = new GearItem();
  182. item.Name = "DBF";
  183. item.Extension = ".dbf";
  184. item.MimeType = "application/dbf";
  185. item.Properties = GetDefaultProp();
  186. // add properties
  187. return item;
  188. }
  189. private GearItem RegisterXML()
  190. {
  191. GearItem item = new GearItem();
  192. item.Name = "XML";
  193. item.Extension = ".xml";
  194. item.MimeType = "text/xml";
  195. item.Properties = GetDefaultProp();
  196. // add properties
  197. return item;
  198. }
  199. private GearItem RegisterTXT()
  200. {
  201. GearItem item = new GearItem();
  202. item.Name = "TXT";
  203. item.Extension = ".txt";
  204. item.MimeType = "text/plain";
  205. item.Properties = GetDefaultProp();
  206. // add properties
  207. return item;
  208. }
  209. private GearItem RegisterRTF()
  210. {
  211. GearItem item = new GearItem();
  212. item.Name = "RTF";
  213. item.Extension = ".rtf";
  214. item.MimeType = "text/rtf";
  215. item.Properties = GetDefaultProp();
  216. // add properties
  217. return item;
  218. }
  219. private GearItem RegisterHTML()
  220. {
  221. GearItem item = new GearItem();
  222. item.Name = "HTML";
  223. item.Extension = ".zip";
  224. item.MimeType = "application/zip";
  225. item.Properties = GetDefaultProp();
  226. item.Properties.Add("Layers", "false");
  227. item.Properties.Add("SinglePage", "false");
  228. // add properties
  229. return item;
  230. }
  231. }
  232. }