Не работает метод body_replace_all_text () в пакете "офицер" - PullRequest
0 голосов
/ 26 июня 2018

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

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 голосов
/ 26 июня 2018

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

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

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

...