java - 有什么可以根据语言环境决定默认纸张尺寸的吗?

标签 java locale

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

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

最佳答案

java.awt.PageAttributes有一个方法叫做 setMediaToDefault()应该做到这一点。

如果您相信它的 javadoc:

The default size for locales in the United States and Canada is MediaType.NA_LETTER. The default size for all other locales is 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);
    }
}

关于java - 有什么可以根据语言环境决定默认纸张尺寸的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204391/

相关文章:

Java GUI - 嵌套面板

java - 如何配置 exec-maven-plugin 类路径

java - 如何在不使用 CrudRepository 的情况下让 java spring boot 应用程序中定义的实体反射(reflect)在数据库中

iphone - 在 iOS 中获取设备信息?

java - 在 Eclipse 中清理 Tomcat 的工作目录

java - 最小化 Java 线程上下文切换开销

UTF-8 字符映射文件

python - 写入文件时出现 UnicodeEncodeError

ruby-on-rails - Rails i18n : Translation missing problem, 语言环境未定义

ruby-on-rails - 如果 Rails 中缺少区域设置,则默认区域设置