Merge pull request 'Resolve issue #1' (#5) from issue#1 into master

Reviewed-on: ABSC/PDF-Merge#5
This commit is contained in:
efrick 2024-08-06 10:42:35 -04:00
commit a17d288f92
8 changed files with 134 additions and 35 deletions

View File

@ -37,7 +37,7 @@ namespace PDF_Merge
return titleAttribute.Title; return titleAttribute.Title;
} }
} }
return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); return Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
} }
} }

View File

@ -3,7 +3,11 @@
<appSettings> <appSettings>
<add key="PDF-Path" value=""/> <add key="PDF-Path" value=""/>
<add key="PDF-Output" value=""/> <add key="PDF-Output" value=""/>
<add key="PDF-Name" value="merged.pdf"/> <add key="PDF-Name" value="merged"/>
<add key ="PDF-Extension" value=".pdf"/>
<add key="overwrite" value="true"/> <add key="overwrite" value="true"/>
<add key="appendDate" value="false"/>
<add key ="dateFormat" value="yyyy-MM-dd"/>
<add key="dateIndex" value="0"/>
</appSettings> </appSettings>
</configuration> </configuration>

88
ConfForm.Designer.cs generated
View File

@ -30,8 +30,8 @@ namespace PDF_Merge
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
saveBtn = new Button(); SaveBtn = new Button();
cancelBtn = new Button(); CancelBtn = new Button();
sourceBox = new TextBox(); sourceBox = new TextBox();
outputBox = new TextBox(); outputBox = new TextBox();
folderBrowserDialog1 = new FolderBrowserDialog(); folderBrowserDialog1 = new FolderBrowserDialog();
@ -42,27 +42,30 @@ namespace PDF_Merge
outPathBtn = new Button(); outPathBtn = new Button();
FileLable = new Label(); FileLable = new Label();
FileNameBox = new TextBox(); FileNameBox = new TextBox();
fileExtlabel = new Label();
appendDatecheckBox = new CheckBox();
dateFormatOpts = new ComboBox();
SuspendLayout(); SuspendLayout();
// //
// saveBtn // SaveBtn
// //
saveBtn.Location = new Point(327, 227); SaveBtn.Location = new Point(327, 227);
saveBtn.Name = "saveBtn"; SaveBtn.Name = "SaveBtn";
saveBtn.Size = new Size(112, 34); SaveBtn.Size = new Size(112, 34);
saveBtn.TabIndex = 0; SaveBtn.TabIndex = 0;
saveBtn.Text = "Save"; SaveBtn.Text = "Save";
saveBtn.UseVisualStyleBackColor = true; SaveBtn.UseVisualStyleBackColor = true;
saveBtn.Click += saveBtn_Click; SaveBtn.Click += SaveBtn_Click;
// //
// cancelBtn // CancelBtn
// //
cancelBtn.Location = new Point(193, 227); CancelBtn.Location = new Point(193, 227);
cancelBtn.Name = "cancelBtn"; CancelBtn.Name = "CancelBtn";
cancelBtn.Size = new Size(112, 34); CancelBtn.Size = new Size(112, 34);
cancelBtn.TabIndex = 1; CancelBtn.TabIndex = 1;
cancelBtn.Text = "Cancel"; CancelBtn.Text = "Cancel";
cancelBtn.UseVisualStyleBackColor = true; CancelBtn.UseVisualStyleBackColor = true;
cancelBtn.Click += cancelBtn_Click; CancelBtn.Click += CancelBtn_Click;
// //
// sourceBox // sourceBox
// //
@ -116,7 +119,7 @@ namespace PDF_Merge
sourceDirBtn.TabIndex = 7; sourceDirBtn.TabIndex = 7;
sourceDirBtn.Text = "..."; sourceDirBtn.Text = "...";
sourceDirBtn.UseVisualStyleBackColor = true; sourceDirBtn.UseVisualStyleBackColor = true;
sourceDirBtn.Click += sourceDirBtn_Click; sourceDirBtn.Click += SourceDirBtn_Click;
// //
// outPathBtn // outPathBtn
// //
@ -126,7 +129,7 @@ namespace PDF_Merge
outPathBtn.TabIndex = 8; outPathBtn.TabIndex = 8;
outPathBtn.Text = "..."; outPathBtn.Text = "...";
outPathBtn.UseVisualStyleBackColor = true; outPathBtn.UseVisualStyleBackColor = true;
outPathBtn.Click += outPathBtn_Click; outPathBtn.Click += OutPathBtn_Click;
// //
// FileLable // FileLable
// //
@ -144,11 +147,43 @@ namespace PDF_Merge
FileNameBox.Size = new Size(150, 31); FileNameBox.Size = new Size(150, 31);
FileNameBox.TabIndex = 10; 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 // ConfForm
// //
AutoScaleDimensions = new SizeF(10F, 25F); AutoScaleDimensions = new SizeF(10F, 25F);
AutoScaleMode = AutoScaleMode.Font; 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(FileNameBox);
Controls.Add(FileLable); Controls.Add(FileLable);
Controls.Add(outPathBtn); Controls.Add(outPathBtn);
@ -158,8 +193,8 @@ namespace PDF_Merge
Controls.Add(sourceLabel); Controls.Add(sourceLabel);
Controls.Add(outputBox); Controls.Add(outputBox);
Controls.Add(sourceBox); Controls.Add(sourceBox);
Controls.Add(cancelBtn); Controls.Add(CancelBtn);
Controls.Add(saveBtn); Controls.Add(SaveBtn);
Name = "ConfForm"; Name = "ConfForm";
Text = "Configure"; Text = "Configure";
ResumeLayout(false); ResumeLayout(false);
@ -168,8 +203,8 @@ namespace PDF_Merge
#endregion #endregion
private Button saveBtn; private Button SaveBtn;
private Button cancelBtn; private Button CancelBtn;
private TextBox sourceBox; private TextBox sourceBox;
private TextBox outputBox; private TextBox outputBox;
private FolderBrowserDialog folderBrowserDialog1; private FolderBrowserDialog folderBrowserDialog1;
@ -180,5 +215,8 @@ namespace PDF_Merge
private Button outPathBtn; private Button outPathBtn;
private Label FileLable; private Label FileLable;
private TextBox FileNameBox; private TextBox FileNameBox;
private Label fileExtlabel;
private CheckBox appendDatecheckBox;
private ComboBox dateFormatOpts;
} }
} }

