internal void WriteOutputFile(LeadSheet ls, string outputPath) { var order = ls.Order.Split('|'); pptHandler.CreateNewPPT(); //write Title pptHandler.AddText(ls.Title.ToUpper(), (float)20, Helpers.PowerpointHandling.Orientation.Right, System.Drawing.Color.White, false, false); pptHandler.ShiftY(pptHandler.PositionFromTop); //Preshift //write Intro Chords if (ls.Intro.Count != 0 && (!order.Contains("INTRO"))) { pptHandler.ShiftY((float)(-1.8 * Helpers.QualifierHelper.QualifiersWithTextHeight["Default"])); //Intro can fit next to the title --> so move it two lines up AppendText("INTRO", ls.RetrieveFromCategory("INTRO"), Helpers.QualifierHelper.QualifiersWithColors["INTRO"]); } foreach (var o in order) { if (!String.IsNullOrWhiteSpace(o)) { if (o == "INTRO") { pptHandler.ShiftY((float)(-1.8 * Helpers.QualifierHelper.QualifiersWithTextHeight["Default"])); //Intro can fit next to the title --> so move it two lines up } AppendText(o, ls.RetrieveFromCategory(o), Helpers.QualifierHelper.QualifiersWithColors[o]); } } }
internal LeadSheet ReadWordFile(string inputPath) { var documentInfo = WH.RetrieveTextWithPosition(inputPath); var header = documentInfo.Header; var documentLines = documentInfo.Text.Split('\r', '\a', '\f', '\v', '\n').ToList(); string title = ""; if (header.Contains("0") || header.Contains("\t")) //zero in header is equivalent to tab { title = header.Split('0', '\t')[1]; } else { title = documentLines[0]; documentLines.RemoveAt(0); if (documentLines[0].TrimStart('\t', ' ').StartsWith("(")) { //second line starts with bracket --> also part of the title, but not relevant to be on the screen documentLines.RemoveAt(0); } } var ls = new LeadSheet(title); var currentCategoryName = ""; var currentCategoryLines = new List <string>(); // organize by type foreach (var documentLine in documentLines) { var line = documentLine; if (IsCategoryQualifier(line)) { //write to Leadsheet ls.WriteToCategory(currentCategoryName, currentCategoryLines); ls.Order += currentCategoryName + "|"; //Get new Type currentCategoryLines = new List <string>(); //Get Category Name currentCategoryName = GetCategoryQualifier(line); //it might be that there is already real text within this line var remainingLine = TrimLineFromQualifier(line, currentCategoryName); if (!String.IsNullOrEmpty(remainingLine.Trim())) { currentCategoryLines.Add(remainingLine); } } else { //only non- Blanks if (line.Trim() != string.Empty) { currentCategoryLines.Add(line);//do not add .Trim() here, bc. we also need the whitespaces } } } //also write last Category ls.WriteToCategory(currentCategoryName, currentCategoryLines); ls.Order += currentCategoryName; return(ls); }