1

I would like to open a pdf document via a button. Is this possible in Blazor? Thanks for your help

MaxB
  • 260
  • 2
  • 13
  • Blazor runs on the browser. Anything you can do on the browser you can do with Blazor. That includes displaying PDF files using eg the `embed` tag or any of the Javascript viewers. Where is the file stored? On the server? Client? Another web site? – Panagiotis Kanavos Jan 27 '22 at 12:47
  • Does this answer your question? [How to display PDF file in HTML?](https://stackoverflow.com/questions/17784037/how-to-display-pdf-file-in-html) – Panagiotis Kanavos Jan 27 '22 at 12:47
  • 1
    The file is stored on a server. – MaxB Jan 27 '22 at 12:49
  • 1
    I will try, thanks :) – MaxB Jan 27 '22 at 12:49

2 Answers2

0

Please try this solution

This is your javascript function

function openFile(data) {
    var link = this.document.createElement('a');
    link.download = data.fileName;
    link.href = data.url;
    link.target ="_blank";
    this.document.body.appendChild(link);
    link.click();
    this.document.body.removeChild(link);
}

This is your razor file, replace url with your pdf download url, clicking on button will open pdf in new browser tab

@inject IJSRuntime JS

<button @onclick=@(()=> JS.InvokeVoidAsync("openFile", new {fileName="anyfileName", url="http://anyurl.com"}))>Download PDF</button>
    
Surinder Singh
  • 1,165
  • 1
  • 3
  • 11
0

Use HTML?

Download:

<a href=@PdfURL download>Download</a>

or

Open in new tab:

<a href=@PdfURL target="_blank">Open</a>

or

Open in current tab (i.e. Navigate to it) :

<a href=@PdfURL>Open</a>?

Mister Magoo
  • 7,452
  • 1
  • 20
  • 35