Starting with v16.4.0.x, if you reference Syncfusion assemblies from trial setup or from the NuGet feed, include a license key in your projects. Refer to this link to learn about registering Syncfusion license key in your ASP.NET MVC application to use Syncfusion components.
To get started with ASP.NET MVC application, ensure that the following software is installed on the machine.
The following steps are used to create ASP.NET MVC application.
Step 1: Create ASP.NET MVC web application with default template project in Visual Studio.
Step 2: After creating the project, add the following dependencies to your application by using NuGet Package Manager
.
Open the NuGet
package manager.
Install the Syncfusion.EJ2.MVC5 package to the application.
Install the Syncfusion.EJ2.PdfViewer.AspNet.Mvc5 package to the application.
Step 3: Add Syncfusion.EJ2
namespace reference in Web.config
<namespaces>
<add namespace="Syncfusion.EJ2"/>
<add namespace="Syncfusion.EJ2.PdfViewer"/>
</namespaces>
<system.web>
<compilation>
<assemblies>
<add assembly="Syncfusion.EJ2, Culture=neutral"/>
<add assembly="Syncfusion.EJ2.PdfViewer, Culture=neutral"/>
</assemblies>
</compilation>
</system.web>
Step 4: Add client side resource through CDN
or local package
in the layout page _Layout.cshtml
.
{% aspCodeBlock %}
@* Syncfusion Essential JS2 Scripts *@
<script src="https://cdn.syncfusion.com/ej2/dist/ej2.min.js"></script>
{% endaspCodeBlock %}
Step 5: Adding Script Manager in the layout page _Layout.cshtml
.
@Html.EJS().ScriptManager()
Step 6: Add the following code to the Index.cshtml view page, which is presented under Views/Home folder, to initialize the PDF Viewer.
<div style="height:500px;width:100%;">
@Html.EJS().PdfViewer("pdfviewer").ServiceUrl(VirtualPathUtility.ToAbsolute("~/PdfViewer/")).Render()
</div>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Syncfusion.EJ2.PdfViewer;
using Newtonsoft.Json;
using System.IO;
using System.Reflection;
namespace Ej2Viewer.Controllers
{
public partial class PdfViewerController : Controller
{
public PdfViewerController()
{
}
[System.Web.Mvc.HttpPost]
public ActionResult Load(jsonObjects jsonObject)
{
PdfRenderer pdfviewer = new PdfRenderer();
MemoryStream stream = new MemoryStream();
var jsonData = JsonConverter(jsonObject);
object jsonResult = new object();
if (jsonObject != null && jsonData.ContainsKey("document"))
{
if (bool.Parse(jsonData["isFileName"]))
{
string documentPath = GetDocumentPath(jsonData["document"]);
if (!string.IsNullOrEmpty(documentPath))
{
byte[] bytes = System.IO.File.ReadAllBytes(documentPath);
stream = new MemoryStream(bytes);
}
else
{
return this.Content(jsonData["document"] + " is not found");
}
}
else
{
byte[] bytes = Convert.FromBase64String(jsonData["document"]);
stream = new MemoryStream(bytes);
}
}
jsonResult = pdfviewer.Load(stream, jsonData);
return Content(JsonConvert.SerializeObject(jsonResult));
}
public Dictionary<string, string> JsonConverter(jsonObjects results)
{
Dictionary<string, object> resultObjects = new Dictionary<string, object>();
resultObjects = results.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)
.ToDictionary(prop => prop.Name, prop => prop.GetValue(results, null));
var emptyObjects = (from kv in resultObjects
where kv.Value != null
select kv).ToDictionary(kv => kv.Key, kv => kv.Value);
Dictionary<string, string> jsonResult = emptyObjects.ToDictionary(k => k.Key, k => k.Value.ToString());
return jsonResult;
}
[System.Web.Mvc.HttpPost]
public ActionResult RenderPdfPages(jsonObjects jsonObject)
{
PdfRenderer pdfviewer = new PdfRenderer();
var jsonData = JsonConverter(jsonObject);
object jsonResult = pdfviewer.GetPage(jsonData);
return Content(JsonConvert.SerializeObject(jsonResult));
}
[System.Web.Mvc.HttpPost]
public ActionResult Unload(jsonObjects jsonObject)
{
PdfRenderer pdfviewer = new PdfRenderer();
var jsonData = JsonConverter(jsonObject);
pdfviewer.ClearCache(jsonData);
return this.Content("Document cache is cleared");
}
[System.Web.Mvc.HttpPost]
public ActionResult RenderThumbnailImages(jsonObjects jsonObject)
{
PdfRenderer pdfviewer = new PdfRenderer();
var jsonData = JsonConverter(jsonObject);
object result = pdfviewer.GetThumbnailImages(jsonData);
return Content(JsonConvert.SerializeObject(result));
}
[System.Web.Mvc.HttpPost]
public ActionResult Bookmarks(jsonObjects jsonObject)
{
PdfRenderer pdfviewer = new PdfRenderer();
var jsonData = JsonConverter(jsonObject);
object jsonResult = pdfviewer.GetBookmarks(jsonData);
return Content(JsonConvert.SerializeObject(jsonResult));
}
[System.Web.Mvc.HttpPost]
public ActionResult Download(jsonObjects jsonObject)
{
PdfRenderer pdfviewer = new PdfRenderer();
var jsonData = JsonConverter(jsonObject);
string documentBase = pdfviewer.GetDocumentAsBase64(jsonData);
return Content(documentBase);
}
private string GetDocumentPath(string document)
{
string documentPath = string.Empty;
if (!System.IO.File.Exists(document))
{
var path = "";
if (System.IO.File.Exists(path + "\\Data\\" + document))
documentPath = path + "\\Data\\" + document;
}
else
{
documentPath = document;
}
return documentPath;
}
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET: Default
public ActionResult Index()
{
return View();
}
// GET: Default/Details/5
public ActionResult Details(int id)
{
return View();
}
// GET: Default/Create
public ActionResult Create()
{
return View();
}
// POST: Default/Create
public ActionResult Create(FormCollection collection)
{
try
{
// TODO: Add insert logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
// GET: Default/Edit/5
public ActionResult Edit(int id)
{
return View();
}
// POST: Default/Edit/5
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: Add update logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
// GET: Default/Delete/5
public ActionResult Delete(int id)
{
return View();
}
// POST: Default/Delete/5
public ActionResult Delete(int id, FormCollection collection)
{
try
{
// TODO: Add delete logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
public class jsonObjects { public string document { get; set; } public string password { get; set; } public string zoomFactor { get; set; } public string isFileName { get; set; } public string xCoordinate { get; set; } public string yCoordinate { get; set; } public string pageNumber { get; set; } public string documentId { get; set; } public string hashId { get; set; } public string sizeX { get; set; } public string sizeY { get; set; } public string startPage { get; set; } public string endPage { get; set; } }
}