diff --git a/.gitignore b/.gitignore index bb9f08a..69f801d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ PDFWorkflowManager/PDFWorkflowManager/bin PDFWorkflowManager/Setup/Debug PDFWorkflowManager/Setup/Release /PDFWorkflowManager/.vs +/PDFWorkflowManager/_.vs diff --git a/PDFWorkflowManager/.vs/PDFWorkflowManager/CopilotIndices/17.14.995.13737/CodeChunks.db b/PDFWorkflowManager/.vs/PDFWorkflowManager/CopilotIndices/17.14.995.13737/CodeChunks.db deleted file mode 100644 index 8378331..0000000 Binary files a/PDFWorkflowManager/.vs/PDFWorkflowManager/CopilotIndices/17.14.995.13737/CodeChunks.db and /dev/null differ diff --git a/PDFWorkflowManager/.vs/PDFWorkflowManager/CopilotIndices/17.14.995.13737/SemanticSymbols.db b/PDFWorkflowManager/.vs/PDFWorkflowManager/CopilotIndices/17.14.995.13737/SemanticSymbols.db deleted file mode 100644 index 92a03eb..0000000 Binary files a/PDFWorkflowManager/.vs/PDFWorkflowManager/CopilotIndices/17.14.995.13737/SemanticSymbols.db and /dev/null differ diff --git a/PDFWorkflowManager/.vs/PDFWorkflowManager/FileContentIndex/1810e685-4d22-4458-8c5e-5c8ed29b779a.vsidx b/PDFWorkflowManager/.vs/PDFWorkflowManager/FileContentIndex/1810e685-4d22-4458-8c5e-5c8ed29b779a.vsidx deleted file mode 100644 index 534e054..0000000 Binary files a/PDFWorkflowManager/.vs/PDFWorkflowManager/FileContentIndex/1810e685-4d22-4458-8c5e-5c8ed29b779a.vsidx and /dev/null differ diff --git a/PDFWorkflowManager/.vs/PDFWorkflowManager/v16/.suo b/PDFWorkflowManager/.vs/PDFWorkflowManager/v16/.suo deleted file mode 100644 index b3e81f5..0000000 Binary files a/PDFWorkflowManager/.vs/PDFWorkflowManager/v16/.suo and /dev/null differ diff --git a/PDFWorkflowManager/.vs/PDFWorkflowManager/v17/.suo b/PDFWorkflowManager/.vs/PDFWorkflowManager/v17/.suo deleted file mode 100644 index d10634a..0000000 Binary files a/PDFWorkflowManager/.vs/PDFWorkflowManager/v17/.suo and /dev/null differ diff --git a/PDFWorkflowManager/.vs/PDFWorkflowManager/v17/DocumentLayout.json b/PDFWorkflowManager/.vs/PDFWorkflowManager/v17/DocumentLayout.json deleted file mode 100644 index 425bf0e..0000000 --- a/PDFWorkflowManager/.vs/PDFWorkflowManager/v17/DocumentLayout.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "Version": 1, - "WorkspaceRootPath": "D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\", - "Documents": [], - "DocumentGroupContainers": [ - { - "Orientation": 0, - "VerticalTabListWidth": 256, - "DocumentGroups": [ - { - "DockedWidth": 200, - "SelectedChildIndex": -1, - "Children": [ - { - "$type": "Bookmark", - "Name": "ST:0:0:{56df62a4-05a3-4e5b-aa1a-99371ccfb997}" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/PDFWorkflowManager/PDFWorkflowManager/.vs/PDF Workflow Manager.csproj.dtbcache.json b/PDFWorkflowManager/PDFWorkflowManager/.vs/PDF Workflow Manager.csproj.dtbcache.json index cf70fd1..bddca4c 100644 --- a/PDFWorkflowManager/PDFWorkflowManager/.vs/PDF Workflow Manager.csproj.dtbcache.json +++ b/PDFWorkflowManager/PDFWorkflowManager/.vs/PDF Workflow Manager.csproj.dtbcache.json @@ -1 +1 @@ -{"RootPath":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\PDFWorkflowManager","ProjectFileName":"PDF Workflow Manager.csproj","Configuration":"Debug|x64","FrameworkPath":"","Sources":[{"SourceFile":"LanguagesForm.cs"},{"SourceFile":"LanguagesForm.Designer.cs"},{"SourceFile":"MainForm.cs"},{"SourceFile":"MainForm.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"SettingsForm.cs"},{"SourceFile":"SettingsForm.Designer.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\x64\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"}],"References":[{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\Magick.NET-Q8-AnyCPU.12.3.0\\lib\\netstandard20\\Magick.NET-Q8-AnyCPU.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\Magick.NET.Core.12.3.0\\lib\\netstandard20\\Magick.NET.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\Magick.NET.SystemDrawing.6.1.4\\lib\\net462\\Magick.NET.SystemDrawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\WindowsAPICodePack-Core.1.1.2\\lib\\Microsoft.WindowsAPICodePack.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\WindowsAPICodePack-Shell.1.1.1\\lib\\Microsoft.WindowsAPICodePack.Shell.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Configuration.Install.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Management.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\PDFWorkflowManager\\bin\\x64\\Debug\\PDF Workflow Manager.exe","OutputItemRelativePath":"PDF Workflow Manager.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file +{"RootPath":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\PDFWorkflowManager","ProjectFileName":"PDF Workflow Manager.csproj","Configuration":"Debug|x64","FrameworkPath":"","Sources":[{"SourceFile":"LanguagesForm.cs"},{"SourceFile":"LanguagesForm.Designer.cs"},{"SourceFile":"MainForm.cs"},{"SourceFile":"MainForm.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"SettingsForm.cs"},{"SourceFile":"SettingsForm.Designer.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\x64\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"}],"References":[{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\Magick.NET-Q8-AnyCPU.14.8.0\\lib\\netstandard20\\Magick.NET-Q8-AnyCPU.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\Magick.NET.Core.14.8.0\\lib\\netstandard20\\Magick.NET.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\Magick.NET.SystemDrawing.8.0.8\\lib\\net462\\Magick.NET.SystemDrawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\WindowsAPICodePack-Core.1.1.2\\lib\\Microsoft.WindowsAPICodePack.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\packages\\WindowsAPICodePack-Shell.1.1.1\\lib\\Microsoft.WindowsAPICodePack.Shell.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Configuration.Install.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Management.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\Gitea\\RCEU_PDFWorkflowManager\\PDFWorkflowManager\\PDFWorkflowManager\\bin\\x64\\Debug\\PDF Workflow Manager.exe","OutputItemRelativePath":"PDF Workflow Manager.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/PDFWorkflowManager/PDFWorkflowManager/ImageService.cs b/PDFWorkflowManager/PDFWorkflowManager/ImageService.cs new file mode 100644 index 0000000..28db40d --- /dev/null +++ b/PDFWorkflowManager/PDFWorkflowManager/ImageService.cs @@ -0,0 +1,56 @@ +using ImageMagick; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; + +namespace PDFWorkflowManager +{ + public static class ImageService + { + public static void ConvertToJpeg(string sourceFileName, string destinationFileName, int compressionLevel, int dpi = 300) + { + using (Image sourceImage = Image.FromFile(sourceFileName)) + { + float scaleFactor = dpi / sourceImage.HorizontalResolution; + int newWidth = (int)(sourceImage.Width * scaleFactor); + int newHeight = (int)(sourceImage.Height * scaleFactor); + + using (var newImage = new Bitmap(newWidth, newHeight)) + { + newImage.SetResolution(dpi, dpi); + using (Graphics graphics = Graphics.FromImage(newImage)) + { + graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; + graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; + graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + graphics.DrawImage(sourceImage, 0, 0, newWidth, newHeight); + } + EncoderParameters encoderParameters = new EncoderParameters(1); + encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, compressionLevel); + ImageCodecInfo jpegCodec = GetEncoderInfo(ImageFormat.Jpeg); + newImage.Save(destinationFileName, jpegCodec, encoderParameters); + } + } + } + + public static ImageCodecInfo GetEncoderInfo(ImageFormat format) + { + foreach (ImageCodecInfo codec in ImageCodecInfo.GetImageDecoders()) + { + if (codec.FormatID == format.Guid) + return codec; + } + return null; + } + + public static void CreateThumbnail(string fileName, string outputPath) + { + using (var image = new MagickImage(fileName)) + { + var size = new MagickGeometry(240, 340) { IgnoreAspectRatio = false }; + image.Resize(size); + image.Write(outputPath); + } + } + } +} \ No newline at end of file diff --git a/PDFWorkflowManager/PDFWorkflowManager/LanguageService.cs b/PDFWorkflowManager/PDFWorkflowManager/LanguageService.cs new file mode 100644 index 0000000..5c44187 --- /dev/null +++ b/PDFWorkflowManager/PDFWorkflowManager/LanguageService.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; + +namespace PDFWorkflowManager +{ + public static class LanguageService + { + public static readonly Dictionary LanguageCodes = new Dictionary + { + {"Afrikaans","af"}, {"Amharic","am"}, {"Arabic","ar"}, {"Assamese","as"}, {"Azerbaijani","az"}, + {"Belarusian","be"}, {"Bengali","bn"}, {"Bokmal","nb"}, {"Bulgarian","bg"}, {"Catalan","ca"}, + {"Chinese(Simplified)","zh-CN"}, {"Chinese(Traditional)","zh-TW"}, {"Croatian","hr"}, {"Czech","cs"}, + {"Danish","da"}, {"Dutch","nl"}, {"English","en"}, {"Estonian","et"}, {"Finnish","fi"}, + {"French","fr"}, {"German","de"}, {"Greek","el"}, {"Gujarati","gu"}, {"Hebrew","he"}, + {"Hindi","hi"}, {"Hungarian","hu"}, {"Icelandic","is"}, {"Indonesian","id"}, {"Italian","it"}, + {"Japanese","ja"}, {"Kannada","kn"}, {"Korean","ko"}, {"Latvian","lv"}, {"Lithuanian","lt"}, + {"Malayalam","ml"}, {"Marathi","mr"}, {"Nepali","ne"}, {"Norwegian","no"}, {"Oriya","or"}, + {"Polish","pl"}, {"Portuguese","pt"}, {"Punjabi","pa"}, {"Romanian","ro"}, {"Russian","ru"}, + {"Slovak","sk"}, {"Slovenian","sl"}, {"Spanish","es"}, {"Swahili","sw"}, {"Swedish","sv"}, + {"Tamil","ta"}, {"Telugu","te"}, {"Thai","th"}, {"Tibetan","bo"}, {"Turkish","tr"}, + {"Ukrainian","uk"}, {"Urdu","ur"}, {"Vietnamese","vi"} + }; + + public static readonly Dictionary TrainLanguage = new Dictionary + { + {"Afrikaans","afr"}, {"Amharic","amh"}, {"Arabic","ara"}, {"Assamese","asm"}, {"Azerbaijani","aze"}, + {"Belarusian","bel"}, {"Bengali","ben"}, {"Bokmal","nb"}, {"Bulgarian","bul"}, {"Catalan","ca"}, + {"Chinese(Simplified)","chi_sim"}, {"Chinese(Traditional)","chi_tra"}, {"Croatian","chr"}, {"Czech","ces"}, + {"Danish","dan"}, {"Dutch","nld"}, {"English","eng"}, {"Estonian","est"}, {"Finnish","fin"}, + {"French","fra"}, {"German","deu"}, {"Greek","ell"}, {"Gujarati","guj"}, {"Hebrew","heb"}, + {"Hindi","hin"}, {"Hungarian","hun"}, {"Icelandic","isl"}, {"Indonesian","ind"}, {"Italian","ita"}, + {"Japanese","jpn"}, {"Kannada","kan"}, {"Korean","kor"}, {"Latvian","lav"}, {"Lithuanian","lit"}, + {"Malayalam","mal"}, {"Marathi","mar"}, {"Nepali","nep"}, {"Norwegian","nor"}, {"Oriya","ori"}, + {"Polish","pol"}, {"Portuguese","por"}, {"Punjabi","pan"}, {"Romanian","ron"}, {"Russian","rus"}, + {"Slovak","slk"}, {"Slovenian","slv"}, {"Spanish","spa"}, {"Swahili","swa"}, {"Swedish","swe"}, + {"Tamil","tam"}, {"Telugu","tel"}, {"Thai","tha"}, {"Tibetan","bod"}, {"Turkish","tur"}, + {"Ukrainian","ukr"}, {"Urdu","urd"}, {"Vietnamese","vie"} + }; + } +} \ No newline at end of file diff --git a/PDFWorkflowManager/PDFWorkflowManager/MainForm.Designer.cs b/PDFWorkflowManager/PDFWorkflowManager/MainForm.Designer.cs index 04cde41..4c14ebb 100644 --- a/PDFWorkflowManager/PDFWorkflowManager/MainForm.Designer.cs +++ b/PDFWorkflowManager/PDFWorkflowManager/MainForm.Designer.cs @@ -1,5 +1,4 @@ - -namespace PDFWorkflowManager +namespace PDFWorkflowManager { partial class MainForm { @@ -944,6 +943,7 @@ namespace PDFWorkflowManager this.txtProjectDir.Name = "txtProjectDir"; this.txtProjectDir.Size = new System.Drawing.Size(280, 20); this.txtProjectDir.TabIndex = 50; + this.txtProjectDir.Leave += new System.EventHandler(this.txtProjectDir_Leave); // // watcherOut // diff --git a/PDFWorkflowManager/PDFWorkflowManager/MainForm.cs b/PDFWorkflowManager/PDFWorkflowManager/MainForm.cs index 8b77d88..a5e250c 100644 --- a/PDFWorkflowManager/PDFWorkflowManager/MainForm.cs +++ b/PDFWorkflowManager/PDFWorkflowManager/MainForm.cs @@ -280,6 +280,16 @@ namespace PDFWorkflowManager checkSimplex.Enabled = true; } + // FIXME - Call a function here to check dirs and files + check_input_dir(); + } + + + // Check input dir for origs dir and files + private void check_input_dir() + { + + Cursor.Current = Cursors.WaitCursor; if (!Directory.Exists(Path.Combine(txtProjectDir.Text, Properties.Settings.Default.OrigsDir))) { @@ -294,7 +304,7 @@ namespace PDFWorkflowManager return; } - if (Directory.Exists(Path.Combine(txtProjectDir.Text, origsDir)) && !Directory.Exists(Path.Combine(txtProjectDir.Text, Properties.Settings.Default.WorkDir))) + if (Directory.Exists(Path.Combine(txtProjectDir.Text, Properties.Settings.Default.OrigsDir)) && !Directory.Exists(Path.Combine(txtProjectDir.Text, Properties.Settings.Default.WorkDir))) { try { @@ -410,6 +420,8 @@ namespace PDFWorkflowManager catch { } + + Cursor.Current = Cursors.Default; } @@ -1294,7 +1306,7 @@ namespace PDFWorkflowManager private void aboutToolStripMenuItem_Click(object sender, EventArgs e) { - MessageBox.Show("PDF Workflow Manager v0.9.3 \r\n\r\nCopyright (c) 2023-2024 https://retro-commodore.eu", "Version", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show("PDF Workflow Manager v0.9.4 \r\n\r\nCopyright (c) 2023-2025 https://retro-commodore.eu", "Version", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void button1_Click(object sender, EventArgs e) @@ -1352,5 +1364,14 @@ namespace PDFWorkflowManager } } } + + private void txtProjectDir_Leave(object sender, EventArgs e) + { + // Use OrigsDir from settings instead of txtOrigsDir + if (Directory.Exists(Path.Combine(txtProjectDir.Text, Properties.Settings.Default.OrigsDir))) + { + check_input_dir(); + } + } } } diff --git a/PDFWorkflowManager/PDFWorkflowManager/MetadataService.cs b/PDFWorkflowManager/PDFWorkflowManager/MetadataService.cs new file mode 100644 index 0000000..594ea01 --- /dev/null +++ b/PDFWorkflowManager/PDFWorkflowManager/MetadataService.cs @@ -0,0 +1,34 @@ +using System; +using System.IO; +using System.Security.Cryptography; + +namespace PDFWorkflowManager +{ + public static class MetadataService + { + public static void WriteMetadata(string filePath, string contents) + { + File.WriteAllText(filePath, contents); + } + + public static string GetMD5(string file) + { + using (var md5 = MD5.Create()) + using (var stream = File.OpenRead(file)) + { + var hash = md5.ComputeHash(stream); + return BitConverter.ToString(hash).Replace("-", "").ToLower(); + } + } + + public static string GetSHA1(string file) + { + using (var sha1 = SHA1.Create()) + using (var stream = File.OpenRead(file)) + { + var hash = sha1.ComputeHash(stream); + return BitConverter.ToString(hash).Replace("-", "").ToLower(); + } + } + } +} \ No newline at end of file diff --git a/PDFWorkflowManager/PDFWorkflowManager/PDF Workflow Manager.csproj b/PDFWorkflowManager/PDFWorkflowManager/PDF Workflow Manager.csproj index 013f6cb..08dc8df 100644 --- a/PDFWorkflowManager/PDFWorkflowManager/PDF Workflow Manager.csproj +++ b/PDFWorkflowManager/PDFWorkflowManager/PDF Workflow Manager.csproj @@ -104,6 +104,8 @@ + + Form @@ -116,6 +118,8 @@ MainForm.cs + + diff --git a/PDFWorkflowManager/PDFWorkflowManager/PdfService.cs b/PDFWorkflowManager/PDFWorkflowManager/PdfService.cs new file mode 100644 index 0000000..17fe59f --- /dev/null +++ b/PDFWorkflowManager/PDFWorkflowManager/PdfService.cs @@ -0,0 +1,40 @@ +using System.Diagnostics; +using System.IO; + +namespace PDFWorkflowManager +{ + public static class PdfService + { + public static void MergePdfs(string pdfToolkitPath, string inputPattern, string bannerPage, string outputFile) + { + var startInfo = new ProcessStartInfo + { + FileName = pdfToolkitPath, + Arguments = $"\"{inputPattern}\" {bannerPage} cat output \"{outputFile}\"", + UseShellExecute = false, + RedirectStandardOutput = true, + CreateNoWindow = true + }; + using (var process = Process.Start(startInfo)) + { + process.WaitForExit(); + } + } + + public static void UpdatePdfMetadata(string ghostScriptPath, string tempFile, string metadataFile, string outputFile) + { + var startInfo = new ProcessStartInfo + { + FileName = ghostScriptPath, + Arguments = $"-dBATCH -dNOPAUSE -dAutoRotatePages=/None -sDEVICE=pdfwrite -sOutputFile=\"{outputFile}\" \"{tempFile}\" \"{metadataFile}\"", + UseShellExecute = false, + RedirectStandardOutput = true, + CreateNoWindow = true + }; + using (var process = Process.Start(startInfo)) + { + process.WaitForExit(120000); + } + } + } +} \ No newline at end of file