Word文档编辑时输入字符会替换掉光标后面的字符的问题

用Word时遇到这样一个郁闷的问题 :在输入光标位置插入字符时,Word会根据插入字符的数目删除掉几个光标后面的字符。

这个情况以前一直被我当成Word的一个Bug来对待,没有深究,也没有去寻找解决方案,甚至自己发明一个很愚蠢的做法来规避这个问题,就是把输入位置光标后面的字符串剪切起来,输入字符,然后把刚剪切的内容粘贴回去。

直到最近的一次,才发现原来我一直误会微软了。

其实这个现象是Word的【插入】/【改写】模式导致的,Word界面的左下角,有这么一个区域,包含页面、字数、语言、输入模式,用鼠标点一下,“插入”和“改写”,循环切换,当你看到显示的是“插入”时,输入就不会出现把光标后面字符莫名其妙吞食掉的问题了。

还有一个办法可以切换这两个模式,按键盘的Insert键。


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Java中,我们可以使用Apache POI库来操作Word文档。要将指定位置的字符替换为图片,可以按照以下步骤进行操作: 1. 首先,我们需要导入Apache POI的相关依赖包,例如poi、poi-ooxml等。 2. 创建一个新的Word文档对象,并加载要操作的Word文档。可以使用`XWPFDocument`类来实现。 ```java String filePath = "path/to/word/document.docx"; FileInputStream fileInputStream = new FileInputStream(filePath); XWPFDocument document = new XWPFDocument(fileInputStream); ``` 3. 使用`XWPFParagraph`类获取文档中的段落,并遍历每个段落,以便查找指定位置的字符。 ```java List<XWPFParagraph> paragraphs = document.getParagraphs(); for (XWPFParagraph paragraph : paragraphs) { String text = paragraph.getText(); if (text.contains("要替换字符")) { // 在这里进行替换操作 } } ``` 4. 使用`getRuns()`方法获取每个段落中的文本运行对象,并遍历每个运行对象。 ```java List<XWPFRun> runs = paragraph.getRuns(); for (XWPFRun run : runs) { String runText = run.getText(0); if (runText.contains("要替换字符")) { // 在这里进行替换操作 } } ``` 5. 在要替换的位置创建新的`XWPFRun`对象,并使用`createPicture()`方法将图片插入到文本中。 ```java byte[] pictureBytes = getPictureBytes(); // 获取图片的字节数组 int pictureType = Document.PICTURE_TYPE_PNG; // 图片类型,例如PNG、JPEG等 int width = Units.toEMU(100); // 图片宽度,单位是EMU int height = Units.toEMU(100); // 图片高度,单位是EMU int pictureIndex = document.getNextPicNameNumber(pictureType); // 获取下一个图片索引 run.setText(runText.replace("要替换字符", "")); // 删除原始文本 run.addPicture(new ByteArrayInputStream(pictureBytes), pictureType, "image.png", width, height); // 插入图片 ``` 6. 最后,将修改后的文档保存为新的Word文档。 ```java String outputPath = "path/to/output/document.docx"; FileOutputStream fileOutputStream = new FileOutputStream(outputPath); document.write(fileOutputStream); fileOutputStream.close(); document.close(); ``` 通过以上步骤,我们可以在指定位置将字符替换为图片,并将修改后的文档保存到新的Word文档中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值