I´m almost sure that this is to tricky to solve. Often I have multiple combined polygons that I want to print. Until now I´ve devided all the polygons by the "Split vector layer", because I need to switch the rest off. By this method I´m printing one at time. Is there another and better way to do this? Solutions for Q-GIS, but Mapinfo is good as well.
You can use the Atlas feature in QGIS. In MapInfo, you can use an add-on called MapShop or, if you don't mind doing a little scripting, I normally write a simple loop in MapBasic that moves the map window to the centroid of each object and prints a map.
EDIT: Here is a simple code sample of a MapBasic loop to print a table of objects. Paste it into MapBasic and compile it to create an MBX that can be run in MapInfo Pro.
Declare Sub Main() Sub Main() ' Replace PolygonTable with your table containing the polygons to be printed Select * From PolygonTable Into TempLoopTable Noselect ' Set the working MapBasic projection to the same as the PolygonTable Set CoordSys Table PolygonTable Dim boundingRectangle As Object Dim centerX, centerY As Float Fetch First From TempLoopTable While Not EOT(TempLoopTable) boundingRectangle = MBR(TempLoopTable.obj) centerX = CentroidX(boundingRectangle) centerY = CentroidY(boundingRectangle) Set Map Window FrontWindow() Center (centerX, centerY) Zoom 100 'Replace 100 with any window width or can be calculated PrintWin Window FrontWindow() Fetch Next From TempLoopTable WEnd End Sub
This is the rough idea. You can look up commands and functions like EOT(), MBR(), FrontWindow(), Set Map etc. in the MapBasic help if you're not sure how they work. This just scratches the surface. I usually calculate athe zoom width for each object based on its height and width.