diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample.sln b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample.sln
new file mode 100644
index 0000000..fcca1a3
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.10.34607.79
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PDFViewerSample", "PDFViewerSample\PDFViewerSample.csproj", "{3936B843-A035-424E-BA4B-990436AC60BD}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {3936B843-A035-424E-BA4B-990436AC60BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3936B843-A035-424E-BA4B-990436AC60BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3936B843-A035-424E-BA4B-990436AC60BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3936B843-A035-424E-BA4B-990436AC60BD}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {31245B35-82FC-4C3B-A888-4730D0AD8EE0}
+ EndGlobalSection
+EndGlobal
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/PDFViewerSample.csproj b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/PDFViewerSample.csproj
new file mode 100644
index 0000000..9920749
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/PDFViewerSample.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/PDFViewerSample.csproj.user b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/PDFViewerSample.csproj.user
new file mode 100644
index 0000000..db3a939
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/PDFViewerSample.csproj.user
@@ -0,0 +1,9 @@
+
+
+
+ IIS Express
+
+
+ ProjectDebugger
+
+
\ No newline at end of file
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Error.cshtml b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Error.cshtml
new file mode 100644
index 0000000..6f92b95
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Error.cshtml
@@ -0,0 +1,26 @@
+@page
+@model ErrorModel
+@{
+ ViewData["Title"] = "Error";
+}
+
+
Error.
+An error occurred while processing your request.
+
+@if (Model.ShowRequestId)
+{
+
+ Request ID: @Model.RequestId
+
+}
+
+Development Mode
+
+ Swapping to the Development environment displays detailed information about the error that occurred.
+
+
+ The Development environment shouldn't be enabled for deployed applications.
+ It can result in displaying sensitive information from exceptions to end users.
+ For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development
+ and restarting the app.
+
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Error.cshtml.cs b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Error.cshtml.cs
new file mode 100644
index 0000000..c008cae
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Error.cshtml.cs
@@ -0,0 +1,28 @@
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+using System.Diagnostics;
+
+namespace PDFViewerSample.Pages
+{
+ [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
+ [IgnoreAntiforgeryToken]
+ public class ErrorModel : PageModel
+ {
+ public string? RequestId { get; set; }
+
+ public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
+
+ private readonly ILogger _logger;
+
+ public ErrorModel(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ public void OnGet()
+ {
+ RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
+ }
+ }
+
+}
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Index.cshtml b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Index.cshtml
new file mode 100644
index 0000000..11f166a
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Index.cshtml
@@ -0,0 +1,97 @@
+@page "{handler?}"
+@model IndexModel
+@{
+ ViewData["Title"] = "Home page";
+}
+
+
+
+
+
+
+
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Index.cshtml.cs b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Index.cshtml.cs
new file mode 100644
index 0000000..ef356dd
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Index.cshtml.cs
@@ -0,0 +1,20 @@
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+
+namespace PDFViewerSample.Pages
+{
+ public class IndexModel : PageModel
+ {
+ private readonly ILogger _logger;
+
+ public IndexModel(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ public void OnGet()
+ {
+
+ }
+ }
+}
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Privacy.cshtml b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Privacy.cshtml
new file mode 100644
index 0000000..46ba966
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Privacy.cshtml
@@ -0,0 +1,8 @@
+@page
+@model PrivacyModel
+@{
+ ViewData["Title"] = "Privacy Policy";
+}
+@ViewData["Title"]
+
+Use this page to detail your site's privacy policy.
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Privacy.cshtml.cs b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Privacy.cshtml.cs
new file mode 100644
index 0000000..cd60641
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Privacy.cshtml.cs
@@ -0,0 +1,20 @@
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+
+namespace PDFViewerSample.Pages
+{
+ public class PrivacyModel : PageModel
+ {
+ private readonly ILogger _logger;
+
+ public PrivacyModel(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ public void OnGet()
+ {
+ }
+ }
+
+}
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Shared/_Layout.cshtml b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Shared/_Layout.cshtml
new file mode 100644
index 0000000..39f57c3
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Shared/_Layout.cshtml
@@ -0,0 +1,30 @@
+
+
+
+
+
+ @ViewData["Title"] - PDFViewerSample
+
+
+
+
+
+
+
+
+
+
+
+ @RenderBody()
+
+
+
+
+
+
+
+ @await RenderSectionAsync("Scripts", required: false)
+
+
+
+
\ No newline at end of file
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Shared/_Layout.cshtml.css b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Shared/_Layout.cshtml.css
new file mode 100644
index 0000000..c187c02
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Shared/_Layout.cshtml.css
@@ -0,0 +1,48 @@
+/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
+for details on configuring this project to bundle and minify static web assets. */
+
+a.navbar-brand {
+ white-space: normal;
+ text-align: center;
+ word-break: break-all;
+}
+
+a {
+ color: #0077cc;
+}
+
+.btn-primary {
+ color: #fff;
+ background-color: #1b6ec2;
+ border-color: #1861ac;
+}
+
+.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
+ color: #fff;
+ background-color: #1b6ec2;
+ border-color: #1861ac;
+}
+
+.border-top {
+ border-top: 1px solid #e5e5e5;
+}
+.border-bottom {
+ border-bottom: 1px solid #e5e5e5;
+}
+
+.box-shadow {
+ box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
+}
+
+button.accept-policy {
+ font-size: 1rem;
+ line-height: inherit;
+}
+
+.footer {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ white-space: nowrap;
+ line-height: 60px;
+}
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Shared/_ValidationScriptsPartial.cshtml b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Shared/_ValidationScriptsPartial.cshtml
new file mode 100644
index 0000000..5a16d80
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/Shared/_ValidationScriptsPartial.cshtml
@@ -0,0 +1,2 @@
+
+
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/_ViewImports.cshtml b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/_ViewImports.cshtml
new file mode 100644
index 0000000..51b8015
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/_ViewImports.cshtml
@@ -0,0 +1,4 @@
+@using PDFViewerSample
+@namespace PDFViewerSample.Pages
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
+@addTagHelper *, Syncfusion.EJ2
\ No newline at end of file
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/_ViewStart.cshtml b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/_ViewStart.cshtml
new file mode 100644
index 0000000..a5f1004
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Pages/_ViewStart.cshtml
@@ -0,0 +1,3 @@
+@{
+ Layout = "_Layout";
+}
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Program.cs b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Program.cs
new file mode 100644
index 0000000..bc275e4
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Program.cs
@@ -0,0 +1,25 @@
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+builder.Services.AddRazorPages();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (!app.Environment.IsDevelopment())
+{
+ app.UseExceptionHandler("/Error");
+ // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
+ app.UseHsts();
+}
+
+app.UseHttpsRedirection();
+app.UseStaticFiles();
+
+app.UseRouting();
+
+app.UseAuthorization();
+
+app.MapRazorPages();
+
+app.Run();
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Properties/launchSettings.json b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Properties/launchSettings.json
new file mode 100644
index 0000000..dbe83ce
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/Properties/launchSettings.json
@@ -0,0 +1,38 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:12333",
+ "sslPort": 44366
+ }
+ },
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "http://localhost:5059",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "https://localhost:7232;http://localhost:5059",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/appsettings.Development.json b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/appsettings.Development.json
new file mode 100644
index 0000000..770d3e9
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/appsettings.Development.json
@@ -0,0 +1,9 @@
+{
+ "DetailedErrors": true,
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/appsettings.json b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/wwwroot/favicon.ico b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/wwwroot/favicon.ico
new file mode 100644
index 0000000..63e859b
Binary files /dev/null and b/How to/Library Bounds to Viewer Bounds/PDFViewerSample/PDFViewerSample/wwwroot/favicon.ico differ