High resolution, printable alternative to OpenLayers plugin for QGIS?

Just add the BaseLayer as a RasterLayer.

<GDAL_WMS>

<!-- Data is subject to term of use detailed at http://code.google.com/intl/nl/apis/maps/terms.html and
     http://www.google.com/intl/en_ALL/help/terms_maps.html -->

    <Service name="TMS">
        <!-- <ServerUrl>http://mt.google.com/vt/lyrs=m&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Map -->
         <ServerUrl>http://mt.google.com/vt/lyrs=s&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Satellite -->
        <!-- <ServerUrl>http://mt.google.com/vt/lyrs=y&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Hybrid -->
        <!-- <ServerUrl>http://mt.google.com/vt/lyrs=t&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Terrain -->
        <!-- <ServerUrl>http://mt.google.com/vt/lyrs=p&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Terrain, Streets and Water  -->
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>20</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:900913</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <MaxConnections>5</MaxConnections>
    <Cache />
</GDAL_WMS>

Save this part as a xml-file (or download and adapt following file: http://www.gdal.org/frmt_wms_googlemaps_tms.xml )

Then add the Layer like a normal Rasterlayer:

enter image description here

But i would doublecheck if there are any copyright restrictions: http://www.google.com/intl/en_ALL/help/terms_maps.html

(source of the xml-file: post from Timur Girgin on http://hub.qgis.org/issues/6822 )

Addition: as Answer to the question if it's also possible to load OSM this way:

<GDAL_WMS>
 <Service name="TMS">
 <ServerUrl>http://tile.openstreetmap.org/${z}/${x}/${y}.png</ServerUrl>
 </Service>
 <DataWindow>
 <UpperLeftX>-20037508.34</UpperLeftX>
 <UpperLeftY>20037508.34</UpperLeftY>
 <LowerRightX>20037508.34</LowerRightX>
 <LowerRightY>-20037508.34</LowerRightY>
 <TileLevel>18</TileLevel>
 <TileCountX>1</TileCountX>
 <TileCountY>1</TileCountY>
 <YOrigin>top</YOrigin>
 </DataWindow>
 <Projection>EPSG:3857</Projection>
 <BlockSizeX>256</BlockSizeX>
 <BlockSizeY>256</BlockSizeY>
 <BandsCount>3</BandsCount>
 <Cache />
</GDAL_WMS>

And ArcGIS:

<GDAL_WMS>
    <Service name="TMS">
        <ServerUrl>http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/${z}/${y}/${x}</ServerUrl>>
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>17</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:3857</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <MaxConnections>10</MaxConnections>
    <Cache />
</GDAL_WMS>

and one more for imagery

<GDAL_WMS>
    <Service name="TMS">
        <ServerUrl>http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/${z}/${y}/${x}</ServerUrl>>
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>17</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:3857</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <MaxConnections>10</MaxConnections>
    <Cache />
</GDAL_WMS>

SOURCE: http://www.gdal.org/frmt_wms.html

As mentioned above this is only the technical aspect. Concerning restrictions have a look at the Terms of use of the chosen basemap provider.

Edit1: Just answered a Question about how to use HERE Tiles in QGIS. These example you will find here: HERE background maps in QGIS possible?


You could as well use the TileLayerPlugin, if you provide the tile URL yourself.

For Google and Openstreetmap tiles it is:

Google  Google  http://mt.google.com/vt/lyrs=s&x={x}&y={y}&z={z}    1   0   20  -180    -85.0   180.0   85.0
Openstreetmap   OSM http://c.tile.openstreetmap.org/{z}/{x}/{y}.png 1   0   19  -180    -85.0   180.0   85.0

Note that you have to separate entries by tabs.

The print composer might request higher zoom levels than you see in the canvas. This plugin does an extra zoom on the last available, defined by the entry 19. The Openlayers Plugin does not do such extra-zoom. Hence the print output is empty even above 1:2500 for that.

Remember to respect the terms of license.


EDIT

The new QuickMapServices plugin works in a similar way, without the need to modify the configuration file.