Reputation: 1
I'm trying to implement the blazor bootstrap pdf viewer,
but when I copy and paste the example code the document does not display.
it's really weird because you can even see that you never get the OnDocumentLoaded event
any idea? do i need to do something extra?
Upvotes: 0
Views: 446
Reputation: 12749
You could try below working sample code to load the pdf in blazor server using Blazor.Bootstrap:
Download and install "Blazor.Bootstrap" nugget package
_Host.cshtml:
@page "/"
@using Microsoft.AspNetCore.Components.Web
@namespace BlazorPdfViewerDemo.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="~/" />
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
<link href="css/site.css" rel="stylesheet" />
<link href="BlazorPdfViewerDemo.styles.css" rel="stylesheet" />
<link href="_content/Blazor.Bootstrap/blazor.bootstrap.css" rel="stylesheet" />
<link rel="icon" type="image/png" href="favicon.png" />
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
<body>
<component type="typeof(App)" render-mode="ServerPrerendered" />
<div id="blazor-error-ui">
<environment include="Staging,Production">
An error has occurred. This application may no longer respond until reloaded.
</environment>
<environment include="Development">
An unhandled exception has occurred. See browser dev tools for details.
</environment>
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>
<!-- Include Bootstrap's bundle -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<script src="_framework/blazor.server.js"></script>
<script type="module" src="_content/Blazor.Bootstrap/blazor.bootstrap.pdf.js"></script>
<script src="_content/Blazor.Bootstrap/blazor.bootstrap.js"></script>
</body>
</html>
CustomPdfViewer.razor:
@page "/pdfviewer"
@using BlazorBootstrap
<h3>PDF Viewer</h3>
<PdfViewer Class="mb-3"
Url="pdf/sample.pdf"
OnDocumentLoaded="OnDocumentLoaded"
OnPageChanged="OnPageChanged" />
@code {
private string eventLog { get; set; } = $"Last event: ..., CurrentPage: 0, TotalPages: 0";
private void OnDocumentLoaded(PdfViewerEventArgs args)
=> eventLog = $"Last event: OnDocumentLoaded, CurrentPage: {args.CurrentPage}, TotalPages: {args.TotalPages}";
private void OnPageChanged(PdfViewerEventArgs args)
=> eventLog = $"Last event: OnPageChanged, CurrentPage: {args.CurrentPage}, TotalPages: {args.TotalPages}";
}
_Imports.razor:
@using BlazorBootstrap
Program.cs:
builder.Services.AddScoped<BlazorBootstrap.PdfViewerJsInterop>();
Upvotes: 1