It seems to work when you wrap the user control (the report) inside another element, providing also the real size and not forgetting to put a background. I don't know exactly why, but the background seems to do the trick, along with the size.
public override DocumentPage GetPage(int pageNumber) {
var page = new MyUserControl();
Border wrapper = new Border();
wrapper.Width = this.PageSize.Width;
wrapper.Height = this.PageSize.Height;
wrapper.Background = Brushes.White;
wrapper.Child = page;
wrapper.Measure(this.PageSize);
wrapper.Arrange(new Rect(new Point(0, 0), this.PageSize));
wrapper.UpdateLayout();
return new DocumentPage(wrapper);
}