使用官方功能ph_with_vg_at时,我收到以下错误:
Error in dml_pptx(file = dml_file, width = width, height = height, offx = left, :
argument "height" is missing, with no default
我认为问题是我正在使用的“funWorkaround”包装器代替ph_with_vg_at。此函数可确保在写入PPT时正确编码某些字符(窃取此函数here)。当我使用ph_with_vg_at而不是funWorkaround时,我没有收到错误。
直到今天,当我更新了所有包裹时,这一切都完美无缺。所以不确定这是一个官员/ rvg问题,还是一个管道问题。或者以上都没有!
我正在寻找要么解决这个错误,要么在从R写到PPT时找到另一种保留字符编码的方法。谢谢!
funWorkaround <- function(x, code, left, top, height, width, ...) {
# Re-Store old encoding on end
sOldEnc <- getOption("encoding")
on.exit(options(encoding=sOldEnc))
# Modify encoding
options(encoding="UTF-8")
# Create plot
return(ph_with_vg_at(x, code, left, top, height, width, ...))
}
ppt_test <- ppt_test %>%
add_slide(layout = "Two Content", master = "Office Theme") %>%
ph_with_text(type = "title", str = "Satisfaction with Issue Details") %>%
funWorkaround(code = print(issuedetails.plot),
left = 0.46,
top = 2,
width = 11.8,
height = 4.71)
答案 0 :(得分:0)
通过使用直接的ph_with_vg_at函数而不是funWorkaround包装器来解决这个问题。为了确保我获得正确的连接编码,我将以下内容放在我的套件创建脚本的开头:
oldEnc = getOption(“encoding”) options(encoding =“UTF-8”)
然后我把它放在脚本的末尾:
选项(encoding = oldEnc)
这会在构建PPT时将连接设置移动到UTF-8,但确保在构建PPT文件后它返回到原始native.enc。否则,如果设置仍为UTF-8,则可能会遇到无法预料的问题(如读取数据)。
答案 1 :(得分:0)
您是否正在使用rvg软件包的更高版本?有一个新参数ggobj,默认情况下是第三个参数。如果您只是在变通方法中命名参数,它应该可以工作:
funWorkaround <- function(x, code, left, top, height, width, ...) {
# Re-Store old encoding on end
sOldEnc <- getOption("encoding")
on.exit(options(encoding=sOldEnc))
# Modify encoding
options(encoding="UTF-8")
# Create plot
return(ph_with_vg_at(x, code=code, left=left, top=top, height=height, width=width, ...))
}