Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Opening PDF file in new tab angular 4?

I tried opening a PDF file using the window.open(), but the window opens and closes automatically and the file is downloaded like any other file. How to make the pdf file open in new tab? There are no ad blockers installed.

like image 599
Harish Krishnan Avatar asked Jul 06 '18 06:07

Harish Krishnan


People also ask

How do I get a PDF to open in new tab with React JS?

To open PDF when clicking on a link with React, we can import the PDF file as a module and set that as the value of the href prop. We set the href prop of the a element to pdf which we imported with import . Then we set the target prop to '_blank' to open the PDF in a new window.


3 Answers

From @barbsan idea, I changed the http headers and received a blob and used that to display the blob as pdf using window.open(). It worked.

Here is my sample code.

In service file

downloadPDF(url): any {
    const options = { responseType: ResponseContentType.Blob  };
    return this.http.get(url, options).map(
    (res) => {
        return new Blob([res.blob()], { type: 'application/pdf' });
    });
  }

In component file

this.dataService.downloadPDF(url).subscribe(res => {
  const fileURL = URL.createObjectURL(res);
  window.open(fileURL, '_blank');
});
like image 114
Harish Krishnan Avatar answered Oct 06 '22 12:10

Harish Krishnan


One liner solution to open a pdf file in new tab. You just need to have file url and use this function on button click.

window.open(url, '_blank');

like image 43
Waleed Shahzaib Avatar answered Oct 06 '22 11:10

Waleed Shahzaib


you can display pdf fle in new tab by the line:

window.open(fileUrl, '_blank');

The fileUrl is a variable that contains the file path.

like image 1
lea Avatar answered Oct 06 '22 13:10

lea