Changing the Bluetooth Device class was what i needed.
A useful reference of bluetooth classes with hexadecimal and binary representations can be found here: http://www.question-defense.com/tools/class-of-device-bluetooth-cod-list-in-binary-and-hex
I changed the class to "0x040680" which is the printer class. After that as was able to detect the raspberry pi as a printer on windows and an android mobile.
On the mobile i downloaded an app called PrinterShare which detected the printer and prompted me to install its drivers, so i installed a generic pcl driver.
On the raspberry pi i advertised the Serial Port service on the local SDP Server, then opened and rfcomm server socket using a python script. I saved the data received from the mobile to a binary file and named it with extension ".pcl".
This pcl file can be sent directly to printers that support pcl or in my case i was able to view it with a demo version of Red Titan PCL viewer on windows.
systemctl start bluetooth
, then runsdptool add BPP
and see if you can enable the basic printing profile.