是否可以根据区域设置确定默认纸张尺寸?

时间:2014-10-05 15:57:08

标签: java locale

在Java中,是否有任何我可以开箱即用来根据区域设置决定默认纸张尺寸?

我正在构建一个Web应用程序,需要生成一个PDF文档。它的大小可以是letter,legal,A4等,具体取决于区域设置。从Web应用程序,我可以获取访问者的区域设置信息,如国家/地区等。

1 个答案:

答案 0 :(得分:2)

java.awt.PageAttributes有一个名为setMediaToDefault()的方法可以做到这一点。

如果你相信它的javadoc:

  

美国和加拿大境内语言环境的默认大小为MediaType.NA_LETTER。所有其他语言环境的默认大小为MediaType.ISO_A4。

所以,如果你想窃取借用它的实现:

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);
    }
}