title: Fit ggplot exactly to viewport size
body: <p>Suppose I have a ggplot object:</p>
  
  <pre><code>library("ggplot2")
  library("grid")
  p &lt;- qplot(0:10,0:10)
  </code></pre>
  
  <p>And some grid page with a box:</p>
  
  <pre><code>grid.newpage()
  vp &lt;- viewport(width = unit(210, "mm"), height = unit(297, "mm"))
  pushViewport(vp)
  
  # Inner box:
  box &lt;- viewport(unit(105,"mm"),unit(150,"mm"),width=unit(150,"mm"),height=unit(150,"mm"))
  pushViewport(box)
  grid.rect()
  </code></pre>
  
  <p>I can fit the plot inside as follows:</p>
  
  <pre><code># Print ggplot plot:
  upViewport()
  print(p ,vp = box)
  </code></pre>
  
  <p>But I want to accomplish having the plot inside this page such that the plotting area (not the margins) exactly fill this box, and the legend, axis labels etcetera sort of "spill over" outside the plot. Is there any way to do this?</p>