Printscreen

This will take a screenshot and print to the default printer.

from java.awt import Toolkit, Robot, Rectangle
from javax.imageio import ImageIO
from java.io import File, ByteArrayOutputStream

from javax.print import Doc, DocFlavor, DocPrintJob, PrintService, PrintServiceLookup, SimpleDoc
from javax.print.attribute import HashPrintRequestAttributeSet, HashDocAttributeSet
from javax.print.attribute.standard import Copies, OrientationRequested

#Capture Screen
tk = Toolkit.getDefaultToolkit()
ss = tk.getScreenSize()
rbt = Robot()
bimage = rbt.createScreenCapture(Rectangle(ss)) 

#Convert Screen Cap to Byte Array so we can print it.
baos=ByteArrayOutputStream()                     
ImageIO.write(bimage, "png", baos)
baos.flush
byteArray=baos.toByteArray()
baos.close

#Set Printjob Attributes
printJobAttributeSet = HashPrintRequestAttributeSet()
DocAttributeSet = HashDocAttributeSet()
printJobAttributeSet.add(Copies(1))
printJobAttributeSet.add(OrientationRequested.LANDSCAPE)

#Get default Printer
service=PrintServiceLookup.lookupDefaultPrintService()

#Create Printjob
job=service.createPrintJob()

#Create document
doc=SimpleDoc(byteArray, DocFlavor.BYTE_ARRAY.PNG, DocAttributeSet)

#Print Document
job.print(doc, printJobAttributeSet)
print "Done!"
1 Like