static void Main(string[] args) { string firstPassword = ""; string secondPassword = ""; do { if (firstPassword != secondPassword) { Console.WriteLine("Passwords do not match!"); } Console.Write("Enter your password: "******"Confirm your password: "******"The Password You entered is : " + firstPassword); Console.WriteLine("The Hash : " + HashUtil.Encrypt(firstPassword)); #endif try { // open config string configPath = Directory.GetCurrentDirectory() + @"\CatalogPrinter.config"; if (!File.Exists(configPath)) { throw new Exception($"Config file " + configPath + " not found!"); } ExeConfigurationFileMap configMap = new ExeConfigurationFileMap(); configMap.ExeConfigFilename = configPath; Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None); var appSettings = config.GetSection("appSettings") as AppSettingsSection; // get config values string oldHash = appSettings.Settings["password"].Value; string masterCatalog = appSettings.Settings["masterCatalog"].Value; // encrypt new password string encryptedPassword = HashUtil.Encrypt(firstPassword); // try opening catalog with old password and change the password if (!File.Exists(masterCatalog)) { throw new Exception($"Workbook " + masterCatalog + " not found!"); } Console.WriteLine("Changing the password..."); string oldPassword = HashUtil.Decrypt(oldHash); Workbook wb = ExcelUtility.GetWorkbook(masterCatalog, oldPassword); if (wb == null) { throw new Exception($"Wrong password for workbook " + masterCatalog + "!"); } wb.Password = firstPassword; ExcelUtility.CloseWorkbook(wb, true); // write new encrypted password to config appSettings.Settings["password"].Value = encryptedPassword; config.Save(ConfigurationSaveMode.Modified); Console.WriteLine("Success! Press Enter to close the application."); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine("Error! Could not change the password!"); } Console.ReadLine(); }
private void Print_Button_Click(object sender, RoutedEventArgs e) { try { // open config string configPath = Directory.GetCurrentDirectory() + @"\CatalogPrinter.config"; if (!File.Exists(configPath)) { throw new Exception($"Config file " + configPath + " not found!"); } ExeConfigurationFileMap configMap = new ExeConfigurationFileMap(); configMap.ExeConfigFilename = configPath; Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None); var appSettings = config.GetSection("appSettings") as AppSettingsSection; // get config values string hash = appSettings.Settings["password"]?.Value; string masterCatalog = appSettings.Settings["masterCatalog"]?.Value; string clientCatalog = appSettings.Settings["clientCatalog"]?.Value; string outputPath = appSettings.Settings["outputPath"]?.Value; if (hash == null) { throw new Exception($"Could not find 'password' key in " + configPath + "!"); } if (masterCatalog == null) { throw new Exception($"Could not find 'masterCatalog' key in " + configPath + "!"); } if (clientCatalog == null) { throw new Exception($"Could not find 'clientCatalog' key in " + configPath + "!"); } if (outputPath == null) { throw new Exception($"Could not find 'outputPath' key in " + configPath + "!"); } // check if files exists if (!File.Exists(masterCatalog)) { throw new Exception($"Workbook " + masterCatalog + " not found!"); } if (!File.Exists(clientCatalog)) { throw new Exception($"Workbook " + clientCatalog + " not found!"); } // open master workbook string password = HashUtil.Decrypt(hash); Workbook = ExcelUtility.GetWorkbook(masterCatalog, password); // get catalog type string catalogType = CatalogTypeComboBox.SelectedItem.ToString(); // open temp workbook to which the sheets of interest are copied to Workbook2Print = ExcelUtility.XlApp.Workbooks.Add(); if (!Directory.Exists(_tmpWorkbookDir)) { Directory.CreateDirectory(_tmpWorkbookDir); } Workbook2Print?.SaveAs(_tmpWorkbookDir + _tmpWokbookName); // get sheet order to print var sheetOrder = GetSheetOrder(catalogType, clientCatalog); string leftHeader = "null", centerHeader = "null", rightHeader = "null", leftFooter = "null", rightFooter = "null"; // copy necessary sheets to temp workbook and put sheets in correct order foreach (var shName in sheetOrder) { if (ExcelUtility.GetWorksheetByName(Workbook, shName) == null) { throw new Exception($"Sheet " + shName + " not found in workbook " + masterCatalog + "!" + "\nPlease check the sheet order input in " + clientCatalog + " for " + catalogType + "."); } // set catalog type Workbook.Sheets[shName].Cells[11, 2] = catalogType; leftHeader = (Workbook.Sheets[shName].Cells[16, 2] as Range).Value as string ?? "null"; centerHeader = (Workbook.Sheets[shName].Cells[17, 2] as Range).Value as string ?? "null"; var rightHeaderDate = ((Workbook.Sheets[shName].Cells[18, 2] as Range).Value); rightHeader = "null"; if (rightHeaderDate != null) { rightHeader = rightHeaderDate.ToString("dd/MM/yyyy"); } leftFooter = (Workbook.Sheets[shName].Cells[19, 2] as Range).Value as string ?? "null"; rightFooter = (Workbook.Sheets[shName].Cells[20, 2] as Range).Value as string ?? "null"; // copy sheet if (catalogType == "Particulier") { //SetBtwField(Workbook.Sheets[shName], true); Workbook.Sheets[shName].Copy(After: Workbook2Print.Sheets[Workbook2Print.Sheets.Count]); Workbook2Print.Sheets[Workbook2Print.Sheets.Count].Cells[8, 2] = "ja"; //SetBtwField(Workbook.Sheets[shName], false); Workbook.Sheets[shName].Copy(After: Workbook2Print.Sheets[Workbook2Print.Sheets.Count]); Workbook2Print.Sheets[Workbook2Print.Sheets.Count].Cells[8, 2] = "neen"; } else { Workbook.Sheets[shName].Copy(After: Workbook2Print.Sheets[Workbook2Print.Sheets.Count]); } } // delete default first sheet on creation of workbook Workbook2Print.Activate(); Workbook2Print.Worksheets[1].Delete(); // format and print sheets string outputFile = outputPath + @"\catalog.pdf"; if (ExcelUtility.IsFileInUse(outputFile)) { throw new Exception(outputFile + " is open, please close it and press 'Print' again."); } foreach (Worksheet sh in Workbook2Print.Worksheets) { FormatSheet(sh, leftHeader, centerHeader, rightHeader, leftFooter, rightFooter); } Workbook2Print.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, outputFile, OpenAfterPublish: true); MessageBox.Show("Done!"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { ExcelUtility.CloseWorkbook(Workbook, false); ExcelUtility.CloseWorkbook(WorkbookSheetOrder, false); ExcelUtility.CloseWorkbook(Workbook2Print, true); File.Delete(_tmpWorkbookDir + _tmpWokbookName); ExcelUtility.CloseExcel(); } }