PDF Viewer Settings

HiQPdf HTML to PDF Converter for .NET offers the ability to control how the generated PDF document is displayed in a PDF viewer, such as Adobe Reader. Available options include hiding the PDF viewer menu and toolbar, initially displaying the Bookmarks, Thumbnails or Attachments panel, and displaying the PDF pages in one or two columns.

The PDF viewer settings are encapsulated in the HiQPdf.NextPdfViewer class. An object of this type is exposed by the PdfDocumentControlViewer property, while an object of the PdfDocumentControl class is exposed by the Document property of the HiQPdf.NextHtmlToPdf class.

PDF Viewer Settings Demo Source Code

C#
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Mvc;
using HiQPdf_Next_AspNetDemo.Models;

using HiQPdf.Next;

namespace HiQPdf_Next_AspNetDemo.Controllers
{
    public class PdfViewerSettingsController : Controller
    {
        public IActionResult Index()
        {
            var model = SetViewModel();
            return View(model);
        }

        [HttpPost]
        public ActionResult ConvertToPdf(PdfViewerSettingsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errorMessage = ModelStateHelper.GetModelErrors(ModelState);
                throw new ValidationException(errorMessage);
            }

            // Set the serial number received after purchase to use the library in licensed mode; leave it commented for demo mode
            // Licensing.SerialNumber = "your-serial-number";

            // create the HTML to PDF converter
            HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

            // Set the PDF Viewer Preferences

            // Set page layout to continuous one column, single page, two column left, two column right
            htmlToPdfConverter.Document.Viewer.PageLayout = GetSelectedPageLayout(model.PageLayout);
            // Set page mode to default, display bookmarks, display thumbnails, display attachments
            htmlToPdfConverter.Document.Viewer.PageMode = GetSelectedPageMode(model.PageMode);

            // Hide the viewer menu
            htmlToPdfConverter.Document.Viewer.HideMenuBar = model.HideMenuBar;
            // Hide the viewer toolbar
            htmlToPdfConverter.Document.Viewer.HideToolbar = model.HideToolbar;
            // Hide scroll bars and navigation controls
            htmlToPdfConverter.Document.Viewer.HideWindowUI = model.HideWindowUI;

            // Display the document title in viewer title bar
            htmlToPdfConverter.Document.Viewer.DisplayDocTitle = model.DisplayDocTitle;

            // convert URL to a PDF memory buffer
            string url = model.Url;

            byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory(url);

            FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf");
            fileResult.FileDownloadName = "PdfViewerSettings.pdf";

            return fileResult;
        }

        private PdfPageLayout GetSelectedPageLayout(string pageLayout)
        {
            switch (pageLayout)
            {
                case "Single Page":
                    return PdfPageLayout.SinglePage;
                case "One Column":
                    return PdfPageLayout.OneColumn;
                case "Two Column Left":
                    return PdfPageLayout.TwoColumnLeft;
                case "Two Column Right":
                    return PdfPageLayout.TwoColumnRight;
                default:
                    return PdfPageLayout.OneColumn;
            }
        }

        private PdfPageMode GetSelectedPageMode(string pageMode)
        {
            switch (pageMode)
            {
                case "Default":
                    return PdfPageMode.None;
                case "Outlines":
                    return PdfPageMode.Outlines;
                case "Thumbnails":
                    return PdfPageMode.Thumbnails;
                case "Full Screen":
                    return PdfPageMode.FullScreen;
                case "Optional Content":
                    return PdfPageMode.OptionalContent;
                case "Attachments":
                    return PdfPageMode.Attachments;
                default:
                    return PdfPageMode.None;
            }
        }

        private PdfViewerSettingsViewModel SetViewModel()
        {
            var model = new PdfViewerSettingsViewModel();
            return model;
        }
    }
}

See Also