Не работает метод body_replace_all_text () в офицере пакета

Код ниже не работает

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

Почему так?


person Sergey Nosov    schedule 26.06.2018    source источник


Ответы (1)


Следующее объяснение скопировано из файла справки функции:

[...] Обратите внимание, что скрытое представление текста в документе Word часто оказывается не таким, как вы могли бы ожидать! Иногда абзац текста разбивается (или «разбивается») на несколько «прогонов» в результате изменения стиля, пауз при вводе текста, последующих исправлений и правок и т. Д. Если вы не стилизовали текст и ввели это в режиме "все сразу", например вставив его или выведя программным способом в документ Word, это, скорее всего, не будет проблемой. Однако если вы работаете с документом, отредактированным вручную, это может привести к непредвиденным сбоям при поиске текста.

Вы можете использовать функцию офицера docx_show_chunk, чтобы показать, как абзац текста в текущем курсоре был разбит на фрагменты и какой текст находится в каждом фрагменте. Это может помочь устранить непредвиденные сбои при поиске текста. [...]

person David Gohel    schedule 26.06.2018
comment
Спасибо. Я просто вырезал placeholder1 и применил «Специальная вставка -› Неформатированный текст »в том же месте, и это сработало. - person Sergey Nosov; 26.06.2018
comment
@SergeyNosov, спасибо, я не знал об этом обходном пути! - person David Gohel; 27.06.2018