From 3b5f90fd6444c253330e3730fccaa4811e8aaf14 Mon Sep 17 00:00:00 2001 From: Crudelis Date: Tue, 12 Sep 2023 00:16:54 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B8=EC=87=84=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 실제 인쇄 기능 추가 --- .../CustomUserControl/UserList.cs | 16 +++- ...SUCO_Cargo_Garage_Operation_Program.csproj | 6 +- HSUCO_Cargo_Garage_Operation_Program/Print.cs | 52 ------------ .../PrintCertificate.cs | 77 ++++++++++++++++++ .../Properties/Resources.Designer.cs | 10 +++ .../Properties/Resources.resx | 3 + .../free-icon-trucks-8552082.ico | Bin 7 files changed, 106 insertions(+), 58 deletions(-) delete mode 100644 HSUCO_Cargo_Garage_Operation_Program/Print.cs create mode 100644 HSUCO_Cargo_Garage_Operation_Program/PrintCertificate.cs rename HSUCO_Cargo_Garage_Operation_Program/{ => Resources}/free-icon-trucks-8552082.ico (100%) diff --git a/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.cs b/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.cs index 1689d4d..9adc25d 100644 --- a/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.cs +++ b/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.cs @@ -3,9 +3,12 @@ using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; +using System.Drawing; using System.Drawing.Printing; using System.Linq; +using System.Windows.Documents; using System.Windows.Forms; +using HSUCO_Cargo_Garage_Operation_Program.Properties; namespace HSUCO_Cargo_Garage_Operation_Program.CustomUserControl { @@ -173,12 +176,19 @@ namespace HSUCO_Cargo_Garage_Operation_Program.CustomUserControl //if (allCount == 0) return; // TODO: 증명서 인쇄 // PRINT - - Print print = new Print(); + List all = new List(); + all.Add(new PrintCertificateData()); + all.Add(new PrintCertificateData()); + all.Add(new PrintCertificateData()); + PrintCertificate print = new PrintCertificate(all); PrintDocument printDocument = new PrintDocument(); - printDocument.PrintPage += new PrintPageEventHandler(print.PrintPage); + printDocument.DocumentName = "차고지 이용 증명서"; + + printDocument.PrintPage += print.PrintPage; PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog(); + printPreviewDialog.Icon = Resources.free_icon_trucks_8552082; + printPreviewDialog.WindowState = FormWindowState.Maximized; printPreviewDialog.Document = printDocument; printPreviewDialog.ShowDialog(); } diff --git a/HSUCO_Cargo_Garage_Operation_Program/HSUCO_Cargo_Garage_Operation_Program.csproj b/HSUCO_Cargo_Garage_Operation_Program/HSUCO_Cargo_Garage_Operation_Program.csproj index d3a84d8..abe38bc 100644 --- a/HSUCO_Cargo_Garage_Operation_Program/HSUCO_Cargo_Garage_Operation_Program.csproj +++ b/HSUCO_Cargo_Garage_Operation_Program/HSUCO_Cargo_Garage_Operation_Program.csproj @@ -37,7 +37,7 @@ 4 - free-icon-trucks-8552082.ico + Resources\free-icon-trucks-8552082.ico @@ -162,7 +162,7 @@ Master.cs - + @@ -226,7 +226,7 @@ - + diff --git a/HSUCO_Cargo_Garage_Operation_Program/Print.cs b/HSUCO_Cargo_Garage_Operation_Program/Print.cs deleted file mode 100644 index 6e07a77..0000000 --- a/HSUCO_Cargo_Garage_Operation_Program/Print.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Drawing.Printing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace HSUCO_Cargo_Garage_Operation_Program -{ - internal class Print - { - public void PrintPage(object sender, PrintPageEventArgs e) - { - // 테두리? - e.Graphics.DrawRectangle(new Pen(Brushes.Black, 3), e.MarginBounds.Top, e.MarginBounds.Left, e.MarginBounds.Width, e.MarginBounds.Height); - - string text = "화물차고지 사용신고확인서"; - Font font = new Font("맑은 고딕", 30, FontStyle.Bold); - - int totalWidth = (int)e.PageBounds.Width; - int totalHeight = (int)e.PageBounds.Height; - - - e.Graphics.DrawString("제 2023-01호", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 10, e.MarginBounds.Top + 10); - - SizeF textSize = e.Graphics.MeasureString(text, font); - float textX = (totalWidth - textSize.Width) / 2; - - e.Graphics.DrawString(text, font, Brushes.Black, textX, e.MarginBounds.Top + 150); - - e.Graphics.DrawString("사용자 성명 : ", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 300); - e.Graphics.DrawString("주소 : ", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 350); - e.Graphics.DrawString("차량번호 : ", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 400); - e.Graphics.DrawString("사용기한 : 2023-01-01 ~ 2023-12-31", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 450); - - e.Graphics.DrawString("내용", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 500); - - text = "2023년 01월 01일"; - font = new Font("맑은 고딕", 15); - textSize = e.Graphics.MeasureString(text, font); - textX = (totalWidth - textSize.Width) / 2; - e.Graphics.DrawString(text, font, Brushes.Black, textX, e.MarginBounds.Top + 700); - - text = "화성도시공사 화물차주차장 담당자"; - font = new Font("맑은 고딕", 20); - textSize = e.Graphics.MeasureString(text, font); - textX = (totalWidth - textSize.Width) / 2; - e.Graphics.DrawString("화성도시공사 화물차주차장 담당자", font, Brushes.Black, textX, e.MarginBounds.Top + 800); - } - } -} diff --git a/HSUCO_Cargo_Garage_Operation_Program/PrintCertificate.cs b/HSUCO_Cargo_Garage_Operation_Program/PrintCertificate.cs new file mode 100644 index 0000000..6e0c2cd --- /dev/null +++ b/HSUCO_Cargo_Garage_Operation_Program/PrintCertificate.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Printing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Office.Interop.Excel; +using Font = System.Drawing.Font; + +namespace HSUCO_Cargo_Garage_Operation_Program +{ + struct PrintCertificateData + { + public string IssueNumber; + public string Name; + public string RegistrationNumberTruck; + public string RegistrationNumberPassenger; + public DateTime StartDate; + public DateTime EndDate; + public DateTime IssueDate; + + } + + internal class PrintCertificate + { + private List _printCertificateDatas; + private int _count; + public PrintCertificate(List printCertificateDatas) + { + _printCertificateDatas = printCertificateDatas; + _count = 0; + } + public void PrintPage(object sender, PrintPageEventArgs e) + { + + e.Graphics.DrawRectangle(new Pen(Brushes.Black, 3), e.MarginBounds.Top, e.MarginBounds.Left, e.MarginBounds.Width, e.MarginBounds.Height); + + string text = "화물차고지 사용신고확인서"; + Font font = new Font("맑은 고딕", 30, FontStyle.Bold); + + int totalWidth = (int)e.PageBounds.Width; + int totalHeight = (int)e.PageBounds.Height; + + + e.Graphics.DrawString($"제 {_printCertificateDatas[_count].IssueNumber}호", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 10, e.MarginBounds.Top + 10); + + SizeF textSize = e.Graphics.MeasureString(text, font); + float textX = (totalWidth - textSize.Width) / 2; + + e.Graphics.DrawString(text, font, Brushes.Black, textX, e.MarginBounds.Top + 150); + + e.Graphics.DrawString($"사용자 성명 : {_printCertificateDatas[_count].Name}", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 300); + e.Graphics.DrawString($"주소 : {_printCertificateDatas[_count].Name}", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 350); + e.Graphics.DrawString($"차량번호(화물) : {_printCertificateDatas[_count].RegistrationNumberTruck}", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 400); + e.Graphics.DrawString($"차량번호(승용) : {_printCertificateDatas[_count].RegistrationNumberPassenger}", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 450); + e.Graphics.DrawString($"사용기한 : {_printCertificateDatas[_count].StartDate.ToString("yyyy-mm-dd")} ~ {_printCertificateDatas[_count].EndDate.ToString("yyyy-mm-dd")}", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 500); + + e.Graphics.DrawString("상기 차량은 위 사용기한에 차고지 사용을 승인합니다.", new Font("맑은 고딕", 12), Brushes.Black, e.MarginBounds.Left + 50, e.MarginBounds.Top + 600); + + text = $"{_printCertificateDatas[_count].IssueDate.ToString("yyyy년 mm월 dd일")}"; + font = new Font("맑은 고딕", 15); + textSize = e.Graphics.MeasureString(text, font); + textX = (totalWidth - textSize.Width) / 2; + e.Graphics.DrawString(text, font, Brushes.Black, textX, e.MarginBounds.Top + 700); + + text = "화성도시공사 화물차주차장 담당자"; + font = new Font("맑은 고딕", 20); + textSize = e.Graphics.MeasureString(text, font); + textX = (totalWidth - textSize.Width) / 2; + e.Graphics.DrawString(text, font, Brushes.Black, textX, e.MarginBounds.Top + 800); + _count++; + e.HasMorePages = _printCertificateDatas.Count > _count; + + } + } +} diff --git a/HSUCO_Cargo_Garage_Operation_Program/Properties/Resources.Designer.cs b/HSUCO_Cargo_Garage_Operation_Program/Properties/Resources.Designer.cs index 3fdb16b..6393b85 100644 --- a/HSUCO_Cargo_Garage_Operation_Program/Properties/Resources.Designer.cs +++ b/HSUCO_Cargo_Garage_Operation_Program/Properties/Resources.Designer.cs @@ -69,5 +69,15 @@ namespace HSUCO_Cargo_Garage_Operation_Program.Properties { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// (아이콘)과(와) 유사한 System.Drawing.Icon 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Icon free_icon_trucks_8552082 { + get { + object obj = ResourceManager.GetObject("free_icon_trucks_8552082", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } } } diff --git a/HSUCO_Cargo_Garage_Operation_Program/Properties/Resources.resx b/HSUCO_Cargo_Garage_Operation_Program/Properties/Resources.resx index 447bb44..fc6b133 100644 --- a/HSUCO_Cargo_Garage_Operation_Program/Properties/Resources.resx +++ b/HSUCO_Cargo_Garage_Operation_Program/Properties/Resources.resx @@ -121,4 +121,7 @@ ..\Resources\file_type_excel_icon_130611.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\free-icon-trucks-8552082.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/HSUCO_Cargo_Garage_Operation_Program/free-icon-trucks-8552082.ico b/HSUCO_Cargo_Garage_Operation_Program/Resources/free-icon-trucks-8552082.ico similarity index 100% rename from HSUCO_Cargo_Garage_Operation_Program/free-icon-trucks-8552082.ico rename to HSUCO_Cargo_Garage_Operation_Program/Resources/free-icon-trucks-8552082.ico