1) Я бы посоветовал перейти к «встроенному» варианту colorbox (но вам не обязательно):
<script type="text/javascript">
$(document).ready(function(){
$(".pricing").colorbox({width:"733px", height:"699px", iframe:false, open:true, overlayClose:true, opacity:.5, initialWidth:"300px", initialHeight:"100px", transition:"elastic", speed:350, close:"Close", photo:false, inline:true, href:"#price_report"});
});
</script>
2) Теперь добавьте ваш html, включая javascript и код, чтобы написать область печати:
<div style='display: none'>
<div id='price_report' class='pricing'>
<script type="text/javascript">
//<!--
function ClickHereToPrint(){
try{
var oIframe = document.getElementById('ifrmPrint');
var oContent = document.getElementById('pricingPrintArea').innerHTML;
var oDoc = (oIframe.contentWindow || oIframe.contentDocument);
if (oDoc.document) oDoc = oDoc.document;
oDoc.write("<html><head><title>My Printable Pricing Report!</title>");
oDoc.write("<link rel='stylesheet' href='link-to-my-styles/style.css' type='text/css' />");
oDoc.write("</head></body><body onload='this.focus(); this.print();' style='text-align: left; font-size: 8pt; width: 432pt;'>");
oDoc.write("<h3>My Pricing Report</h3>");
oDoc.write(oContent + "</body></html>");
oDoc.close();
}
catch(e){
self.print();
}
}
//-->
</script>
<iframe id='ifrmPrint' src='#' style="width:0pt; height:0pt; border: none;"></iframe>
<div id="pricingPrintArea">
<div class="myreport">
<p>Hello, I am a pricing report!</p>
</div>
</div>
</div>
</div>
3) Теперь добавьте кнопку печати, где вы хотите:
<div id="print_btn">
<a href="#" onclick="ClickHereToPrint();" style="cursor: pointer;">
<span class="print_btn">
Click Here To Print This Report!
</span>
</a>
</div>
Обратите внимание, что в пустой iframe javascript будет записана область печати. В javascript вы также заметите, что вы можете добавить таблицу стилей, встроенные стили, заголовок страницы и многое другое!
Имейте в виду, этот процесс будет работать аналогично для ajax-версии colorbox, но если вы пойдете по пути метода ajax, вам придется записать печатаемый div и распечатать iframe и напечатать javascript непосредственно в этот внешний файл .
Теоретически, все, что находится внутри печатаемого региона div (в этом примере: pricingPrintArea), будет печататься, поэтому, пока вы оборачиваете его вокруг того, что хотите печатать, оно будет это делать.
Важный совет: все принтеры читают веб-страницу по-разному, поэтому старайтесь не слишком полагаться на встроенные стили и размеры в пикселях для вашей версии для печати. Вот почему рекомендуется создать таблицу стилей специально для печатной страницы.
Надеюсь, это ответит на ваш вопрос. (кстати, вы должны иметь возможность заставить этот метод работать с методом ajax colorbox, но я не проверял его).