I am using Ghostscript 8.x to convert a pdf to grayscale.I am using the following command:
gs -dNOPAUSE -dBATCH -q -sOutputFile=- -sDEVICE=psgray 2016-12-15-165043474.pdf | ps2pdf - output.pdf
This successfully converts my pdf to grayscale but I lose the original pdfsize. The resulting pdf has a lot of whitespace looks like A4 size. My input pdf has fixed width of 3cm (height may vary).I want the output pdf to be of same size. Please suggest.
Don't use the psgray device! This is seriously deprecated and has been removed totally in recent versions of Ghostscript. By using this you are converting the PDF to PostScript and then converting it back to PDF. More steps than you need (with each conversion potentially introducing problems), and that's where you are getting the default media size from.
Simply use the pdfwrite device to do all the work, but you will need a reasonably recent version of Ghostscript to do it. Possibly more recent than the old version you are obviously using currently.