How to laying out data for print

I’m a new developer using smartgwt, currently I’m using smargwt version 2.2. Recently I’ve been given a task from my boss to print data. The thing that I still don’t I understand is how I do laying out / positioning the data that I want to print. I tried to create a simple code of label that I want to print

VLayout mainLayout = new VLayout();

Label lblPrint = new Label();
lblPrint.setContents(“the value that I want to print”);
lblPrint.setPosition(Positioning.ABSOLUTE);
lblPrint.setPageLeft(100);
lblPrint.setPageTop(50);

Canvas printLayout = new Canvas();
printLayout.addChild(lblPrint);

IButton btnPrint = new IButton(“Print Now”);
btnPrint .addClickHandler(new ClickHandler(){
public void onClick(ClickEvent event) {
Canvas.showPrintPreview(mainLayout);
}
});

mainLayout.addMember(printLayout);
mainLayout.addMember(btnPrint);

here I want to print a label which has postion 100 pixel from left of the page and 50 pixel from top of the page, before I click button show print preview the position of my label was right according the position that want. But once I click button to show print preview the position of my label is completely different. My label shows up on top left of the print preview pages.

So, please is there anybody can explain to me how to setting position of data that I want to print. Thx