ReportExport.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. using FastReport.Utils;
  2. using System;
  3. using System.IO;
  4. using System.ServiceModel.Web;
  5. namespace FastReport.Service
  6. {
  7. public partial class ReportService : IFastReportService
  8. {
  9. private Stream Export(Stream preparedReport, string format)
  10. {
  11. MemoryStream preparedStream = PreparePostStream(preparedReport);
  12. MemoryStream stream = new MemoryStream();
  13. if (preparedReport != null && preparedStream.Length > 0)
  14. {
  15. using (Report r = new Report())
  16. {
  17. Config.WebMode = true;
  18. try
  19. {
  20. r.LoadPrepared(preparedStream);
  21. GearItem gear = new GearItem();
  22. gear.Name = format.ToUpper();
  23. gear.Properties = GetDefaultProp();
  24. PrepareOutput(gear, r, stream);
  25. }
  26. catch (Exception e)
  27. {
  28. throw new WebFaultException<ErrorHandler>(new ErrorHandler { Cause = e.Message, ErrorCode = 111 },
  29. System.Net.HttpStatusCode.InternalServerError);
  30. }
  31. stream.Position = 0;
  32. }
  33. }
  34. else
  35. throw new WebFaultException<ErrorHandler>(new ErrorHandler { Cause = "Bad input data", ErrorCode = 108 },
  36. System.Net.HttpStatusCode.BadRequest);
  37. return stream;
  38. }
  39. public Stream GetFPX(Stream preparedReport)
  40. {
  41. return Export(preparedReport, "FPX");
  42. }
  43. public Stream GetPDF(Stream preparedReport)
  44. {
  45. return Export(preparedReport, "PDF");
  46. }
  47. public Stream GetXLSX(Stream preparedReport)
  48. {
  49. return Export(preparedReport, "XLSX");
  50. }
  51. public Stream GetDOCX(Stream preparedReport)
  52. {
  53. return Export(preparedReport, "DOCX");
  54. }
  55. public Stream GetPPTX(Stream preparedReport)
  56. {
  57. return Export(preparedReport, "PPTX");
  58. }
  59. public Stream GetODS(Stream preparedReport)
  60. {
  61. return Export(preparedReport, "ODS");
  62. }
  63. public Stream GetODT(Stream preparedReport)
  64. {
  65. return Export(preparedReport, "ODT");
  66. }
  67. public Stream GetMHT(Stream preparedReport)
  68. {
  69. return Export(preparedReport, "MHT");
  70. }
  71. public Stream GetCSV(Stream preparedReport)
  72. {
  73. return Export(preparedReport, "CSV");
  74. }
  75. public Stream GetDBF(Stream preparedReport)
  76. {
  77. return Export(preparedReport, "DBF");
  78. }
  79. public Stream GetXML(Stream preparedReport)
  80. {
  81. return Export(preparedReport, "XML");
  82. }
  83. public Stream GetTXT(Stream preparedReport)
  84. {
  85. return Export(preparedReport, "TXT");
  86. }
  87. public Stream GetRTF(Stream preparedReport)
  88. {
  89. return Export(preparedReport, "RTF");
  90. }
  91. public Stream GetHTML(Stream preparedReport)
  92. {
  93. return Export(preparedReport, "HTML");
  94. }
  95. public Stream GetFPXByUUID(string uuid)
  96. {
  97. return GetFPX(GetPreparedByUUID(uuid));
  98. }
  99. public Stream GetPDFByUUID(string uuid)
  100. {
  101. return GetPDF(GetPreparedByUUID(uuid));
  102. }
  103. public Stream GetXLSXByUUID(string uuid)
  104. {
  105. return GetXLSX(GetPreparedByUUID(uuid));
  106. }
  107. public Stream GetDOCXByUUID(string uuid)
  108. {
  109. return GetDOCX(GetPreparedByUUID(uuid));
  110. }
  111. public Stream GetPPTXByUUID(string uuid)
  112. {
  113. return GetPPTX(GetPreparedByUUID(uuid));
  114. }
  115. public Stream GetODSByUUID(string uuid)
  116. {
  117. return GetODS(GetPreparedByUUID(uuid));
  118. }
  119. public Stream GetODTByUUID(string uuid)
  120. {
  121. return GetODT(GetPreparedByUUID(uuid));
  122. }
  123. public Stream GetMHTByUUID(string uuid)
  124. {
  125. return GetMHT(GetPreparedByUUID(uuid));
  126. }
  127. public Stream GetCSVByUUID(string uuid)
  128. {
  129. return GetCSV(GetPreparedByUUID(uuid));
  130. }
  131. public Stream GetDBFByUUID(string uuid)
  132. {
  133. return GetDBF(GetPreparedByUUID(uuid));
  134. }
  135. public Stream GetXMLByUUID(string uuid)
  136. {
  137. return GetXML(GetPreparedByUUID(uuid));
  138. }
  139. public Stream GetTXTByUUID(string uuid)
  140. {
  141. return GetTXT(GetPreparedByUUID(uuid));
  142. }
  143. public Stream GetRTFByUUID(string uuid)
  144. {
  145. return GetRTF(GetPreparedByUUID(uuid));
  146. }
  147. public Stream GetHTMLByUUID(string uuid)
  148. {
  149. return GetHTML(GetPreparedByUUID(uuid));
  150. }
  151. }
  152. }