Yo, lo solucioné asi:
Cree el reporte usando medidas en milimetros para posicionar los campos (un archivo de configuracion +- así:
x,y,Nombrecampo
Luego (con qreport) defino una banda del tamaño máximo de la hoja impresa (menos los márgenes).
Al leer el band.width, band.heigth obtengo el ancho y alto en pixeles del area imprimible (conozco las medidas del papel en mi caso carta 8½ x 11" (no me acuerdo en cm pero pueden multiplicar por 2,54 1" = 2,54cm) con 1cm de margen por cada lado).
Luego con esa información aplico una regla de 3 y determino la ubicación en pixeles de donde debo colocar la impresión.
Espero me entiendas y te sirva