E ti rispondo subito, visto che dopo ti dovrò uccidere...
Tempo fà stavo mettendo mano appunto alla libreria, appunto per aggiungere qualche particolare dinamico, come appunto il dimensionamento delle pagine.
Visto che ora hai "osato" metterci tu le mani, sarai punito in codesto modo:
1) prova a creare una classe PageFormat, in cui vengono definite due proprietà: larghezza e altezza della pagina
2) nella stessa classe imposti dei formati base (es. PdfPageFormat.A4) statici
3) modifica il costruttore di PdfWriter, sostituendo la String formato con un oggetto PdfPageFormat
4) sempre nel costruttore, modificare gli algoritmi di impostazione pagina con le proprietà rilevate dall'oggetto PdfPageFormat
5) in alternativa, visto che si può fare, capire se il parametro si tratta di una stringa o di un oggetto PdfPageFormat. Nel primo caso il comportamento rimane com'era prima, nel secondo caso si vanno a prendere i valori delle proprietà dell'oggetto.
6) stessa cosa si può fare anche con l'orientamento, prendendo per esempio le proprietà già presenti in Printer, oppure creare un oggetto apposito, ad esempio PdfPageOrientation
7) idem con patate per il tipo di misura (mm, in, ecc.), passando una classe apposita, ad esempio PdfMisura.
Queste cose erano in studio tempo fà, ma poi non ho avuto tempo di attuarle.
Puoi farlo tu, e se lo fai bene, eviti pure la tua "dipartita"...
I sorgenti del progetto PdfWriter sono su sf.net, e sono quelli ufficialmente distribuiti.
Se l'integrazione è corretta, posso approvare il tutto e mettere la nuova versione a disposizione publbicamente.
Fammi sapere!