2016-06-26 20 views
0

Ich verwende das RTF-Paket und habe eine JPEG-Datei, die ich dem RTF-Dokument, das ich erstelle, hinzufügen möchte. Während ich weiß, dass ich "addPlot()" Funktion des RTF-Pakets verwenden kann, aber ich kann nicht scheinen, es zu arbeiten. Vielleicht muss ich das JPEG in ein "Plot?" Umwandeln. Wenn ja, bin ich mir nicht sicher wie.R Sprache: Schreiben eines JPEGs in ein RTF-Dokument mit dem RTF-Paket

Vielen Dank für Ihre Hilfe im Voraus!

Unten ist mein Code und die Fehlermeldung:

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) 

Fehler bei .rtf.plot (plot.fun = plot.fun, tmp.file = tmp.file, width = Breite,: konnte nicht funktionieren "plot.fun" done (rtf)

+0

Danke, Martin. Das war sehr hilfreich. Ich schätze Ihre schnelle Antwort! – Soly

Antwort

1

addPlot braucht eine Funktion zu übergeben plot.fun, keine JPEG-Dateinamen finden, wie in der Dokumentation beschrieben (siehe help(addPlot.RTF)).

Problem ist, müssen Sie zuerst ein JPEG plotten, und das ist nicht die einfachste Sache zu tun.
Wie dem auch sei, dank this answer, können wir das tun:

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) 

Wie auch immer, wenn Sie ein JPEG-Bild haben, schlage ich vor, es in png einfach zu umwandeln und verwenden dann die bequeme Funktion addPNG, z.B. :

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

Danke, digEmAll. Ihre ausführliche Antwort hat wirklich geholfen! – Soly