Reputation: 795
I have managed to use the below snippet of code, to open a pdf in a browser.Instead of opening in the same page, I would like it to open in a new browser tab.
I am not using an tag. This piece of code invokes a number of actions and at the end it is supposed to display the pdf. It works fine, but i would like it to open in a new tab.
Is this possible? and if so could you please explain to me how to do so.
Im using a Magento (EE 12.02) application and its on php 5.3.
$file = $pdf_file_path;
$filename = $file_name;
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
Upvotes: 7
Views: 52488
Reputation: 11
Replace "Content-Disposition: inline" with "Content-Disposition: attachment" and keep "filename" definition. That will force browser to open PDF in the new tab.
Upvotes: -1
Reputation: 3453
You can open a new tab while opening your pdf document. Example: if the code that opens your pdf document is on a page called pdfdocument.php, that is some code like so
$pdf = file_get_contents($PDFfilename);
header('Content-Type: application/pdf');
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Content-Length: '.strlen($pdf));
header('Content-Disposition: inline; filename="'.basename($PDFfilename).'";');
ob_clean();
flush();
echo $pdf;
and you have a link to the page such as http://www.example.com/pdfdocument.php, you can display it in a new tab like so <a href="http://www.example.com/pdfdocument.php" target="_blank"> click here to show pdf preview </a>
Upvotes: 6
Reputation: 435
To open it in a new tab if you are using <a>
tag you can append a target attribute like this:
<a href="your_pdf_generator_link" target="_blank" > TEXT </a>
If you have a button you can apply an inline javascript such as
<input type="button" onclick="window.open('your_pdf_generator_link','_blank')" />
Hope this helps..
Upvotes: -1
Reputation: 130
to open it in other browser tab, you should do it in the html that reference it: <a href="..." target="_blank">
Download pdf
Upvotes: 1
Reputation: 4404
You can't do that from that request.
But you can open the link in a new browser window by adding target="_blank" to your a tag, then browsers usually will use a new tab.
Upvotes: 8
Reputation: 1960
Just add exit() at the end:
$file = $pdf_file_path;
$filename = $file_name;
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
exit();
this should just trigger the download of the file.
Upvotes: 1