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