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);
    }
}
An unhandled error has occurred. Reload 🗙