    paper.fitToContent([opt])

Expand/shrink the paper to fit the content inside it. Snap the resulting width/height to the grid defined by `opt.gridWidth` / `opt.gridHeight`. `opt.padding` adds to the resulting width/height of the paper. The `opt.padding` can either be a number in which case it represents the padding on all the sides or it can be an object of the form `{ top: Number, right: Number, bottom: Number, left: Number }`. By default the method fits the paper to a content with positive coordinates only and sets the origin to (0,0) for the resulting paper. To change this behaviour use the `allowNewOrigin: ['negative'|'positive'|'any']` option. Set `allowNewOrigin` to `'negative'` to account for content with negative coordinates. Set `allowNewOrigin` to `'positive'` to allow origin to be set to the top-left coordinate of the content. Set `allowNewOrigin` to `'any'` to apply both. This method might internally trigger the `"resize"` and `"translate"` events that can be handled by listening on the paper object (`paper.on('resize', myHandler)`). `opt.minWidth` and `opt.minHeight` define the minium width and height of the paper and `opt.maxWidth` and `opt.maxHeight` define the maximum width and height of the paper after fitting it to the content.
You can try many of these options interactively in the paper demo.

Depracated usage: `paper.fitToContent(gridWidth, gridHeight, padding, opt)`