在Java中,是否有任何我可以开箱即用来根据区域设置决定默认纸张尺寸?
我正在构建一个Web应用程序,需要生成一个PDF文档。它的大小可以是letter,legal,A4等,具体取决于区域设置。从Web应用程序,我可以获取访问者的区域设置信息,如国家/地区等。
答案 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);
}
}