Loading PDFs
PDFs can be loaded by specifying either a URL or a base64 encoded PDF file in the `Url` parameter. PDFs can also be loaded from URL, Base64, Stream or Byte array via the "LoadPdfAsync" function.
URL Loading
<PdfViewer Url="https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf"/>
Base64 Loading
<PdfViewer Url="@ABase64String" FileName="PDF Document Filename"/>
// OR
<PdfViewer @ref="_pdfViewer"/>
@code {
public required PdfViewer _pdfViewer { get; set; }
private async Task LoadPdf()
{
await _pdfViewer.LoadPdfAsync(ABase64String, "PDF Document Filename");
}
}
Loading From Stream
<label for="pdfInput">Select PDF Document:</label>
<InputFile id="pdfInput" OnChange="HandleFileSelected" accept=".pdf" class="form-control" />
<PdfViewer @ref="_pdfViewer"/>
@code {
private long maxFileSize = 1024 * 1024 * 10; // 10 MB limit
public required PdfViewer _pdfViewer { get; set; }
private async Task HandleFileSelected(InputFileChangeEventArgs e)
{
var file = e.File;
using var stream = file.OpenReadStream(maxFileSize);
await _pdfViewer.LoadPdfAsync(stream, e.File.Name);
}
}
Loading From Byte Array
<label for="pdfInput">Select PDF Document:</label>
<InputFile id="pdfInput" OnChange="HandleFileSelected" accept=".pdf" class="form-control" />
<PdfViewer @ref="_pdfViewer"/>
@code {
private long maxFileSize = 1024 * 1024 * 10; // 10 MB limit
public required PdfViewer _pdfViewer { get; set; }
private async Task HandleFileSelected(InputFileChangeEventArgs e)
{
var file = e.File;
using var stream = file.OpenReadStream(maxFileSize);
using var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
var pdfBytes = memoryStream.ToArray();
await _pdfViewer.LoadPdfAsync(pdfBytes, e.File.Name);
}
}