程序包“军官”中的body_replace_all_text()方法不起作用

时间:2018-06-26 16:40:47

标签: r officer

下面的代码不起作用

library(officer)
library(magrittr)

read_docx("/home/user/document.docx") %>%
  body_replace_all_text("placeholder1", "text1") %>%
  print(target = "/home/user/out.docx")

输出:

  

在文档中找到0个“ placeholder1”实例。

但是,如果我使用字符串“ tjsdhgudfhgku”而不是“ placeholder1”,则可以使用。

document.docx:

tjsdhgudfhgku
placeholder1 blahblahblah
blah-blah

为什么呢?

1 个答案:

答案 0 :(得分:2)

以下解释是从函数的帮助文件中复制的:

[...]请注意,Word文档中的幕后文字表示通常不是您所期望的!有时,由于样式更改,文本输入暂停,以后的修订和编辑等原因,文本的一段被分解(或“分块”)为多个“游程”。如果尚未设置文本的样式并输入了以“一次全部”的方式进行,例如通过将其粘贴或以编程方式将其输出到Word文档中,则可能不会出现问题。但是,如果使用的是手动编辑的文档,则可能会导致意外的文本查找失败。

您可以使用高级管理人员功能docx_show_chunk显示如何将当前光标处的文本段落分块为行,以及每个分块中的文本。这可以帮助解决意外的找不到文本的故障。 [...]