Printing contents of another page
An alternative is to link to the page with a get variable and then call the print function.
For your link -
<a href="print-page.php?print=1">Print other page</a>
Then on your print page (or all pages)
<script type="text/javascript">
<? if(isset($_GET['print'])) { ?>
window.print();
<? } ?>
</script>
If you already have an external page( letterprint.php
), put that page in a hidden iframe and print the content of iframe by using onclick attribute in a button.
<iframe src="letterprint.php" style="display:none;" name="frame"></iframe>
<input type="button" onclick="frames['frame'].print()" value="printletter">
I know it´s an old question, but you can do it like this:
function printExternal(url) {
var printWindow = window.open( url, 'Print', 'left=200, top=200, width=950, height=500, toolbar=0, resizable=0');
printWindow.addEventListener('load', function(){
printWindow.print();
printWindow.close();
}, true);
}
Tested in Firefox and Chrome. IE9 doesn´t work.
Edit 2020-04-03
No longer work on Chrome, code adapted from Coder answer here:
function printExternal(url) {
var printWindow = window.open( url, 'Print', 'left=200, top=200, width=950, height=500, toolbar=0, resizable=0');
printWindow.addEventListener('load', function() {
if (Boolean(printWindow.chrome)) {
printWindow.print();
setTimeout(function(){
printWindow.close();
}, 500);
} else {
printWindow.print();
printWindow.close();
}
}, true);
}