2014-10-05 8 views
5

In Java, c'è qualcosa che posso usare fuori dalla scatola per decidere la dimensione della carta predefinita in base alla locale?Qualcosa per decidere il formato carta predefinito in base alla locale?

Sto costruendo un'applicazione Web e ho bisogno di generare un documento PDF. Le sue dimensioni possono essere lettera, legale, A4, ecc., A seconda delle impostazioni locali. Dall'applicazione Web, posso ottenere le informazioni locali del visitatore come il Paese, ecc.

+0

Lettera e A3 sono molto, molto diverse dimensioni. – NPE

+0

Suppongo che ti appoggi a 'U.S. Lettera' contro 'A4'. –

+0

Boris, grazie. Ho cambiato A3 in A4. – curious1

risposta

2

java.awt.PageAttributes ha un metodo chiamato setMediaToDefault() che dovrebbe fare proprio questo.

Se credi sua javadoc:

La dimensione predefinita per locali negli Stati Uniti e in Canada è MediaType.NA_LETTER. La dimensione predefinita per tutte le altre impostazioni internazionali è MediaType.ISO_A4.

Quindi, se si vuole rubare il prendere in prestito la sua attuazione:

public void setMediaToDefault(){ 
    String defaultCountry = Locale.getDefault().getCountry(); 
    if (defaultCountry != null && 
     (defaultCountry.equals(Locale.US.getCountry()) || 
     defaultCountry.equals(Locale.CANADA.getCountry()))) { 
     setMedia(MediaType.NA_LETTER); 
    } else { 
     setMedia(MediaType.ISO_A4); 
    } 
} 
+0

Mureinik, grazie per le vostre informazioni. Se il mondo intero utilizza o LETTER (Stati Uniti e Canada) o A4 (il resto). Quindi dovrebbe essere abbastanza semplice. Saluti. – curious1

Problemi correlati