当前位置: 首页 > 知识库问答 >
问题:

如何通过Apache poi设置word文件的全局字体?

曹均
2023-03-14

我是apache poi的新手,正在使用poi将一些数据写入docx文件。最近我遇到了一个字体问题,希望任何人能给我一些帮助。

我用一个名为empty的空word文件开始写作。docx,如下所示。

InputStream input = getClass().getClassLoader().getResourceAsStream("empty.docx");
XWPFDocument document = new XWPFDocument(input);

空荡荡的。docx默认字体为“Arial”,这意味着如果您添加任何内容,只要您不手动更改字体,他们将继承此字体。

但在我填写内容并将其写入新的docx文件后,默认字体改为“Century”。

   OutputStream  output = new FileOutputStream("output.docx"); 
   document.write(output);

我想把它改回“Arial”,但经过大量搜索,只找到了设置XWPFRun字体的方法

run.getCTR().getRPr().getRFonts().setEastAsia(eastAsiaFontName);
run.getCTR().getRPr().getRFonts().setHAnsi(normalFontName);

我想知道是否有任何方法可以更改整个文档的全局字体?

共有1个答案

舒枫涟
2023-03-14

您可以这样设置文档的默认字体(使用变量名):

XWPFStyles styles = document.createStyles();

CTFonts fonts = CTFonts.Factory.newInstance();
fonts.setEastAsia(eastAsiaFontName);
fonts.setHAnsi(normalFontName);

styles.setDefaultFonts(fonts);

我目前被困在如何设置默认字体大小上。这就是为什么我发现了这个问题... XWPFStyles类有一个成员“CTStyles ctStyles”,通过它可以定义XML规范中定义的任何属性。但不幸的是,它只有一个公共设置器,但没有getter。

 类似资料:
  • 我有一套连接到局域网的服务器。我能够在机器上安装和使用LXD容器,但就我的一生而言,我无法在网络上看到这些容器。我已尝试跟踪这些URL,但没有成功: https://www.simpleprecision.com/ubuntu-16-04-lxd-networking-simple-bridge/ https://www.stgraber.org/2016/10/27/network-manage

  • 主要用于设置三级权限以及密码策略等。 该功能用于设置是否启用三级权限以及密码策略相关配置。参数设置完成后,需要5分钟后生效。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “系统配置/全局设置/全局设置” 菜单项,进入全局设置页面。 目前全局设置支持设置以下选项: 配额检查开关:设置是否启用配额检查,默认关闭配额检查。如用户有配额限制的要求,可以开启配额检查,开启后,用户可以在域或

  • 目前仅支持字典设置和全局设置,参数配置后全局生效。 字典设置 用于自定义云管平台中常用菜单的显示名称。 全局设置 主要用于设置三级权限以及密码策略等。

  • 1)加密设置 加密设置分为,PC加密设置和移动加密设置。 PC加密设置: 当PC加密为“打开”状态时,新上传的视频会进行加密(加密视频只能使用获得场景视频播放器),已上传的视频保持不变。 当PC加密为“关闭”状态时,新上传的视频不会进行加密,已上传的视频保持不变。 移动加密设置: 非加密——当设置成【非加密】时,移动端将不受限制,此时不受保护。 WEB授权——可以在移动WEB端播放和APP端播放,

  • 在直播管理页面点击 “全局设置” ,观看者可以在观看端对客户端进行打赏。打赏分为现金打赏 和 道具打赏 。 打赏设置 说明: 1)全局设置中支持配置现金打赏及道具打赏相关参数 2)直播间可应用全局打赏设置,应用后,观看端可对讲师进行打赏 敏感词设置 说明: 1)全局设置中支持设置敏感词,支持手动单个添加及应用模板批量导入 2)已添加的敏感词支持删除操作,也可一键情况敏感词列表 3)支持按角色进行过

  • 我的主要目标是使用Microsoft Graph API将。pptx/.docx/.pdf文件上传到Microsoft Sharepoint。我可以使用下面的“PUT”请求上传到简单的文本文件,其中的内容类型是多部分/表单数据 ---------------------------------404518839734975569926100内容-处理:表单-数据;name=“文件”;filenam