Start by assuming the final rectangle must have integer values. The total area of the mentioned rectangles is 1056 (source). The possible rectangles with integer values with area 1056 will be the pairings of the lowest factor of 1056 with its highest factor, or its second-lowest with its second-highest, or third-lowest/third-highest, etc:
(1, 1056); (2, 528); (3, 352); (4, 264); (6, 176); (8, 132); (11, 96); (12, 88); (16, 66); (22, 48); (24, 44); (32, 33). (source)
We can rule out any with width<18 because it couldn't possibly hold our largest square, leaving us with just the final 3:
(22, 48); (24, 44); (32, 33).
We would have to rule out any with a length less than 15+18=33, but all three pass this test.
We then have to assume for just a second that the 14-piece will be found somewhere adjacent to the 15-piece (if the 18 piece is in the bottom left and the 15 piece in the bottom right, the most efficient place for the 14-piece in order to keep a small border would be above the 15 piece). This means the width must be at least 29, ruling out (22,48) and (24,44), leaving us with just (32,33).
Edited: (22,48) is possible by putting the three largest pieces lengthwise as 15+18+14=47, but this would obviously lead to problems when trying to fill up to hit the 48th unit lengthwise as we have only one 1-piece.
Now that we have the shape of the final rectangle, trial and error (with some common sense to speed things up)gives us the final shape. Click here for final.