Java for some reason places the Paper 0,0 coordinate in a location different from what I get with C++ (VCL). Also without translation for both, printed results are cut off a different amount, which doesn't make sense to me as it should be handled by the printer driver. C++ gets a larger printable area. Same machine, same printer, same driver for both Java and C++.
The printer is a Dymo LabelWriter 400 on Windows XP with the latest driver if that matters.
I'd like to read some thoughts on the issue from those who have programmed printing in different languages.

How I test:
Java positions in 72th of an inch units. VCL positions in actual dpi which is 300 in this case.
Consider a default device paper size. Draw an L of two lines exactly an inch from 0,0 canvas on x and y. Point 72,72 for Java ends up in different location than 300,300 for C++ VCL. If I measure with a ruler VCL gets it right on the money, but Java is off.

Could it be because Java has its own coordinate system in java.awt print or javax.print?
Is there any way I could use printer's own coordinate system in dpi units in Java directly?