2016-06-26 18 views
0

私はRTFパッケージを使用しており、自分が作成しているRTFドキュメントに追加したいJPEGファイルを持っています。 RTFパッケージのaddPlot()関数を使うことができますが、動作させることはできません。多分、私はJPEGを "プロット"に変換する必要があります。もしそうなら、私はどのようにわからない。R言語:RTFパッケージを使用してRTFドキュメントにJPEGを書き込む

ご協力いただきありがとうございます。 .rtf.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) 

エラー(plot.fun = plot.fun、tmp.file = tmp.file、幅=幅、:以下

は私のコードとエラーメッセージです: は、マニュアルに記載され 済(RTF)

+0

ありがとう、マーティン。これは本当に役に立ちました。私はあなたの迅速な対応に感謝します! – Soly

答えて

1

addPlotは(help(addPlot.RTF)を参照)、plot.funに渡される関数ではなく、JPEGファイル名を必要とする機能「plot.fun」を見つけることができませんでした。

問題は、最初に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) 
+0

ありがとう、digEmAll。詳細な対応が本当に助けになりました! – Soly

関連する問題