OneNoteConversionTool.FormatReaders.EpubReader.GetPagesAsHtmlDocuments C# (CSharp) Method

GetPagesAsHtmlDocuments() public method

Gets the html code for each page
public GetPagesAsHtmlDocuments ( ) : List
return List
		public List<HtmlDocument> GetPagesAsHtmlDocuments()
		{
			var pagesAsHtml = new List<HtmlDocument>();

			// Get the pages as html
			foreach (string pagePath in GetPagePaths())
			{
				var htmlDoc = new HtmlDocument();
				htmlDoc.Load(pagePath);

				// Remove Title
				HtmlNode titleNode = htmlDoc.DocumentNode.SelectSingleNode("//h1");
				if (titleNode != null)
				{
					titleNode.Remove();
				}

				// Remove <![CDATA[]]> from Script and style nodes
				HtmlNodeCollection scriptAndStyleNodes = htmlDoc.DocumentNode.SelectNodes("//script | //style");
				if (scriptAndStyleNodes != null)
				{
					foreach (var node in scriptAndStyleNodes)
					{
						node.InnerHtml = node.InnerHtml.Replace("<![CDATA[", "").Replace("]]>", "");
					}
				}

				// Convert MathML
				ConvertMathMl(htmlDoc);

				// Replace relative paths in links with full paths
				UseFullPathForLinks(htmlDoc, pagePath);

				// Ensure that images have their full dimenssions (up to max width of 960 px)
				AddImageDimenssionsToHtml(htmlDoc);

				pagesAsHtml.Add(htmlDoc);
			}

			return pagesAsHtml;
		}

Usage Example

		/// <summary>
		/// Converts the ePub document input file into OneNote
		/// </summary>
		/// <param name="inputFile"></param>
		/// <param name="outputDir"></param>
		/// <returns></returns>
		public virtual bool ConvertEpubToOneNote(string inputFile, string outputDir)
		{
			try
			{
				// Initialize epub reader class
				var epub = new EpubReader(inputFile, outputDir);

				// Get the page contents
				List<string> pageTitles = epub.GetPageTitles();
				List<HtmlDocument> pagesHtml = epub.GetPagesAsHtmlDocuments();
				List<string> pagePaths = epub.GetPagePaths();
				Dictionary<string, int> pagesLevel = epub.GetPagesLevel();

				// Create a new OneNote Notebook
				var note = new OneNoteGenerator(outputDir);
				string notebookId = note.CreateNotebook(GetSupportedInputFormat());
				string sectionId = note.CreateSection(epub.GetTitle(), notebookId);

				// Create pages
				var pageIds = pageTitles.Select(pageTitle => note.CreatePage(pageTitle, sectionId)).ToArray();

				// Get links to pages
				var pageLinks = pageIds.Select(pageId => note.GetHyperLinkToObject(pageId)).ToList();

				// Replace links to .html with .one
				ReplaceEpubLinksFromHtmlToOneNote(pagesHtml, pagePaths, pageLinks);

				// Add content to pages
				for (var i = 0; i < pageIds.Length; i++)
				{
					note.AppendPageContentAsHtmlBlock(pageIds[i], pagesHtml[i].DocumentNode.OuterHtml);
					if (pagesLevel.ContainsKey(pagePaths[i]))
					{
						note.SetPageLevel(pageIds[i], pagesLevel[pagePaths[i]]);
					}
				}

				return true;
			}
			catch (Exception e)
			{
				Console.WriteLine(@"Error in ConvertEpubToOneNote for file {0}: {1}", inputFile, e.Message);
				return false;
			}
		}