View File

@ -20,10 +20,25 @@ namespace PDF_Merge
string sourcePath = ConfigurationManager.AppSettings["PDF-Path"]; string sourcePath = ConfigurationManager.AppSettings["PDF-Path"];
string outputPath = ConfigurationManager.AppSettings["PDF-Output"]; string outputPath = ConfigurationManager.AppSettings["PDF-Output"];
string outputName = ConfigurationManager.AppSettings["PDF-Name"]; 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; sourceBox.Text = sourcePath;
outputBox.Text = outputPath; outputBox.Text = outputPath;
FileNameBox.Text = outputName; FileNameBox.Text = outputName;
fileExtlabel.Text = outputExt;
if (ConfigurationManager.AppSettings["overwrite"] == true.ToString()) if (ConfigurationManager.AppSettings["overwrite"] == true.ToString())
{ {
overrideCBox.Checked = true; overrideCBox.Checked = true;
@ -32,14 +47,23 @@ namespace PDF_Merge
{ {
overrideCBox.Checked = false; 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(); this.Close();
} }
private void saveBtn_Click(object sender, EventArgs e) private void SaveBtn_Click(object sender, EventArgs e)
{ {
Configuration appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); Configuration appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
AppSettingsSection appSettings = appConfig.AppSettings; AppSettingsSection appSettings = appConfig.AppSettings;
@ -68,12 +92,15 @@ namespace PDF_Merge
MessageBox.Show("File must be named.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("File must be named.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
appSettings.Settings["overwrite"].Value = overrideCBox.Checked.ToString(); 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); appConfig.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings"); ConfigurationManager.RefreshSection("appSettings");
this.Close(); this.Close();
} }
private void sourceDirBtn_Click(object sender, EventArgs e) private void SourceDirBtn_Click(object sender, EventArgs e)
{ {
using (var SourceDirPicker = new FolderBrowserDialog()) 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()) 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;
}
}
} }
} }

View File

@ -12,7 +12,15 @@ namespace PDF_Merge
} }
private static string getOutputPath() 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; return pdfPath;
} }
public void SetPathLable() public void SetPathLable()

View File

@ -77,6 +77,13 @@
} }
return pdfFiles; return pdfFiles;
} }
public static string GetDate()
{
DateTime date = DateTime.Now;
string dateFormat = ConfigurationManager.AppSettings["dateFormat"];
return date.ToString(dateFormat);
}
} }
} }

View File

@ -9,7 +9,7 @@
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<PackageLicenseFile>LICENSE</PackageLicenseFile> <PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageReadmeFile>README.md</PackageReadmeFile> <PackageReadmeFile>README.md</PackageReadmeFile>
<Version>2024.08.05</Version> <Version>2024.08.06.01</Version>
<Company>ABSC Inc.</Company> <Company>ABSC Inc.</Company>
<Description>This tool merges PDF files from a configured directory into a single PDF.</Description> <Description>This tool merges PDF files from a configured directory into a single PDF.</Description>
<Copyright>GNU GPL v3 2024</Copyright> <Copyright>GNU GPL v3 2024</Copyright>
@ -26,7 +26,6 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="PDFsharp" Version="6.1.1" /> <PackageReference Include="PDFsharp" Version="6.1.1" />
<PackageReference Include="QuestPDF" Version="2024.7.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -23,7 +23,7 @@ Var Current_Version
Function SetWelcomeMsg Function SetWelcomeMsg
StrCpy $Company_Name "Applied Business Solutions Consulting, Inc. (ABSC)" 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" 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 FunctionEnd