I have a project with 50 vector layers and I have done custom styling for them. Now I want to make around 30 png files with different xmin, ymin, xmax, ymax. The output size (png) should be width 139.7 and height 152.4. Every quarter I have to run this exercise manually around 3-4 times. Is it possible to automate this?
Your question isn't 100% clear but I assume you want to create map sets based on your 50 vector layers. This is quite easy using Atlas in QGIS. There used to be a brilliant plugin for creating the coverage layer for Atlas but that has not been ported to QGIS 2 sadly. However, it sounds as if you know your xmin, ymin, xmax, ymax extents for the 30 maps, so you could simply create a csv containing points (if you give each of the four points the same id per extent polygon you can then use the Points2One plugin to 'join the dots' and make your coverage polygons) or wkt polygons.
The above is a very easy way to do it. However, if you want maps with no border so you can mosaic them together, you may want to consider a programmed route using Mapnik or TileMill. There isn't space to give you a complete 'how to' here but there is loads of excellent documentation on the relevant sites and you can always come back to this forum with specific questions.