Word中令人头疼的字体转换

Word中令人头疼的字体转换

1. 问题描述与解决方案

  • 问题:如图,仿宋_GB2312的字体显示有问题:
    在这里插入图片描述问题字符
  • 解决方法:
    1.点击文件-选项-高级-显示文档内容(字体替换)
    在这里插入图片描述
    2.选择文档所缺失字体-在替换字体中换成仿宋
    在这里插入图片描述
  • 替换效果
  • 在这里插入图片描述

2. 原因分析

  • 环境:win10+office2016
  • 原文档中的仿宋、或者仿宋GB2312字体是公文中常见的字体(办公室电脑的word中有这种字体)。而现在打开文档的word中没有安装这种字体,为了顺利显示word进行了字体的自动替换,原来的是将宋体GB2312默认替换成了微软雅黑的字体,由于两种的差距非常大,造成显示效果非常不好。
    因此我们只需要安装仿宋GB2312,或者将仿宋GB2312的替换字体改为仿宋即可。
    “仿宋”比“仿宋GB2312”字体更纤细、字迹更清晰。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以使用Apache POI库来读取和操作Word文档。以下是将Word文档的所有英文字体转换为固定字体(比如Arial)的Java代码示例: ```java import org.apache.poi.xwpf.usermodel.*; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.List; public class WordFontConverter { public static void main(String[] args) { try { // 读取Word文档 FileInputStream fis = new FileInputStream(new File("example.docx")); XWPFDocument document = new XWPFDocument(fis); // 获取所有段落 List<XWPFParagraph> paragraphs = document.getParagraphs(); // 遍历所有段落 for (XWPFParagraph paragraph : paragraphs) { // 获取段落的所有Run元素 List<XWPFRun> runs = paragraph.getRuns(); // 遍历所有Run元素 for (XWPFRun run : runs) { // 获取Run元素的字体名称 String fontName = run.getFontFamily(); // 如果是英文字体,则设置为固定字体(比如Arial) if (fontName.matches("[A-Za-z]+")) { run.setFontFamily("Arial"); } } } // 保存修改后的Word文档 FileOutputStream fos = new FileOutputStream(new File("example_modified.docx")); document.write(fos); fos.close(); document.close(); System.out.println("字体转换!"); } catch (Exception ex) { ex.printStackTrace(); } } } ``` 这段代码会读取名为"example.docx"的Word文档,将其所有英文字体转换为Arial字体,并保存为"example_modified.docx"。请注意,这段代码只针对英文字体进行了转换,如果您需要转换其他语言的字体,需要相应修改正则表达式的匹配规则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值