public static void MergeProblems(DirectoryInfo workDir, FileInfo f1, FileInfo f2, FileInfo f3, FileInfo f4) { if (!f1.FullName.EndsWith(".docx") || f1.Name.StartsWith("~$")) return; if (!f2.FullName.EndsWith(".docx") || f2.Name.StartsWith("~$")) return; if (!f3.FullName.EndsWith(".docx") || f3.Name.StartsWith("~$")) return; if (!f4.FullName.EndsWith(".docx") || f4.Name.StartsWith("~$")) return; string root = Directory.GetCurrentDirectory(); var id1 = Path.GetFileNameWithoutExtension(f1.Name); var id2 = Path.GetFileNameWithoutExtension(f2.Name); var id3 = Path.GetFileNameWithoutExtension(f3.Name); var id4 = Path.GetFileNameWithoutExtension(f4.Name); string outputName = id1 + id2 + id3 + id4; //Console.WriteLine("Generating problem set " + workDir.Name + "..."); try { var excelMerger = new ExcelMerger(); excelMerger.Merge(new[] { id1, id2, id3, id4 }, workDir.FullName + "\\" + outputName + ".xlsx"); excelMerger.Close(); Helper.CloseWordExcel(); } catch { } WordDocumentMerger m = new WordDocumentMerger(); m.InsertMerge(root + "\\template.docx", new string[] { root + "\\000.docx", f1.FullName, f2.FullName, f3.FullName, f4.FullName }, workDir.FullName + "\\" + outputName + ".docx"); //Helper.CloseWordExcel(); Helper.ConvertWordToPdf(workDir.FullName + "\\" + outputName + ".docx", workDir.FullName + "\\" + outputName + ".pdf"); }
public static void GenerateProblemSet(string outputDirectory, string id) { var excelMerger = new ExcelMerger(); Directory.CreateDirectory(outputDirectory); DirectoryInfo workDir = new DirectoryInfo(outputDirectory); workDir.Create(); Helper.Clear(workDir); string root = MainWindow.workDirectory; DirectoryInfo d1 = new DirectoryInfo("ch1"); DirectoryInfo d2 = new DirectoryInfo("ch2"); DirectoryInfo d3 = new DirectoryInfo("ch3"); DirectoryInfo d4 = new DirectoryInfo("ch4"); Helper.ConvertWordToPdf(root + "\\000.docx", root + "\\000.pdf"); /* Helper.Word2PdfInDir(d1); Helper.Word2PdfInDir(d2); Helper.Word2PdfInDir(d3); Helper.Word2PdfInDir(d4); */ if (id == null || id.Length == 0) { foreach (var f1 in d1.GetFiles()) foreach (var f2 in d2.GetFiles()) foreach (var f3 in d3.GetFiles()) foreach (var f4 in d4.GetFiles()) { if (!f1.FullName.EndsWith(".docx") || f1.Name.StartsWith("~$")) continue; if (!f2.FullName.EndsWith(".docx") || f2.Name.StartsWith("~$")) continue; if (!f3.FullName.EndsWith(".docx") || f3.Name.StartsWith("~$")) continue; if (!f4.FullName.EndsWith(".docx") || f4.Name.StartsWith("~$")) continue; var id1 = Path.GetFileNameWithoutExtension(f1.Name); var id2 = Path.GetFileNameWithoutExtension(f2.Name); var id3 = Path.GetFileNameWithoutExtension(f3.Name); var id4 = Path.GetFileNameWithoutExtension(f4.Name); string foldName = id1 + id2 + id3 + id4; //log.AppendText("Generating problem set " + foldName + "...\n"); DirectoryInfo current = new DirectoryInfo(workDir.FullName + "\\" + foldName); current.Create(); Helper.MergeProblems(current, f1, f2, f3, f4); } } else { string s1 = id.Substring(0, 3); string s2 = id.Substring(3, 3); string s3 = id.Substring(6, 3); string s4 = id.Substring(9, 3); var f1 = d1.GetFiles().Single(x => x.Name.StartsWith(s1)); var f2 = d2.GetFiles().Single(x => x.Name.StartsWith(s2)); var f3 = d3.GetFiles().Single(x => x.Name.StartsWith(s3)); var f4 = d4.GetFiles().Single(x => x.Name.StartsWith(s4)); var id1 = Path.GetFileNameWithoutExtension(f1.Name); var id2 = Path.GetFileNameWithoutExtension(f2.Name); var id3 = Path.GetFileNameWithoutExtension(f3.Name); var id4 = Path.GetFileNameWithoutExtension(f4.Name); string foldName = id1 + id2 + id3 + id4; //log.AppendText("Generating problem set " + foldName + "...\n"); DirectoryInfo current = new DirectoryInfo(workDir.FullName + "\\" + foldName); current.Create(); Helper.MergeProblems(current, f1, f2, f3, f4); } excelMerger.Close(); }