Прочитать текст и соответствующие номера страниц из.docx в R

Как я могу прочитать файл Microsoft .docx в R и получить текст как одно поле и номер страницы как другое?

Из библиотек readtext R я могу прочитать текст, но интересно, знаете ли вы, как получить номер страницы?

install.packages("readtext")

library(readtext)

doc <- readtext(system.file("examples/realworld.docx", package="docxtractr"))

Таким образом, желаемый результат должен быть

text                page_number
text from page 1     1
text from page 2     2

Пожалуйста, порекомендуйте.

1 ответ

Мне удалось получить страницу текста с помощью следующего подхода:

      library(RDCOMClient)

wordApp <- COMCreate("Word.Application")
wordApp[["Visible"]] <- TRUE
wordApp[["DisplayAlerts"]] <- FALSE
path_To_Word_File <- "D:\\text.docx"
doc <- wordApp[["Documents"]]$Open(normalizePath(path_To_Word_File), ConfirmConversions = FALSE)
doc_Selection <-  wordApp$Selection()

list_Text <- list()
list_Page_Text <- list()
counter <- 0

for(l in 1 : 2)
{
  for(i in 1 : 40)
  {
    print(i)
    error_Term <- tryCatch(wordApp[["ActiveDocument"]]$ActiveWindow()$Panes(1)$Pages(l)$Rectangles(i)$Range()$Select(),
                           error = function(e) NA)
    
    bool_Null <- !is.null(error_Term)
    bool_NA <- is.na(tryCatch(is.na(error_Term), error = function(e) NA))
    bool_NA <- length(bool_NA) != 0
    
    if(bool_Null == TRUE | bool_NA == TRUE)
    {
      break
    }
    
    counter <- counter + 1
    list_Text[[counter]] <- tryCatch(doc_Selection$Range()$Text(), error = function(e) NA)
    list_Page_Text[[counter]] <- l
  }
}

list_Text
[[1]]
[1] "hi\r"

[[2]]
[1] "\r"

[[3]]
[1] "this is a good text\r"

[[4]]
[1] "\r"

[[5]]
[1] "\r"

[[6]]
[1] "\r"

[[7]]
[1] "here is a word document\r"

[[8]]
[1] "\r"

[[9]]
[1] "\r"

[[10]]
[1] "\r"

[[11]]
[1] "\r"

[[12]]
[1] "\r"

[[13]]
[1] "\r"

[[14]]
[1] "\r"

[[15]]
[1] "\r"

[[16]]
[1] "\r"

[[17]]
[1] "\r"

[[18]]
[1] "\r"

[[19]]
[1] "\r"

[[20]]
[1] "\r"

[[21]]
[1] "\r"

[[22]]
[1] "\r"

[[23]]
[1] "\r"

[[24]]
[1] "\r"

[[25]]
[1] "\r"

[[26]]
[1] "\r"

[[27]]
[1] "\r"

[[28]]
[1] "\r"

[[29]]
[1] "\r"

[[30]]
[1] "\r"

[[31]]
[1] "\r"

[[32]]
[1] "My cat love me\r"

[[33]]
[1] "\r"

[[34]]
[1] "hahah\r"

[[35]]
[1] "\r"

[[36]]
[1] "\r"

[[37]]
[1] "\r"

[[38]]
[1] "\r"

[[39]]
[1] "\r"

list_Page_Text
[[1]]
[1] 1

[[2]]
[1] 1

[[3]]
[1] 1

[[4]]
[1] 1

[[5]]
[1] 1

[[6]]
[1] 1

[[7]]
[1] 1

[[8]]
[1] 1

[[9]]
[1] 1

[[10]]
[1] 1

[[11]]
[1] 1

[[12]]
[1] 1

[[13]]
[1] 1

[[14]]
[1] 1

[[15]]
[1] 1

[[16]]
[1] 1

[[17]]
[1] 1

[[18]]
[1] 1

[[19]]
[1] 1

[[20]]
[1] 1

[[21]]
[1] 1

[[22]]
[1] 1

[[23]]
[1] 1

[[24]]
[1] 1

[[25]]
[1] 1

[[26]]
[1] 1

[[27]]
[1] 1

[[28]]
[1] 1

[[29]]
[1] 1

[[30]]
[1] 2

[[31]]
[1] 2

[[32]]
[1] 2

[[33]]
[1] 2

[[34]]
[1] 2

[[35]]
[1] 2

[[36]]
[1] 2

[[37]]
[1] 2

[[38]]
[1] 2

[[39]]
[1] 2


Другие вопросы по тегам