With HiQPdf library you can convert PDF pages to HTML documents using the HiQPdfClientPdfToHtml class. You can convert to HTML documents encapsulated in HiQPdfClientPdfPageHtmlCode objects in memory using the PdfToHtmlConvertToHtml(String, Int32, Int32) method or to HTML files using the PdfToHtmlConvertToHtmlFiles(String, Int32, Int32, String, String) method. There is also a special method PdfToHtmlRaisePageConvertedToHtmlEvent(String, Int32, Int32) which can be used to convert the PDF document pages to HTML one by one in memory to avoid high memory usage for large PDF documents. The HiQPdfClientPdfPageHtmlCode objects can be disposed when they are no longer necessary.
In this demo you can learn how to convert the pages of a PDF document to HTML documents. You can choose the resolution of the resulted HTML document, the zoom level and the range of PDF pages to convert to HTML.
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Hosting; using System.Text; using HiQPdfClient; namespace HiQPdf_Demo.Controllers { public class PdfToHtmlConverterController : Controller { IWebHostEnvironment m_hostingEnvironment; public PdfToHtmlConverterController(IWebHostEnvironment hostingEnvironment) { m_hostingEnvironment = hostingEnvironment; } // GET: PdfToHtmlConverter public ActionResult Index() { SetCrtPageUri(); return View(); } [HttpPost] public ActionResult ConvertPdfToHtml(IFormCollection collection) { string serverIP = collection["textBoxServerIP"]; uint serverPort = uint.Parse(collection["textBoxServerPort"]); string serverPassword = collection["textBoxServerPassword"]; // get the PDF file string pdfFile = m_hostingEnvironment.WebRootPath + "/DemoFiles/Pdf/Presentation.pdf"; // create the PDF to HTML converter PdfToHtml pdfToHtmlConverter = new PdfToHtml(serverIP, serverPort); // use server password if necessary if (serverPassword.Length > 0) pdfToHtmlConverter.ServerPassword = serverPassword; // set a demo serial number pdfToHtmlConverter.SerialNumber = "YCgJMTAE-BiwJAhIB-EhlWTlBA-UEBRQFBA-U1FOUVJO-WVlZWQ=="; // set the conversion resolution in DPI pdfToHtmlConverter.DPI = int.Parse(collection["textBoxDPI"]); // set the zoom level pdfToHtmlConverter.Zoom = int.Parse(collection["textBoxZoom"]); int fromPdfPageNumber = int.Parse(collection["textBoxFromPage"]); int toPdfPageNumber = collection["textBoxToPage"][0].Length > 0 ? int.Parse(collection["textBoxToPage"]) : 0; // convert a range of pages of the PDF document to HTML documents in memory // the HTML can also be produced to a folder using the ConvertToHtmlFiles method // or they can be produced one by one using the RaisePageConvertedToHtmlEvent method PdfPageHtmlCode[] htmlDocuments = pdfToHtmlConverter.ConvertToHtml(pdfFile, fromPdfPageNumber, toPdfPageNumber); // return if no page was converted if (htmlDocuments.Length == 0) return Redirect("/PdfToHtmlConverter"); // get the first page HTML bytes in a buffer byte[] htmlDocumentBuffer = null; try { // get the HTML document UTF-8 bytes htmlDocumentBuffer = Encoding.UTF8.GetBytes(htmlDocuments[0].HtmlCode); } finally { // dispose the HTML documents for (int i = 0; i < htmlDocuments.Length; i++) htmlDocuments[i].Dispose(); } FileResult fileResult = new FileContentResult(htmlDocumentBuffer, "text/html; charset=UTF-8"); fileResult.FileDownloadName = "Page.html"; return fileResult; } private void SetCrtPageUri() { HttpRequest httpRequest = this.ControllerContext.HttpContext.Request; UriBuilder uriBuilder = new UriBuilder(); uriBuilder.Scheme = httpRequest.Scheme; uriBuilder.Host = httpRequest.Host.Host; if (httpRequest.Host.Port != null) uriBuilder.Port = (int)httpRequest.Host.Port; uriBuilder.Path = httpRequest.PathBase.ToString() + httpRequest.Path.ToString(); uriBuilder.Query = httpRequest.QueryString.ToString(); ViewData["CrtPageUri"] = uriBuilder.Uri.AbsoluteUri; } } }