Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用officer将图像添加到文本框_R_Officer - Fatal编程技术网

使用officer将图像添加到文本框

使用officer将图像添加到文本框,r,officer,R,Officer,我正在考虑使用officer包将图像添加到word文档中。word文档模板如下所示: 这些都是文本框,我可以替换所有文本,如学生姓名、注册号等,但不知道如何在名为图片的文本框中添加图像。这就是我尝试过的: my_doc <- read_docx('templates/form_101.docx') %>% body_replace_all_text('Coursename', 'NTCC 01') %>% body_replace_all_text('XXX',

我正在考虑使用
officer
包将图像添加到word文档中。word文档模板如下所示:

这些都是文本框,我可以替换所有文本,如学生姓名、注册号等,但不知道如何在名为
图片的文本框中添加图像。这就是我尝试过的:

my_doc <- read_docx('templates/form_101.docx') %>% 
  body_replace_all_text('Coursename', 'NTCC 01') %>% 
  body_replace_all_text('XXX', 'III') %>% 
  body_replace_all_text('FromDate', '26 Oct') %>% 
  body_replace_all_text('ToDate', '02 Nov 20') %>% 
  body_replace_all_text('StudentName', 'Dhiraj Khanna') %>% 
  body_replace_all_text('12345', '51511-W') %>% 
  body_replace_all_text('ABC', 'A') %>% 
  cursor_reach('picture') %>% 
  # cursor_reach('picture') %>% 
  # body_remove()
  # body_bookmark('picture') %>%
  # body_replace_img_at_bkm('picture',
  #                         value = external_img(src = 'data/images/pic1.png', 
  #                                              width = .2, height = .2))
  body_add_img(src = 'data/images/pic1.png', width = .2, height = .2,
               pos = 'on')

print(my_doc, target = 'templates/output.docx')

my_doc%
正文替换所有正文('Coursename','NTCC 01')%>%
正文替换所有正文('XXX','III')%>%
正文替换所有正文('FromDate','10月26日')%>%
正文替换全部正文('ToDate','02 Nov 20')%>%
正文替换全部正文('StudentName','Dhiraj Khanna')%>%
正文替换所有正文('12345','51511-W')%>%
正文替换全部正文('ABC','A')%>%
光标到达('图片')%>%
#光标到达('图片')%>%
#主体_移除()
#正文书签('图片')%>%
#车身更换(图片),
#value=external_img(src='data/images/pic1.png',
#宽度=.2,高度=.2)
body_add_img(src='data/images/pic1.png',width=.2,height=.2,
pos=‘开’)
打印(我的文档,目标='templates/output.docx')
这些方法(包括被注释掉的方法)都没有给我期望的结果。那么,如何在文本框
图片
中插入图像呢


该模板可用

我尝试了一下,但无法使其工作(仅在此处分享我的发现,因为它们太长,无法发表评论,可能会帮助您)

我的实际结论是,这可能根本不起作用,
官员
方案不支持这一点

在您共享的示例中,我手动添加了“图片”,因为它在您的屏幕截图中(但在word示例中缺失)。但即使这样简化(更容易设置光标),它也不起作用

我尝试了几种组合,包括
body\u add\u img
slip\u in\u img
body\u replace\u img\u at\u bkm
body\u add.external\u img
body\u replace\u text\u in\u bkm
光标到达('picture'),
光标向前移动
向后移动。(以及其他一些相当粗糙的努力)

它要么什么都没做,要么就是没有把图像放进文本框

设置光标似乎有效。一般来说,添加图像也不是问题。用文本框中的另一个文本替换文本没有问题。但是在右边这个特定的文本框中添加一个图像似乎是不可能的


当我将光标放在文本框中并尝试在其中添加图像时,无论我尝试了什么,它总是在文本框之前或之后添加。

更改模板时,它会起作用。你需要

  • 在需要图像的位置创建一个新的文本字段
  • 使用位置“与文本对齐”将图像放在文本字段中
  • 在图像上放置书签(在我的示例中称为“图片”)
  • 我上传了一个经过正确修改的文件

    然后,您可以使用函数
    body\u replace\u img\u at\u bkm()
    ,如下所示:

    library(officer)
    library(magrittr)
    
    my_doc <- read_docx('form_101.docx')
    
    my_doc %>%
      body_replace_img_at_bkm("picture",
                              external_img("im02.png", width = .9, height = .9)) %>%
      print("new_form.docx")
    
    图书馆(官员)
    图书馆(magrittr)
    我的医生%
    车身更换(图片),
    外部_img(“im02.png”,宽度=.9,高度=.9))%>%
    打印(“new_form.docx”)
    
    要将模板文件放在我们可以访问的地方吗?我会看看我能做些什么。@BrianLang谢谢,我已经在您提供的模板中添加了一个指向模板文件的链接,我在框中找不到“图片”文本:它似乎是空的。我自己添加了“图片”,并尝试了一下。(因为这样设置光标更容易)。尽管如此,我还是不可能做到这一点。。。到处都有图片…只是在我尝试后没有出现在文本框xD中,我现在很想知道,是否有人真的能够运行它:)(或者如果它只是不受支持)是否有可能更改模板?我想你可以添加一个虚拟图像而不是文本框,然后使用
    body\u replace\u img\u at_bkm
    。谢谢你的尝试。这正是我也尝试过的。我确实对body\u replace\u img\u at_bkm抱有希望,但您是否尝试过使用“body\u replace\u img\u at_bkm”取得成功?也许这是我另一次尝试的起点。我个人尝试的所有“body_replace_img_at_bkm”组合看起来都不太有希望。与我的其他尝试相比,结果的唯一区别是,有时文本框完全消失。看起来很完美。只有一个问题。如何在图像上放置书签?这是用文字写的吗?好的,我知道了。非常感谢!太好了!:)供日后参考:需要在word中安装书架;单击图片并在“插入”功能区中选择“书签”。