Merge branch 'develop' into working
This commit is contained in:
commit
9301935f9a
40 changed files with 16527 additions and 35 deletions
|
|
@ -24,6 +24,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="iTextSharp" Version="5.5.13.3" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.21" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.21" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="5.1.0" />
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ using Telerik.Reporting.Processing;
|
|||
using System.IO;
|
||||
using BMA.EHR.Application.Repositories;
|
||||
using BMA.EHR.Report.Service.Requests;
|
||||
using iTextSharp.text.pdf;
|
||||
using iTextSharp.text;
|
||||
|
||||
namespace BMA.EHR.Report.Service.Controllers
|
||||
{
|
||||
|
|
@ -30,6 +32,8 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
private readonly GenericReportGenerator _reportGenerator;
|
||||
private readonly RetireReportRepository _repository;
|
||||
private readonly MinIOService _documentService;
|
||||
// for add watermark
|
||||
private BaseFont baseFont = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false);
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
@ -127,13 +131,13 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
/// 36-บันทึกเวียนแจ้งการถึงแก่กรรม
|
||||
/// </summary>
|
||||
/// <param name="id">Id รายการบันทึกเวียนแจ้งการถึงแก่กรรม</param>
|
||||
/// <param name="exportType">pdf, docx หรือ xlsx</param>
|
||||
/// <returns></returns>
|
||||
/// <response code="200">เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ</response>
|
||||
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||
[HttpGet("copy/36/{exportType}/{id}")]
|
||||
public async Task<ActionResult<ResponseObject>> GetDeceasedReportCopyAsync(Guid id, string exportType = "pdf")
|
||||
[HttpGet("copy/36/{id}")]
|
||||
[AllowAnonymous]
|
||||
public async Task<ActionResult<ResponseObject>> GetDeceasedReportCopyAsync(Guid id)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
@ -156,13 +160,13 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
DeceasedNumber = data.GetType().GetProperty("Number").GetValue(data),
|
||||
Location = data.GetType().GetProperty("Location").GetValue(data),
|
||||
};
|
||||
var mimeType = "";
|
||||
switch (exportType.Trim().ToLower())
|
||||
{
|
||||
case "pdf": mimeType = "application/pdf"; break;
|
||||
case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break;
|
||||
case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break;
|
||||
}
|
||||
// var mimeType = "";
|
||||
// switch (exportType.Trim().ToLower())
|
||||
// {
|
||||
// case "pdf": mimeType = "application/pdf"; break;
|
||||
// case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break;
|
||||
// case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break;
|
||||
// }
|
||||
|
||||
var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"36-บันทึกเวียนแจ้งการถึงแก่กรรม.trdp");
|
||||
ReportPackager reportPacker = new ReportPackager();
|
||||
|
|
@ -178,8 +182,44 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
ReportDocument = report,
|
||||
};
|
||||
ReportProcessor reportProcessor = new ReportProcessor(_configuration);
|
||||
RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo);
|
||||
return File(result.DocumentBytes, mimeType, $"รายละเอียดบันทึกเวียนแจ้งการถึงแก่กรรม.{exportType.Trim().ToLower()}");
|
||||
RenderingResult result = reportProcessor.RenderReport($"pdf", instanceReportSource, deviceInfo);
|
||||
// return File(result.DocumentBytes, mimeType, $"รายละเอียดบันทึกเวียนแจ้งการถึงแก่กรรม.{exportType.Trim().ToLower()}");
|
||||
|
||||
var now = DateTime.Now.ToString("yyyyMMdd-HHmmss");
|
||||
var file = System.IO.Path.Combine(_hostingEnvironment.WebRootPath, "tmp", $"tmp-{now}.pdf");
|
||||
var file_copy = System.IO.Path.Combine(_hostingEnvironment.WebRootPath, "tmp", $"tmp-{now}-copy.pdf");
|
||||
|
||||
try
|
||||
{
|
||||
// Copy to File
|
||||
System.IO.File.WriteAllBytes(file, result.DocumentBytes);
|
||||
var watermark_text = "COPY COPY COPY COPY";
|
||||
var fName = $"รายละเอียดบันทึกเวียนแจ้งการถึงแก่กรรม.pdf";
|
||||
|
||||
AddWatermark(file, file_copy, watermark_text);
|
||||
|
||||
using (var fileStream = new System.IO.FileStream(file_copy, FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
using (var ms = new MemoryStream())
|
||||
{
|
||||
fileStream.CopyTo(ms);
|
||||
ms.Flush();
|
||||
return File(ms.ToArray(), "application/octet-stream", fName);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (System.IO.File.Exists(file))
|
||||
System.IO.File.Delete(file);
|
||||
|
||||
if (System.IO.File.Exists(file_copy))
|
||||
System.IO.File.Delete(file_copy);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -226,5 +266,58 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region " Add Watermark "
|
||||
|
||||
private void AddWaterMarkText(PdfContentByte pdfData, string watermarkText, BaseFont font, float fontSize, float angle, BaseColor color, iTextSharp.text.Rectangle realPageSize)
|
||||
{
|
||||
var gstate = new PdfGState { FillOpacity = 0.5f, StrokeOpacity = 0.3f };
|
||||
pdfData.SaveState();
|
||||
pdfData.SetGState(gstate);
|
||||
pdfData.SetColorFill(color);
|
||||
pdfData.BeginText();
|
||||
pdfData.SetFontAndSize(font, fontSize);
|
||||
var x = (realPageSize.Right + realPageSize.Left) / 2;
|
||||
var y = (realPageSize.Bottom + realPageSize.Top) / 2;
|
||||
pdfData.ShowTextAligned(Element.ALIGN_CENTER, watermarkText, x, y, angle);
|
||||
pdfData.EndText();
|
||||
pdfData.RestoreState();
|
||||
}
|
||||
|
||||
private bool AddWatermark(string inputfilepath, string outputfilepath, string watermark_text)
|
||||
{
|
||||
PdfReader pdfReader = null;
|
||||
PdfStamper pdfStamper = null;
|
||||
try
|
||||
{
|
||||
|
||||
pdfReader = new PdfReader(inputfilepath);
|
||||
int numberOfPages = pdfReader.NumberOfPages;
|
||||
iTextSharp.text.Rectangle pagesize = pdfReader.GetPageSize(1);
|
||||
pdfStamper = new PdfStamper(pdfReader, new FileStream(outputfilepath, FileMode.Create));
|
||||
|
||||
for (int i = 1; i <= numberOfPages; i++)
|
||||
{
|
||||
var dc = pdfStamper.GetOverContent(i);
|
||||
AddWaterMarkText(dc, watermark_text, baseFont, 30, 45, BaseColor.DARK_GRAY, pdfReader.GetPageSizeWithRotation(i));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ex.Message.Trim();
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (pdfStamper != null)
|
||||
pdfStamper.Close();
|
||||
|
||||
if (pdfReader != null)
|
||||
pdfReader.Close();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break;
|
||||
case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break;
|
||||
}
|
||||
|
||||
|
||||
var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"39-แบบ ขร1 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นสายสะพาย.trdp");
|
||||
|
||||
ReportPackager reportPacker = new ReportPackager();
|
||||
|
|
@ -171,7 +171,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
{
|
||||
_Khr2List.Add(new
|
||||
{
|
||||
RowNo = _Khr2List.Count+1,
|
||||
RowNo = _Khr2List.Count + 1,
|
||||
DepartmentName = _data.GetType().GetProperty("DepartmentName").GetValue(_data),
|
||||
G1Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
|
||||
G1Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
|
||||
|
|
@ -183,14 +183,14 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
G4Female = _data.GetType().GetProperty("G4Female").GetValue(_data),
|
||||
G5Male = _data.GetType().GetProperty("G5Male").GetValue(_data),
|
||||
G5Female = _data.GetType().GetProperty("G5Female").GetValue(_data),
|
||||
G6Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
|
||||
G6Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
|
||||
G7Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
|
||||
G7Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
|
||||
G8Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
|
||||
G8Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
|
||||
G9Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
|
||||
G9Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
|
||||
G6Male = _data.GetType().GetProperty("G6Male").GetValue(_data),
|
||||
G6Female = _data.GetType().GetProperty("G6Female").GetValue(_data),
|
||||
G7Male = _data.GetType().GetProperty("G7Male").GetValue(_data),
|
||||
G7Female = _data.GetType().GetProperty("G7Female").GetValue(_data),
|
||||
G8Male = _data.GetType().GetProperty("G8Male").GetValue(_data),
|
||||
G8Female = _data.GetType().GetProperty("G8Female").GetValue(_data),
|
||||
G9Male = _data.GetType().GetProperty("G9Male").GetValue(_data),
|
||||
G9Female = _data.GetType().GetProperty("G9Female").GetValue(_data),
|
||||
Remark = _data.GetType().GetProperty("Remark").GetValue(_data),
|
||||
});
|
||||
}
|
||||
|
|
@ -245,7 +245,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
ReportPackager reportPacker = new ReportPackager();
|
||||
Telerik.Reporting.Report? report = null;
|
||||
|
||||
|
||||
|
||||
|
||||
using (var sourceStream = System.IO.File.OpenRead(rptFile))
|
||||
{
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue