How can I help you?
Render JS PDF Viewer inside Blazor SfPdfViewer Component
12 Feb 20262 minutes to read
The Syncfusion® Blazor SfPdfViewer component supports rendering the EJ2 JavaScript PDF Viewer inside a Blazor page using JavaScript interop.
The following steps show how to embed the JavaScript PDF Viewer in a Blazor component.
NOTE
Ensure that the EJ2 PDF Viewer scripts and styles are referenced in the application, and that the serviceUrl points to a reachable EJ2 PDF Viewer web service endpoint.
Step 1: Add a JavaScript file to the application and reference it in the head element.
<head>
<script src="sample.js" type="text/javascript"></script>
</head>Step 2: Add the following code to the newly created JavaScript file to render the EJ2 PDF Viewer inside Blazor.
window.renderJsPdfViewer = (id) => {
// Render the PDF viewer control
var viewer = new ej.pdfviewer.PdfViewer({
documentPath: "PDF_Succinctly.pdf",
serviceUrl: 'https://ej2services.syncfusion.com/production/web-services/api/pdfviewer'
});
ej.pdfviewer.PdfViewer.Inject(
ej.pdfviewer.Toolbar,
ej.pdfviewer.Magnification,
ej.pdfviewer.BookmarkView,
ej.pdfviewer.ThumbnailView,
ej.pdfviewer.TextSelection,
ej.pdfviewer.TextSearch,
ej.pdfviewer.Print,
ej.pdfviewer.Navigation,
ej.pdfviewer.LinkAnnotation,
ej.pdfviewer.Annotation,
ej.pdfviewer.FormFields,
ej.pdfviewer.FormDesigner);
viewer.appendTo('#' + id);
};Step 3: Add the following code to the Blazor component.
@inject IJSRuntime JS
<div id="pdfViewer" style="height:640px; width:100%;"></div>
@code {
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await JS.InvokeVoidAsync("renderJsPdfViewer", "pdfViewer");
}
}
}NOTE
The PDF Viewer is rendered as a JavaScript component. C# APIs on SfPdfViewer are not available in this approach; use JavaScript interop to call the PDF Viewer APIs.