Skip to content

Commit 88bd1b2

Browse files
845073: Sample to show and Hide Annotations
1 parent 8917e64 commit 88bd1b2

20 files changed

+694
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.10.34607.79
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShowHideAnnotations", "ShowHideAnnotations\ShowHideAnnotations.csproj", "{AEF9913F-0F38-4676-9A9F-D1042B5C30AC}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{AEF9913F-0F38-4676-9A9F-D1042B5C30AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{AEF9913F-0F38-4676-9A9F-D1042B5C30AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{AEF9913F-0F38-4676-9A9F-D1042B5C30AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{AEF9913F-0F38-4676-9A9F-D1042B5C30AC}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {31245B35-82FC-4C3B-A888-4730D0AD8EE0}
24+
EndGlobalSection
25+
EndGlobal
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
@page
2+
@model ErrorModel
3+
@{
4+
ViewData["Title"] = "Error";
5+
}
6+
7+
<h1 class="text-danger">Error.</h1>
8+
<h2 class="text-danger">An error occurred while processing your request.</h2>
9+
10+
@if (Model.ShowRequestId)
11+
{
12+
<p>
13+
<strong>Request ID:</strong> <code>@Model.RequestId</code>
14+
</p>
15+
}
16+
17+
<h3>Development Mode</h3>
18+
<p>
19+
Swapping to the <strong>Development</strong> environment displays detailed information about the error that occurred.
20+
</p>
21+
<p>
22+
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
23+
It can result in displaying sensitive information from exceptions to end users.
24+
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
25+
and restarting the app.
26+
</p>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using Microsoft.AspNetCore.Mvc;
2+
using Microsoft.AspNetCore.Mvc.RazorPages;
3+
using System.Diagnostics;
4+
5+
namespace PDFViewerSample.Pages
6+
{
7+
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
8+
[IgnoreAntiforgeryToken]
9+
public class ErrorModel : PageModel
10+
{
11+
public string? RequestId { get; set; }
12+
13+
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
14+
15+
private readonly ILogger<ErrorModel> _logger;
16+
17+
public ErrorModel(ILogger<ErrorModel> logger)
18+
{
19+
_logger = logger;
20+
}
21+
22+
public void OnGet()
23+
{
24+
RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
25+
}
26+
}
27+
28+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
@page "{handler?}"
2+
@using ShowHideAnnotations.Pages
3+
@model IndexModel
4+
@{
5+
ViewData["Title"] = "Home page";
6+
}
7+
8+
<div class="text-center">
9+
<button id="toggleBtn" onclick="toggleAnnotations()">Hide Annotations</button>
10+
<ejs-pdfviewer id="pdfviewer" style="height:600px" serviceUrl="/Index" documentPath="">
11+
</ejs-pdfviewer>
12+
</div>
13+
14+
<script type="text/javascript">
15+
var exportObject = null;
16+
var annotationsVisible = true;
17+
18+
// Function to run when page loads
19+
document.addEventListener('DOMContentLoaded', function() {
20+
// Get viewer instance
21+
var viewer = document.getElementById('pdfviewer').ej2_instances[0];
22+
23+
// Load the PDF document
24+
if (viewer) {
25+
viewer.documentPath="Data/Annotations.pdf";
26+
27+
// You can also add any initialization code here
28+
console.log("PDF viewer initialized and document loading started");
29+
}
30+
});
31+
32+
function toggleAnnotations() {
33+
var viewer = document.getElementById('pdfviewer').ej2_instances[0];
34+
35+
if (annotationsVisible) {
36+
// Hide annotations by exporting and deleting them
37+
viewer.exportAnnotationsAsObject().then(function(value) {
38+
exportObject = value;
39+
40+
var count = viewer.annotationCollection.length;
41+
for (var i = 0; i < count; i++) {
42+
// Always delete the first item as the collection shrinks
43+
viewer.annotationModule.deleteAnnotationById(viewer.annotationCollection[0].annotationId);
44+
}
45+
46+
annotationsVisible = false;
47+
document.getElementById('toggleBtn').textContent = 'Show Annotations';
48+
});
49+
} else {
50+
// Restore annotations
51+
if (exportObject) {
52+
var exportAnnotObject = JSON.parse(exportObject);
53+
viewer.importAnnotation(exportAnnotObject);
54+
}
55+
56+
annotationsVisible = true;
57+
document.getElementById('toggleBtn').textContent = 'Hide Annotations';
58+
}
59+
}
60+
</script>

0 commit comments

Comments
 (0)