【发布时间】:2021-11-30 04:17:45
【问题描述】:
我正在 rmarkdown 中工作以生成一份报告,该报告提取并显示从 word 和 powerpoint 中提取的图像。
为此,我使用了officer包。它有一个名为 media_extract 的函数,可以“从 rdocx 或 rpptx 对象中提取文件”。
我有两个问题:
- 找到图像后如何查看或使用它。
- 在word中,如何定位没有
media_path列的图像。
我已经能够使用此函数在 pptx 中定位图像:pptx_summary 函数创建一个带有 media_path 列的数据框,该列显示图像元素的文件路径。然后将 media_path 用作 media_extract 函数中的参数来定位图像。请参阅下面的包文档中的示例代码:
example_pptx <- system.file(package = "officer",
"doc_examples/example.pptx")
doc <- read_pptx(example_pptx)
content <- pptx_summary(doc)
image_row <- content[content$content_type %in% "image", ]
media_file <- image_row$media_file
png_file <- tempfile(fileext = ".png")
media_extract(doc, path = media_file, target = png_file)
但是,当我运行 media_extract 时,它返回“TRUE”,这是示例输出,但我不确定如何将图像添加到我的报告中。我尝试将 media_extract 分配为一个值,例如
image <- media_extract(doc, path = media_file, target = png_file)
但这会返回 'FALSE'。
如何将图片作为图片包含在我的报告中?
我遇到的第二个问题是如何在 word 中定位图像。 media_extract 的文档说它可以用来从 .docx 和 .pptx 中提取图像,我只设法让它为后者工作。我无法为 .docx 创建文件路径。
文件路径是使用任一生成的; docx_summary 或 pptx_summary,取决于文件类型,它们创建文件的数据框摘要。 pptx_summary 包含一列 media_path,它显示图像的文件路径。 docx_summary 数据框不包含此列。另一个stackoverflow post 提出了一个使用word/media/ 子目录的解决方案,似乎可行,但我不确定这意味着什么或如何使用它?
如何使用word/media/ subdir 作为媒体路径从word doc 中提取图片?
【问题讨论】:
-
您需要将
png_file值更改为您选择的路径,例如png_file <- "your_file.png",然后添加markdown图像代码![your_file.png]()。如果操作按预期进行,则 media_extract 的结果是布尔值 TRUE。 -
@DavidGohel 请作为答案发布。
标签: r image powerpoint word officer