diff --git a/AboutBox1.cs b/AboutBox1.cs index 6b64af7..ae5d3a3 100644 --- a/AboutBox1.cs +++ b/AboutBox1.cs @@ -37,7 +37,7 @@ namespace PDF_Merge return titleAttribute.Title; } } - return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); + return Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); } } diff --git a/App.config b/App.config index 953f313..2c777dd 100644 --- a/App.config +++ b/App.config @@ -3,7 +3,11 @@ - + + + + + \ No newline at end of file diff --git a/ConfForm.Designer.cs b/ConfForm.Designer.cs index 545b413..ee98ebe 100644 --- a/ConfForm.Designer.cs +++ b/ConfForm.Designer.cs @@ -30,8 +30,8 @@ namespace PDF_Merge /// private void InitializeComponent() { - saveBtn = new Button(); - cancelBtn = new Button(); + SaveBtn = new Button(); + CancelBtn = new Button(); sourceBox = new TextBox(); outputBox = new TextBox(); folderBrowserDialog1 = new FolderBrowserDialog(); @@ -42,27 +42,30 @@ namespace PDF_Merge outPathBtn = new Button(); FileLable = new Label(); FileNameBox = new TextBox(); + fileExtlabel = new Label(); + appendDatecheckBox = new CheckBox(); + dateFormatOpts = new ComboBox(); SuspendLayout(); // - // saveBtn + // SaveBtn // - saveBtn.Location = new Point(327, 227); - saveBtn.Name = "saveBtn"; - saveBtn.Size = new Size(112, 34); - saveBtn.TabIndex = 0; - saveBtn.Text = "Save"; - saveBtn.UseVisualStyleBackColor = true; - saveBtn.Click += saveBtn_Click; + SaveBtn.Location = new Point(327, 227); + SaveBtn.Name = "SaveBtn"; + SaveBtn.Size = new Size(112, 34); + SaveBtn.TabIndex = 0; + SaveBtn.Text = "Save"; + SaveBtn.UseVisualStyleBackColor = true; + SaveBtn.Click += SaveBtn_Click; // - // cancelBtn + // CancelBtn // - cancelBtn.Location = new Point(193, 227); - cancelBtn.Name = "cancelBtn"; - cancelBtn.Size = new Size(112, 34); - cancelBtn.TabIndex = 1; - cancelBtn.Text = "Cancel"; - cancelBtn.UseVisualStyleBackColor = true; - cancelBtn.Click += cancelBtn_Click; + CancelBtn.Location = new Point(193, 227); + CancelBtn.Name = "CancelBtn"; + CancelBtn.Size = new Size(112, 34); + CancelBtn.TabIndex = 1; + CancelBtn.Text = "Cancel"; + CancelBtn.UseVisualStyleBackColor = true; + CancelBtn.Click += CancelBtn_Click; // // sourceBox // @@ -116,7 +119,7 @@ namespace PDF_Merge sourceDirBtn.TabIndex = 7; sourceDirBtn.Text = "..."; sourceDirBtn.UseVisualStyleBackColor = true; - sourceDirBtn.Click += sourceDirBtn_Click; + sourceDirBtn.Click += SourceDirBtn_Click; // // outPathBtn // @@ -126,7 +129,7 @@ namespace PDF_Merge outPathBtn.TabIndex = 8; outPathBtn.Text = "..."; outPathBtn.UseVisualStyleBackColor = true; - outPathBtn.Click += outPathBtn_Click; + outPathBtn.Click += OutPathBtn_Click; // // FileLable // @@ -144,11 +147,43 @@ namespace PDF_Merge FileNameBox.Size = new Size(150, 31); FileNameBox.TabIndex = 10; // + // fileExtlabel + // + fileExtlabel.AutoSize = true; + fileExtlabel.Location = new Point(327, 114); + fileExtlabel.Name = "fileExtlabel"; + fileExtlabel.Size = new Size(44, 25); + fileExtlabel.TabIndex = 11; + fileExtlabel.Text = ".pdf"; + // + // appendDatecheckBox + // + appendDatecheckBox.AutoSize = true; + appendDatecheckBox.Location = new Point(171, 187); + appendDatecheckBox.Name = "appendDatecheckBox"; + appendDatecheckBox.Size = new Size(144, 29); + appendDatecheckBox.TabIndex = 12; + appendDatecheckBox.Text = "Append Date"; + appendDatecheckBox.UseVisualStyleBackColor = true; + appendDatecheckBox.CheckedChanged += AppendDatecheckBox_CheckedChanged; + // + // dateFormatOpts + // + dateFormatOpts.FormattingEnabled = true; + dateFormatOpts.Items.AddRange(new object[] { "yyyy-MM-dd", "MM-dd-yyyy" }); + dateFormatOpts.Location = new Point(321, 188); + dateFormatOpts.Name = "dateFormatOpts"; + dateFormatOpts.Size = new Size(182, 33); + dateFormatOpts.TabIndex = 13; + // // ConfForm // AutoScaleDimensions = new SizeF(10F, 25F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(500, 282); + ClientSize = new Size(546, 282); + Controls.Add(dateFormatOpts); + Controls.Add(appendDatecheckBox); + Controls.Add(fileExtlabel); Controls.Add(FileNameBox); Controls.Add(FileLable); Controls.Add(outPathBtn); @@ -158,8 +193,8 @@ namespace PDF_Merge Controls.Add(sourceLabel); Controls.Add(outputBox); Controls.Add(sourceBox); - Controls.Add(cancelBtn); - Controls.Add(saveBtn); + Controls.Add(CancelBtn); + Controls.Add(SaveBtn); Name = "ConfForm"; Text = "Configure"; ResumeLayout(false); @@ -168,8 +203,8 @@ namespace PDF_Merge #endregion - private Button saveBtn; - private Button cancelBtn; + private Button SaveBtn; + private Button CancelBtn; private TextBox sourceBox; private TextBox outputBox; private FolderBrowserDialog folderBrowserDialog1; @@ -180,5 +215,8 @@ namespace PDF_Merge private Button outPathBtn; private Label FileLable; private TextBox FileNameBox; + private Label fileExtlabel; + private CheckBox appendDatecheckBox; + private ComboBox dateFormatOpts; } } \ No newline at end of file diff --git a/ConfForm.cs b/ConfForm.cs index b1dc462..6e93b70 100644 --- a/ConfForm.cs +++ b/ConfForm.cs @@ -20,10 +20,25 @@ namespace PDF_Merge string sourcePath = ConfigurationManager.AppSettings["PDF-Path"]; string outputPath = ConfigurationManager.AppSettings["PDF-Output"]; string outputName = ConfigurationManager.AppSettings["PDF-Name"]; + string outputExt = ConfigurationManager.AppSettings["PDF-Extension"]; + string dateIndex = ConfigurationManager.AppSettings["dateIndex"]; + + int dateIndexValue; + + bool indexSet = int.TryParse(dateIndex, out dateIndexValue); + if (indexSet) + { + dateFormatOpts.SelectedIndex = dateIndexValue; + } else + { + dateFormatOpts.SelectedIndex = 0; + } sourceBox.Text = sourcePath; outputBox.Text = outputPath; FileNameBox.Text = outputName; + fileExtlabel.Text = outputExt; + if (ConfigurationManager.AppSettings["overwrite"] == true.ToString()) { overrideCBox.Checked = true; @@ -32,14 +47,23 @@ namespace PDF_Merge { overrideCBox.Checked = false; } + if (ConfigurationManager.AppSettings["appendDate"] == true.ToString()) + { + appendDatecheckBox.Checked = true; + } + else + { + appendDatecheckBox.Checked = false; + } + CheckAppend(); } - private void cancelBtn_Click(object sender, EventArgs e) + private void CancelBtn_Click(object sender, EventArgs e) { this.Close(); } - private void saveBtn_Click(object sender, EventArgs e) + private void SaveBtn_Click(object sender, EventArgs e) { Configuration appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); AppSettingsSection appSettings = appConfig.AppSettings; @@ -68,12 +92,15 @@ namespace PDF_Merge MessageBox.Show("File must be named.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } appSettings.Settings["overwrite"].Value = overrideCBox.Checked.ToString(); + appSettings.Settings["appendDate"].Value = appendDatecheckBox.Checked.ToString(); + appSettings.Settings["dateFormat"].Value = dateFormatOpts.SelectedItem.ToString(); + appSettings.Settings["dateIndex"].Value = dateFormatOpts.SelectedIndex.ToString(); appConfig.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); this.Close(); } - private void sourceDirBtn_Click(object sender, EventArgs e) + private void SourceDirBtn_Click(object sender, EventArgs e) { using (var SourceDirPicker = new FolderBrowserDialog()) { @@ -94,7 +121,7 @@ namespace PDF_Merge } } - private void outPathBtn_Click(object sender, EventArgs e) + private void OutPathBtn_Click(object sender, EventArgs e) { using (var OutPathPicker = new FolderBrowserDialog()) { @@ -106,5 +133,21 @@ namespace PDF_Merge } } } + + private void AppendDatecheckBox_CheckedChanged(object sender, EventArgs e) + { + CheckAppend(); + } + private void CheckAppend() + { + if (appendDatecheckBox.Checked) + { + dateFormatOpts.Visible = true; + } + else + { + dateFormatOpts.Visible = false; + } + } } } diff --git a/MainForm.cs b/MainForm.cs index 22879b2..6da352e 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -12,7 +12,15 @@ namespace PDF_Merge } private static string getOutputPath() { - string pdfPath = ConfigurationManager.AppSettings["PDF-Output"] + Path.DirectorySeparatorChar + ConfigurationManager.AppSettings["PDF-Name"]; + string pdfPath; + if (ConfigurationManager.AppSettings["appendDate"] == true.ToString()) + { + pdfPath = ConfigurationManager.AppSettings["PDF-Output"] + Path.DirectorySeparatorChar + ConfigurationManager.AppSettings["PDF-Name"] + "_" + MergePDFs.GetDate() + ConfigurationManager.AppSettings["PDF-Extension"]; + } + else + { + pdfPath = ConfigurationManager.AppSettings["PDF-Output"] + Path.DirectorySeparatorChar + ConfigurationManager.AppSettings["PDF-Name"] + ConfigurationManager.AppSettings["PDF-Extension"]; + } return pdfPath; } public void SetPathLable() diff --git a/MergePDFs.cs b/MergePDFs.cs index ec87d90..03ff9e2 100644 --- a/MergePDFs.cs +++ b/MergePDFs.cs @@ -77,6 +77,13 @@ } return pdfFiles; } + + public static string GetDate() + { + DateTime date = DateTime.Now; + string dateFormat = ConfigurationManager.AppSettings["dateFormat"]; + return date.ToString(dateFormat); + } } } diff --git a/PDF-Merge.csproj b/PDF-Merge.csproj index 28f9cf7..3584672 100644 --- a/PDF-Merge.csproj +++ b/PDF-Merge.csproj @@ -9,7 +9,7 @@ enable LICENSE README.md - 2024.08.05 + 2024.08.06.01 ABSC Inc. This tool merges PDF files from a configured directory into a single PDF. GNU GPL v3 2024 @@ -26,7 +26,6 @@ - diff --git a/PDF-Merge.nsi b/PDF-Merge.nsi index a999ca9..3fa1a17 100644 --- a/PDF-Merge.nsi +++ b/PDF-Merge.nsi @@ -23,7 +23,7 @@ Var Current_Version Function SetWelcomeMsg StrCpy $Company_Name "Applied Business Solutions Consulting, Inc. (ABSC)" - StrCpy $Current_Version "2024.08.05.1" + StrCpy $Current_Version "2024.08.06.1" SendMessage $mui.WelcomePage.Text= ${WM_SETTEXT} 0 "STR: Merge several PDFs into a single file.$\n Requiers .NET version 6 $\n Version: $Current_Version $\n Developed by: $Company_Name" FunctionEnd