Giusto per chiarire: il setOrientation non cambia il formato del "foglio" .. cambia il senso delle coordinate!
Se metti LANDSCAPE: l'origine è in basso/sinistra; x va verso l'alto; y va verso destra
Se metti PORTRAIT: l'origine è in alto/sinistra; x va verso destra; y va verso il basso
Quindi se hai messo
double width = fromCMToPPI(3.5);
double height = fromCMToPPI(8.8);
di fatto è un "portrait" (come si intende solitamente, cioè più alto che largo) e se usi LANDSCAPE semplicemente usi il senso delle coordinate come detto sopra. Insomma, PORTRAIT vs LANDSCAPE (c'è anche REVERSE_LANDSCAPE) cambia solo l'approccio che usi per determinare le coordinate delle cose da stampare.