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

cur*_*us1 5 java locale

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

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

Mur*_*nik 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);
    }
}
Run Code Online (Sandbox Code Playgroud)