Friday, October 15, 2010

Printing selected portion of the page

Jquery plugin:
// Create a jquery plugin that prints the given element.
jQuery.fn.print = function(sitePath,titleUsed){
// NOTE: We are trimming the jQuery collection down to the
// first element in the collection.
if (this.size() > 1){
this.eq( 0 ).print();
return;
} else if (!this.size()){
return;
}

// ASSERT: At this point, we know that the current jQuery
// collection (as defined by THIS), contains only one
// printable element.

// Create a random name for the print frame.
var strFrameName = ("printer-" + (new Date()).getTime());

// Create an iFrame with the new name.
var jFrame = $( "<iframe name='" + strFrameName + "'>" );

// Hide the frame (sort of) and attach to the body.
jFrame
.css( "width", "1px" )
.css( "height", "1px" )
.css( "position", "absolute" )
.css( "left", "-9999px" )
.appendTo( $( "body:first" ) )
;

// Get a FRAMES reference to the new frame.
var objFrame = window.frames[ strFrameName ];

// Get a reference to the DOM in the new frame.
var objDoc = objFrame.document;

// Grab all the style tags and copy to the new
// document so that we capture look and feel of
// the current document.

// Create a temp document DIV to hold the style tags.
// This is the only way I could find to get the style
var cssLink = '<link rel="stylesheet" type="text/css" href="'+sitePath+'jprint.css" media="print"/>';

// Write the HTML for the document. In this, we will
// write out the HTML of the current element.
objDoc.open();
objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
objDoc.write( "<html>" );
objDoc.write( "<body>" );
objDoc.write( "<head>" );
objDoc.write( "<title>" );
objDoc.write(titleUsed);
objDoc.write( "</title>" );
objDoc.write(cssLink);
objDoc.write( "</head>" );
alert(this.html());
objDoc.write( this.html() );
objDoc.write( "</body>" );
objDoc.write( "</html>" );
objDoc.close();

// Print the document.
objFrame.focus();
objFrame.print();

// Have the frame remove itself in about a minute so that
// we don't build up too many of these frames.
setTimeout(
function(){
jFrame.remove();
},
(60 * 1000)
);
}
/********************************************************************/
jprint.css

body{
padding:0px;
margin:0px;
font:normal 12pt Arial, Helvetica, sans-serif;
background: #FFFFFF;
color: #000000;
}

.printable {
padding: 10px 10px 10px 10px ;
}
img{
background-color: #E0E0E0 ;
border: 1px solid #666666 ;
padding: 5px 5px 5px 5px ;
}
table{
width:99%;
border:#9e9e9e solid 1px;
margin:0 0 5px 0;
font:normal 13px Arial, Helvetica, sans-serif;
}

table th{
padding:10px 8px 12px 8px;
text-align:left;
background-color:#FAFAFA;

}
table td{
padding:8px;
text-align:left;
}

table tr{
background-color:#f2f2f2;
}

table tr.alternet{
background-color:#e0e0e0;
}

table td.Heading{
height:35px;
padding:0px 0 0 10px;
border-bottom:#9e9e9e solid 1px;
font:normal 15px Arial, Helvetica, sans-serif;
color:#fff;
}
a:link, a:visited {
color: #000000;
background: transparent;
font-weight: bold;
text-decoration: none;
}

/****************************************************************/
Usage

$(document).ready(function(){

// When the document is ready, initialize the link so
// that when it is clicked, the printable area of the
// page will print.
$(function(){
// Hook up the print link.
$( "a#print_icon" )
.attr( "href", "javascript:void( 0 )" )
.click(
function(){
// Print the DIV.
//@param1 - site URL
//@param2 - Title of the page
$( ".printable" ).print('<?php echo SITE_HTTP_URL;?>','Invoices');
// Cancel click event.
return( false );
}
);
});
});

PHP – Oracle

Initial requirement:
OCI8 module must be installed to use oracle database
Client to access database:
1. “Toad for Oracle” is the best option to access oracle database with “11.2.0” oracle client. You will need to install oracle client first from the oracle distribution CD and then Toad software will automatically detect oracle client.
2. Another option is default SQL*Plus