Exemplo n.º 1
0
        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");
            


            
        }
Exemplo n.º 2
0
        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();
        }