我正在使用RTF包,并且有一个JPEG文件,我想添加到我正在创建的RTF文档中。虽然,我知道我可以使用" addPlot()" RTF包的功能,但我似乎无法使它工作。也许,我需要将JPEG转换为" Plot?"。如果是这样,我不确定如何。
提前感谢您的帮助!
以下是我的代码和错误消息:
output <- "DownloadImage_proof_of_concept.doc"
rtf <- RTF(output,width=8.5,height=11,font.size=10,omi=c(1,1,1,1))
addPlot(rtf, plot.fun="y.jpg", width = 4, height = 5, res=300)
.rtf.plot中的错误(plot.fun = plot.fun,tmp.file = tmp.file,width = width,: 找不到功能&#34; plot.fun&#34; 完成(RTF)
答案 0 :(得分:1)
addPlot
需要在plot.fun
中传递函数,而不是jpeg文件名,如文档中所述(参见help(addPlot.RTF)
)。
问题是,你需要首先绘制一个jpeg,这不是最简单的事情 无论如何,多亏this answer,我们可以做到:
library(rtf)
# function defined in the linked answer
# Note: you need to install jpeg package first
plot_jpeg = function(path, add=FALSE){
require('jpeg')
jpg = readJPEG(path, native=T) # read the file
res = dim(jpg)[1:2] # get the resolution
if (!add) # initialize an empty plot area if add==FALSE
plot(1,1,xlim=c(1,res[1]),ylim=c(1,res[2]),asp=1,type='n',xaxs='i',
yaxs='i',xaxt='n',yaxt='n',xlab='',ylab='',bty='n')
rasterImage(jpg,1,1,res[1],res[2])
}
output<-"test.rtf"
rtf <- RTF(output,width=8.5,height=11,font.size=10,omi=c(1,1,1,1))
addPlot(rtf, plot.fun=function(){plot_jpeg('myfile.jpg')}, width = 4, height = 5, res=300)
# ...
done(rtf)
无论如何,如果你有一个jpeg图像,我建议你只需在png中转换它,然后使用方便的函数addPNG
,例如:
output<-"test2.rtf"
rtf <- RTF(output,width=8.5,height=11,font.size=10,omi=c(1,1,1,1))
addPng.RTF(rtf,file = "myfile.png", width = 4, height = 5)
# ...
done(rtf)