In Development
Last Updated: 23 Oct 2025 11:56 by ADMIN
Scheduled for 2025 Q4 (Nov)
David Cresswell
Created on: 22 Oct 2025 14:18
Category: PDFViewer
Type: Bug Report
1
PdfViewer GetFileAsync() method returns null if the component is initially blank

The PdfViewer GetFileAsync() method works in version 11.3.0, but only if the PDF Viewer loads a file by default. If the component renders blank and the user opens a file first, then the method still doesn't work and returns null.

Test page: https://blazorrepl.telerik.com/cpvuGQby16J4JlsE42

<p>Load a PDF file from your computer in both PDF Viewers and click the buttons.</p>

<strong>@TestResult</strong>

<br /><br />

<TelerikButton OnClick="@OnLoadButtonClick1" ThemeColor="@ThemeConstants.Button.ThemeColor.Primary">Get Current PDF 1</TelerikButton>

<TelerikPdfViewer @ref="@PdfViewerRef1"
                  Data="@PdfViewerData1"
                  AnnotationMode="@PdfViewerAnnotationMode.EnableForms"
                  Height="400px">
</TelerikPdfViewer>

<TelerikButton OnClick="@OnLoadButtonClick2" ThemeColor="@ThemeConstants.Button.ThemeColor.Primary">Get Current PDF 2</TelerikButton>

<TelerikPdfViewer @ref="@PdfViewerRef2"
                  Data="@PdfViewerData2"
                  AnnotationMode="@PdfViewerAnnotationMode.EnableForms"
                  Height="400px">
</TelerikPdfViewer>

@code {
    #nullable enable

    private TelerikPdfViewer? PdfViewerRef1 { get; set; }
    private TelerikPdfViewer? PdfViewerRef2 { get; set; }
    private byte[]? PdfViewerData1 { get; set; }
    private byte[]? PdfViewerData2 { get; set; }

    private string TestResult { get; set; } = string.Empty;

    private async Task OnLoadButtonClick1()
    {
        var pdfSource = await PdfViewerRef1!.GetFileAsync();
        TestResult = $"First PDF Viewer GetFileAsync() returned {pdfSource} at {DateTime.Now.ToString("HH:mm:ss")}";
    }

    private async Task OnLoadButtonClick2()
    {
        var pdfSource = await PdfViewerRef2!.GetFileAsync();
        TestResult = $"Second PDF Viewer GetFileAsync() returned {(pdfSource != null ? pdfSource.ToString() : "null")}  at {DateTime.Now.ToString("HH:mm:ss")}";
    }

    protected override void OnInitialized()
    {
        PdfViewerData1 = Convert.FromBase64String(PdfBase64);
    }

    private const string PdfBase64 = "JVBERi0xLjEKMSAwIG9iajw8L1R5cGUvQ2F0YWxvZy9QYWdlcyAyIDAgUj4+ZW5kb2JqCjIgMCBvYmo8PC9UeXBlL1BhZ2VzL0tpZHNbMyAwIFJdL0NvdW50IDEvTWVkaWFCb3ggWy0zMCAtNjQgMjcwIDgwXSA+PmVuZG9iagozIDAgb2JqPDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8PC9Gb250PDwvRjE8PC9UeXBlL0ZvbnQvU3VidHlwZS9UeXBlMS9CYXNlRm9udC9BcmlhbD4+ID4+ID4+L0NvbnRlbnRzIDQgMCBSPj5lbmRvYmoKNCAwIG9iajw8L0xlbmd0aCA1OT4+CnN0cmVhbQpCVAovRjEgMTggVGYKMCAwIFRkCihQREYgRmlsZSAuLi4pIFRqCkVUCmVuZHN0cmVhbQplbmRvYmoKeHJlZgowIDUKMDAwMDAwMDAwMCA2NTUzNSBmCjAwMDAwMDAwMjEgMDAwMDAgbgowMDAwMDAwMDg2IDAwMDAwIG4KMDAwMDAwMDE5NSAwMDAwMCBuCjAwMDAwMDA0OTAgMDAwMDAgbgp0cmFpbGVyIDw8ICAvUm9vdCAxIDAgUiAvU2l6ZSA1ID4+CnN0YXJ0eHJlZgo2MDkKJSVFT0Y=";
}

0 comments